Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
dark_koopa.inc.c
Go to the documentation of this file.
1#include "battle/battle.h"
2#include "script_api/battle.h"
3#include "sprite/npc/KoopaTroopa.h"
4#include "effects.h"
5
6#define NAMESPACE A(dark_koopa)
7
8extern EvtScript N(EVS_Init);
9extern EvtScript N(EVS_TakeTurn);
10extern EvtScript N(EVS_Idle);
11extern EvtScript N(EVS_HandleEvent);
12
13extern s32 N(KoopaAnims)[];
14
15enum N(ActorPartIDs) {
16 PRT_MAIN = 1,
17};
18
19enum N(ActorVars) {
20 AVAR_HasWhirlwind = 1,
21 AVAR_State = 8,
22 AVAL_State_Normal = 0,
23 AVAL_State_Hyper = 1,
24 AVAL_State_ToppledNormal = 2,
25 AVAL_State_ToppledHyper = 3,
26 AVAR_ToppleTurns = 9,
27};
28
29enum N(ActorParams) {
30 DMG_SHELL_TOSS = 3,
31};
32
33#define SWEAT_DECOR_IDX 0
34#define WHIRLWIND_DECOR_IDX 1
35
36s32 N(UprightDefenseTable)[] = {
39 ELEMENT_JUMP, 2,
43};
44
45s32 N(ToppledDefenseTable)[] = {
48};
49
50s32 N(StatusTable)[] = {
73};
74
75ActorPartBlueprint N(ActorParts)[] = {
76 {
78 .index = PRT_MAIN,
79 .posOffset = { 0, 0, 0 },
80 .targetOffset = { -2, 36 },
81 .opacity = 255,
82 .idleAnimations = N(KoopaAnims),
83 .defenseTable = N(UprightDefenseTable),
84 .eventFlags = ACTOR_EVENT_FLAG_FLIPABLE,
85 .elementImmunityFlags = 0,
86 .projectileTargetOffset = { 0, -7 },
87 },
88};
89
90ActorBlueprint NAMESPACE = {
91 .flags = 0,
92 .type = ACTOR_TYPE_DARK_KOOPA,
93 .level = ACTOR_LEVEL_DARK_KOOPA,
94 .maxHP = 8,
95 .partCount = ARRAY_COUNT(N(ActorParts)),
96 .partsData = N(ActorParts),
97 .initScript = &N(EVS_Init),
98 .statusTable = N(StatusTable),
99 .escapeChance = 60,
100 .airLiftChance = 85,
101 .hurricaneChance = 75,
102 .spookChance = 70,
103 .upAndAwayChance = 95,
104 .spinSmashReq = 0,
105 .powerBounceChance = 90,
106 .coinReward = 2,
107 .size = { 28, 36 },
108 .healthBarOffset = { 0, 0 },
109 .statusIconOffset = { -15, 32 },
110 .statusTextOffset = { 5, 32 },
111};
112
113s32 N(KoopaAnims)[] = {
114 STATUS_KEY_NORMAL, ANIM_KoopaTroopa_Dark_Idle,
115 STATUS_KEY_STONE, ANIM_KoopaTroopa_Dark_Still,
116 STATUS_KEY_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
117 STATUS_KEY_POISON, ANIM_KoopaTroopa_Dark_Idle,
118 STATUS_KEY_STOP, ANIM_KoopaTroopa_Dark_Still,
119 STATUS_KEY_STATIC, ANIM_KoopaTroopa_Dark_Idle,
120 STATUS_KEY_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
121 STATUS_KEY_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
122 STATUS_KEY_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
124};
125
126s32 N(ShuffleAnims)[] = {
127 STATUS_KEY_NORMAL, ANIM_KoopaTroopa_Dark_Walk,
128 STATUS_KEY_STONE, ANIM_KoopaTroopa_Dark_Still,
129 STATUS_KEY_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
130 STATUS_KEY_POISON, ANIM_KoopaTroopa_Dark_Walk,
131 STATUS_KEY_STOP, ANIM_KoopaTroopa_Dark_Still,
132 STATUS_KEY_STATIC, ANIM_KoopaTroopa_Dark_Walk,
133 STATUS_KEY_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
134 STATUS_KEY_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
135 STATUS_KEY_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
137};
138
139s32 N(HyperAnims)[] = {
140 STATUS_KEY_NORMAL, ANIM_KoopaTroopa_Dark_Scramble,
141 STATUS_KEY_STONE, ANIM_KoopaTroopa_Dark_Still,
142 STATUS_KEY_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
143 STATUS_KEY_POISON, ANIM_KoopaTroopa_Dark_Scramble,
144 STATUS_KEY_STOP, ANIM_KoopaTroopa_Dark_Still,
145 STATUS_KEY_STATIC, ANIM_KoopaTroopa_Dark_Scramble,
146 STATUS_KEY_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
147 STATUS_KEY_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
148 STATUS_KEY_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
150};
151
152s32 N(HyperShuffleAnims)[] = {
153 STATUS_KEY_NORMAL, ANIM_KoopaTroopa_Dark_Walk,
154 STATUS_KEY_STONE, ANIM_KoopaTroopa_Dark_Still,
155 STATUS_KEY_SLEEP, ANIM_KoopaTroopa_Dark_Sleep,
156 STATUS_KEY_POISON, ANIM_KoopaTroopa_Dark_Walk,
157 STATUS_KEY_STOP, ANIM_KoopaTroopa_Dark_Still,
158 STATUS_KEY_STATIC, ANIM_KoopaTroopa_Dark_Walk,
159 STATUS_KEY_PARALYZE, ANIM_KoopaTroopa_Dark_Still,
160 STATUS_KEY_DIZZY, ANIM_KoopaTroopa_Dark_Stunned,
161 STATUS_KEY_FEAR, ANIM_KoopaTroopa_Dark_Stunned,
163};
164
165s32 N(ToppledAnims)[] = {
166 STATUS_KEY_NORMAL, ANIM_KoopaTroopa_Dark_ToppleStruggle,
167 STATUS_KEY_STONE, ANIM_KoopaTroopa_Dark_ToppleStill,
168 STATUS_KEY_SLEEP, ANIM_KoopaTroopa_Dark_ToppleSleep,
169 STATUS_KEY_POISON, ANIM_KoopaTroopa_Dark_ToppleStruggle,
170 STATUS_KEY_STOP, ANIM_KoopaTroopa_Dark_ToppleStill,
171 STATUS_KEY_STATIC, ANIM_KoopaTroopa_Dark_ToppleStruggle,
172 STATUS_KEY_PARALYZE, ANIM_KoopaTroopa_Dark_ToppleStill,
173 STATUS_KEY_DIZZY, ANIM_KoopaTroopa_Dark_ToppleStunned,
174 STATUS_KEY_FEAR, ANIM_KoopaTroopa_Dark_ToppleStunned,
176};
177
178EvtScript N(EVS_Init) = {
179 Call(BindTakeTurn, ACTOR_SELF, Ref(N(EVS_TakeTurn)))
180 Call(BindIdle, ACTOR_SELF, Ref(N(EVS_Idle)))
181 Call(BindHandleEvent, ACTOR_SELF, Ref(N(EVS_HandleEvent)))
182 Call(RandInt, 1000, LVar0)
183 IfLt(LVar0, 300)
184 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_Normal)
185 Else
186 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_Hyper)
187 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(HyperAnims)))
188 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Scramble)
189 EndIf
190 Call(SetActorVar, ACTOR_SELF, AVAR_HasWhirlwind, FALSE)
191 Return
192 End
193};
194
195#include "common/battle/SetAbsoluteStatusOffsets.inc.c"
196
197EvtScript N(EVS_UpdateOffsets) = {
199 CaseOrEq(AVAL_State_Normal)
200 CaseOrEq(AVAL_State_Hyper)
202 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -5, 15)
203 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
204 Call(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20)
205 Else
206 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -4, 32)
207 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -4)
208 Call(N(SetAbsoluteStatusOffsets), -15, 32, 5, 32)
209 EndIf
211 CaseOrEq(AVAL_State_ToppledNormal)
212 CaseOrEq(AVAL_State_ToppledHyper)
213 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -5, 15)
214 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
215 Call(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20)
218 Return
219 End
220};
221
222EvtScript N(EVS_Idle) = {
223 Label(0)
224 Call(RandInt, 80, LVarA)
225 Add(LVarA, 80)
226 Loop(LVarA)
227 Label(1)
228 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
229 Call(GetStatusFlags, ACTOR_SELF, LVar1)
230 ExecWait(N(EVS_UpdateOffsets))
231 IfEq(LVar0, AVAL_State_ToppledNormal)
232 Wait(1)
233 Goto(1)
234 EndIf
235 IfEq(LVar0, AVAL_State_ToppledHyper)
236 Wait(1)
237 Goto(1)
238 EndIf
240 Wait(1)
241 Goto(1)
242 EndIf
243 Wait(1)
244 EndLoop
245 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
247 CaseEq(AVAL_State_Normal)
248 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(ShuffleAnims)))
249 CaseEq(AVAL_State_Hyper)
250 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(HyperShuffleAnims)))
252 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
253 Add(LVar0, 5)
254 Call(SetActorIdleSpeed, ACTOR_SELF, Float(1.0))
255 Call(SetIdleGoal, ACTOR_SELF, LVar0, LVar1, LVar2)
256 Call(IdleRunToGoal, ACTOR_SELF, 0)
257 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
259 CaseEq(AVAL_State_Normal)
260 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(KoopaAnims)))
261 CaseEq(AVAL_State_Hyper)
262 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(HyperAnims)))
263 CaseOrEq(AVAL_State_ToppledNormal)
264 CaseOrEq(AVAL_State_ToppledHyper)
265 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledAnims)))
268 Loop(20)
269 Label(2)
270 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
271 Call(GetStatusFlags, ACTOR_SELF, LVar1)
272 ExecWait(N(EVS_UpdateOffsets))
273 IfEq(LVar0, AVAL_State_ToppledNormal)
274 Wait(1)
275 Goto(2)
276 EndIf
277 IfEq(LVar0, AVAL_State_ToppledHyper)
278 Wait(1)
279 Goto(2)
280 EndIf
282 Wait(1)
283 Goto(2)
284 EndIf
285 Wait(1)
286 EndLoop
287 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
289 CaseEq(AVAL_State_Normal)
290 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(ShuffleAnims)))
291 CaseEq(AVAL_State_Hyper)
292 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(HyperShuffleAnims)))
294 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
295 Sub(LVar0, 5)
296 Call(SetActorIdleSpeed, ACTOR_SELF, Float(1.0))
297 Call(SetIdleGoal, ACTOR_SELF, LVar0, LVar1, LVar2)
298 Call(IdleRunToGoal, ACTOR_SELF, 0)
299 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
301 CaseEq(AVAL_State_Normal)
302 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(KoopaAnims)))
303 CaseEq(AVAL_State_Hyper)
304 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(HyperAnims)))
305 CaseOrEq(AVAL_State_ToppledNormal)
306 CaseOrEq(AVAL_State_ToppledHyper)
307 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledAnims)))
310 Loop(50)
311 Label(3)
312 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
313 Call(GetStatusFlags, ACTOR_SELF, LVar1)
314 ExecWait(N(EVS_UpdateOffsets))
315 IfEq(LVar0, AVAL_State_ToppledNormal)
316 Wait(1)
317 Goto(3)
318 EndIf
319 IfEq(LVar0, AVAL_State_ToppledHyper)
320 Wait(1)
321 Goto(3)
322 EndIf
324 Wait(1)
325 Goto(3)
326 EndIf
327 Wait(1)
328 EndLoop
329 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
331 CaseEq(AVAL_State_Hyper)
332 Call(SetActorVar, ACTOR_SELF, AVAR_HasWhirlwind, TRUE)
333 Thread
334 Call(MakeLerp, 720, 0, 30, EASING_COS_IN_OUT)
335 Label(10)
337 Call(SetActorYaw, ACTOR_SELF, LVar0)
338 IfEq(LVar1, 1)
339 Call(GetActorVar, ACTOR_SELF, AVAR_HasWhirlwind, LVar2)
340 IfEq(LVar2, 1)
341 Wait(1)
342 Goto(10)
343 EndIf
344 EndIf
345 Call(SetActorVar, ACTOR_SELF, AVAR_HasWhirlwind, FALSE)
346 Call(SetActorYaw, ACTOR_SELF, 0)
348 Wait(8)
349 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, WHIRLWIND_DECOR_IDX, ACTOR_DECORATION_WHIRLWIND)
350 Wait(15)
351 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, WHIRLWIND_DECOR_IDX)
352 Wait(8)
353 Call(SetActorVar, ACTOR_SELF, AVAR_HasWhirlwind, FALSE)
354 CaseEq(AVAL_State_Normal)
355 CaseEq(AVAL_State_ToppledNormal)
356 CaseEq(AVAL_State_ToppledHyper)
358 Goto(0)
359 Return
360 End
361};
362
363s32 N(FlipPosOffsets)[] = { 9, 16, 22, 26, 30, 32, 33, 32, 30, 26, 22, 16, 9, 0, 4, 6, 7, 6, 4, 0, 2, 0 };
364
365EvtScript N(EVS_HandleEvent) = {
366 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
367 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
368 Call(SetAnimationRate, ACTOR_SELF, PRT_MAIN, Float(1.0))
369 Call(SetActorYaw, ACTOR_SELF, 0)
370 Call(GetActorVar, ACTOR_SELF, AVAR_HasWhirlwind, LVar0)
371 IfEq(LVar0, TRUE)
372 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, WHIRLWIND_DECOR_IDX)
373 Call(SetActorVar, ACTOR_SELF, AVAR_HasWhirlwind, FALSE)
374 EndIf
375 Call(GetLastEvent, ACTOR_SELF, LVar0)
379 SetConst(LVar0, PRT_MAIN)
380 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
384 SetConst(LVar0, PRT_MAIN)
385 SetConst(LVar1, ANIM_KoopaTroopa_Dark_BurnHurt)
386 SetConst(LVar2, ANIM_KoopaTroopa_Dark_BurnStill)
389 SetConst(LVar0, PRT_MAIN)
390 SetConst(LVar1, ANIM_KoopaTroopa_Dark_BurnHurt)
391 SetConst(LVar2, ANIM_KoopaTroopa_Dark_BurnStill)
393 SetConst(LVar0, PRT_MAIN)
394 SetConst(LVar1, ANIM_KoopaTroopa_Dark_BurnStill)
396 Return
398 SetConst(LVar0, PRT_MAIN)
399 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
402 SetConst(LVar0, PRT_MAIN)
403 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
405 SetConst(LVar0, PRT_MAIN)
406 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
408 Return
410 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
412 CaseEq(AVAL_State_Normal)
413 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_ToppledNormal)
414 CaseEq(AVAL_State_Hyper)
415 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_ToppledHyper)
417 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleTurns, 1)
418 Call(SetDefenseTable, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledDefenseTable)))
419 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledAnims)))
420 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -5, 15)
421 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
422 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLIPPED, TRUE)
423 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Hurt)
424 Call(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
425 Thread
426 Wait(4)
427 Call(SetActorRotation, ACTOR_SELF, 0, 0, 30)
428 Wait(1)
429 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
430 Wait(1)
431 Call(SetActorRotation, ACTOR_SELF, 0, 0, -30)
432 Wait(1)
433 Call(SetActorRotation, ACTOR_SELF, 0, 0, -60)
434 Wait(1)
435 Call(SetActorRotation, ACTOR_SELF, 0, 0, -75)
436 Wait(1)
438 UseBuf(N(FlipPosOffsets))
439 Loop(ARRAY_COUNT(N(FlipPosOffsets)))
441 Call(SetActorDispOffset, ACTOR_SELF, 0, LVar0, 0)
442 Wait(1)
443 EndLoop
444 Call(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
445 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
446 Call(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
447 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ToppleStruggle)
448 Call(SetAnimationRate, ACTOR_SELF, PRT_MAIN, Float(0.5))
450 SetConst(LVar0, PRT_MAIN)
451 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
453 SetConst(LVar0, PRT_MAIN)
454 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
456 Call(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
457 SetConst(LVar0, PRT_MAIN)
458 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Run)
460 Call(SetActorJumpGravity, ACTOR_SELF, Float(1.6))
461 Call(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
463 SetConst(LVar0, PRT_MAIN)
464 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
466 SetConst(LVar0, PRT_MAIN)
467 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
469 Return
472 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
474 CaseOrEq(AVAL_State_Normal)
475 CaseOrEq(AVAL_State_Hyper)
476 SetConst(LVar0, PRT_MAIN)
477 SetConst(LVar1, ANIM_KoopaTroopa_Dark_ShellEnter)
479 Call(GetStatusFlags, ACTOR_SELF, LVar0)
481 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellExit)
482 Wait(10)
483 EndIf
485 CaseOrEq(AVAL_State_ToppledNormal)
486 CaseOrEq(AVAL_State_ToppledHyper)
487 SetConst(LVar0, PRT_MAIN)
488 SetConst(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
494 SetConst(LVar0, PRT_MAIN)
495 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
497 Wait(10)
498 SetConst(LVar0, PRT_MAIN)
499 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Hurt)
501 Return
503 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
504 IfEq(LVar0, AVAL_State_Normal)
505 SetConst(LVar0, PRT_MAIN)
506 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Run)
508 EndIf
509 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
510 Call(SetHomePos, ACTOR_SELF, LVar0, LVar1, LVar2)
511 Call(HPBarToHome, ACTOR_SELF)
513 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
514 IfEq(LVar0, AVAL_State_Normal)
515 SetConst(LVar0, PRT_MAIN)
516 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Scramble)
518 EndIf
520 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
522 CaseOrEq(AVAL_State_Normal)
523 CaseOrEq(AVAL_State_Hyper)
524 SetConst(LVar0, PRT_MAIN)
525 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Run)
526 SetConst(LVar2, ANIM_KoopaTroopa_Dark_Hurt)
528 Return
530 CaseOrEq(AVAL_State_ToppledNormal)
531 CaseOrEq(AVAL_State_ToppledHyper)
532 SetConst(LVar0, PRT_MAIN)
533 SetConst(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
538 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
540 CaseOrEq(AVAL_State_Normal)
541 CaseOrEq(AVAL_State_Hyper)
542 SetConst(LVar0, PRT_MAIN)
543 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Panic)
545 CaseOrEq(AVAL_State_ToppledNormal)
546 CaseOrEq(AVAL_State_ToppledHyper)
547 SetConst(LVar0, PRT_MAIN)
548 SetConst(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
553 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
555 CaseOrEq(AVAL_State_Normal)
556 CaseOrEq(AVAL_State_Hyper)
557 SetConst(LVar0, PRT_MAIN)
558 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Panic)
560 CaseOrEq(AVAL_State_ToppledNormal)
561 CaseOrEq(AVAL_State_ToppledHyper)
562 SetConst(LVar0, PRT_MAIN)
563 SetConst(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
567 Return
569 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
571 CaseOrEq(AVAL_State_Normal)
572 CaseOrEq(AVAL_State_Hyper)
573 SetConst(LVar0, PRT_MAIN)
574 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Idle)
577 CaseOrEq(AVAL_State_ToppledNormal)
578 CaseOrEq(AVAL_State_ToppledHyper)
579 SetConst(LVar0, PRT_MAIN)
580 SetConst(LVar1, ANIM_KoopaTroopa_Dark_ToppleStruggle)
585 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_RESTART)
586 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
587 Return
588 End
589};
590
591EvtScript N(EVS_Attack_ShellToss) = {
592 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
593 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
594 Call(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
595 Call(GetBattlePhase, LVar0)
597 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellSpin)
598 Else
599 Call(UseBattleCamPreset, BTL_CAM_ENEMY_APPROACH)
600 Call(BattleCamTargetActor, ACTOR_SELF)
601 Wait(10)
602 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellEnter)
603 Wait(10)
604 Thread
605 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
606 Add(LVar1, 4)
607 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
608 Wait(3)
609 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
610 Wait(2)
611 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
613 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_SHELL_SPIN)
614 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellSpin)
615 Wait(10)
616 Call(SetBattleCamTargetingModes, BTL_CAM_YADJ_TARGET, BTL_CAM_XADJ_AVG, FALSE)
617 EndIf
618 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_SHELL_TOSS)
624 Set(LVarA, LVar0)
625 Call(SetGoalToTarget, ACTOR_SELF)
626 Call(GetStatusFlags, ACTOR_SELF, LVar5)
627 Call(AddGoalPos, ACTOR_SELF, -40, 0, 0)
628 Call(SetActorSpeed, ACTOR_SELF, Float(16.0))
629 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
630 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellExit)
631 Wait(8)
632 Call(ResetAllActorSounds, ACTOR_SELF)
633 Call(SetActorYaw, ACTOR_SELF, 180)
634 Wait(4)
636 Call(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
637 EndIf
638 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_BeginPanic1)
639 Wait(1)
640 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_BeginPanic2)
641 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
642 Add(LVar1, 20)
643 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
644 Call(SetActorJumpGravity, ACTOR_SELF, Float(2.0))
645 Call(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
646 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Panic)
647 Wait(6)
648 Sub(LVar1, 20)
649 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
650 Call(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
651 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
652 Call(YieldTurn)
653 Call(SetActorYaw, ACTOR_SELF, 180)
654 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, SWEAT_DECOR_IDX, ACTOR_DECORATION_SWEAT)
655 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Panic)
656 Call(SetActorSpeed, ACTOR_SELF, Float(6.0))
657 Call(SetGoalToHome, ACTOR_SELF)
658 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
659 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Idle)
660 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, SWEAT_DECOR_IDX)
661 Call(SetActorYaw, ACTOR_SELF, 0)
662 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
663 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
664 Return
667 Call(SetGoalToTarget, ACTOR_SELF)
668 Call(SetActorSpeed, ACTOR_SELF, Float(16.0))
669 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
670 Call(ResetAllActorSounds, ACTOR_SELF)
671 Wait(2)
676 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
677 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
678 Add(LVar0, 40)
679 Set(LVar1, 0)
680 Call(SetActorJumpGravity, ACTOR_SELF, Float(1.8))
681 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
682 Call(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
683 Add(LVar0, 30)
684 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
685 Call(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
686 Add(LVar0, 20)
687 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
688 Call(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
689 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellExit)
690 Wait(8)
691 Call(YieldTurn)
692 SetConst(LVar0, PRT_MAIN)
693 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Run)
695 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Idle)
698 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
699 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
700 Return
701 End
702};
703
704EvtScript N(EVS_Attack_Whirlwind) = {
705 Label(10)
706 Call(GetActorVar, ACTOR_SELF, AVAR_HasWhirlwind, LVar0)
707 Wait(1)
708 IfEq(LVar0, TRUE)
709 Goto(10)
710 EndIf
711 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
712 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
713 Call(SetActorYaw, ACTOR_SELF, 0)
714 Call(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
715 Call(UseBattleCamPreset, BTL_CAM_ENEMY_APPROACH)
716 Call(BattleCamTargetActor, ACTOR_SELF)
717 Call(SetGoalToTarget, ACTOR_SELF)
718 Call(GetStatusFlags, ACTOR_SELF, LVar0)
720 Call(AddGoalPos, ACTOR_SELF, 8, 0, 0)
721 Else
722 Call(AddGoalPos, ACTOR_SELF, 20, 0, 0)
723 EndIf
724 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Run)
725 Call(SetActorSpeed, ACTOR_SELF, Float(6.0))
726 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
727 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Scramble)
728 Wait(10)
729 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellEnter)
730 Wait(10)
731 Thread
732 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
733 Add(LVar1, 4)
734 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
735 Wait(3)
736 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
737 Wait(2)
738 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
740 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_SHELL_SPIN)
741 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellSpin)
742 Wait(20)
743 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_DIZZY_SHELL)
744 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, WHIRLWIND_DECOR_IDX, ACTOR_DECORATION_WHIRLWIND)
745 Wait(40)
750 Set(LVarA, LVar0)
751 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellExit)
752 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, WHIRLWIND_DECOR_IDX)
753 Wait(10)
755 Call(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
756 EndIf
757 Wait(10)
758 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
759 Call(YieldTurn)
760 Call(SetActorYaw, ACTOR_SELF, 180)
761 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, SWEAT_DECOR_IDX, ACTOR_DECORATION_SWEAT)
762 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Panic)
763 Call(SetActorSpeed, ACTOR_SELF, Float(6.0))
764 Call(SetGoalToHome, ACTOR_SELF)
765 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
766 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Scramble)
767 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, SWEAT_DECOR_IDX)
768 Call(SetActorYaw, ACTOR_SELF, 0)
769 Return
772 Wait(2)
773 Call(SetGoalToTarget, ACTOR_SELF)
778 Thread
779 Call(WasStatusInflicted, ACTOR_SELF, LVar0)
780 IfEq(LVar0, 1)
781 Call(MakeLerp, 0, 1080, 30, EASING_COS_IN_OUT)
782 Label(0)
784 Call(SetActorYaw, ACTOR_PLAYER, LVar0)
785 Wait(1)
786 IfEq(LVar1, 1)
787 Goto(0)
788 EndIf
789 EndIf
791 Wait(20)
792 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ShellExit)
793 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, WHIRLWIND_DECOR_IDX)
794 Wait(10)
795 Wait(10)
796 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
797 Call(YieldTurn)
798 SetConst(LVar0, PRT_MAIN)
799 SetConst(LVar1, ANIM_KoopaTroopa_Dark_Run)
801 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_Scramble)
804 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
805 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
806 Return
807 End
808};
809
810EvtScript N(EVS_TryGettingUp) = {
811 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
812 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
813 Call(SetActorYaw, ACTOR_SELF, 0)
814 Call(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
815 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleTurns, LVar0)
816 Sub(LVar0, 1)
817 IfGt(LVar0, 0)
818 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleTurns, LVar0)
819 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, SWEAT_DECOR_IDX, ACTOR_DECORATION_SWEAT)
820 Call(SetAnimationRate, ACTOR_SELF, PRT_MAIN, Float(2.0))
821 Wait(30)
822 Call(SetAnimationRate, ACTOR_SELF, PRT_MAIN, Float(0.5))
823 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, SWEAT_DECOR_IDX)
824 Else
825 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, SWEAT_DECOR_IDX, ACTOR_DECORATION_SWEAT)
826 Call(SetAnimationRate, ACTOR_SELF, PRT_MAIN, Float(2.0))
827 Wait(20)
828 Call(SetAnimationRate, ACTOR_SELF, PRT_MAIN, Float(0.5))
829 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, SWEAT_DECOR_IDX)
830 Call(SetActorSounds, ACTOR_SELF, ACTOR_SOUND_JUMP, SOUND_NONE, 0)
831 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_ACTOR_JUMP)
832 Call(SetAnimationRate, ACTOR_SELF, PRT_MAIN, Float(1.0))
833 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_KoopaTroopa_Dark_ToppleStruggle)
834 Set(LVar0, 0)
835 Call(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
836 Thread
837 Loop(5)
838 Add(LVar0, 15)
839 Call(SetActorRotation, ACTOR_SELF, 0, 0, LVar0)
840 Wait(1)
841 EndLoop
843 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
844 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
845 Call(SetActorJumpGravity, ACTOR_SELF, Float(3.0))
846 Call(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
847 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_ACTOR_STEP_A)
848 Call(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
849 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
850 Call(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
851 Call(SetDefenseTable, ACTOR_SELF, PRT_MAIN, Ref(N(UprightDefenseTable)))
852 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -4, 32)
853 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -4)
854 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLIPPED, FALSE)
855 Call(ResetActorSounds, ACTOR_SELF, ACTOR_SOUND_JUMP)
856 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
858 CaseEq(AVAL_State_ToppledNormal)
859 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_Normal)
860 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(KoopaAnims)))
861 CaseEq(AVAL_State_ToppledHyper)
862 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_Hyper)
863 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(HyperAnims)))
865 EndIf
866 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
867 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
868 Return
869 End
870};
871
872EvtScript N(EVS_TakeTurn) = {
873 Call(GetBattlePhase, LVar0)
875 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_Normal)
876 EndIf
877 Call(GetActorVar, ACTOR_SELF, AVAR_State, LVar0)
879 CaseEq(AVAL_State_Normal)
880 ExecWait(N(EVS_Attack_ShellToss))
881 Call(RandInt, 1000, LVar0)
882 IfLt(LVar0, 300)
883 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_Normal)
884 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(KoopaAnims)))
885 Else
886 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_Hyper)
887 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(HyperAnims)))
888 EndIf
889 CaseEq(AVAL_State_Hyper)
890 ExecWait(N(EVS_Attack_Whirlwind))
891 Call(RandInt, 1000, LVar0)
892 IfLt(LVar0, 300)
893 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_Normal)
894 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(KoopaAnims)))
895 Else
896 Call(SetActorVar, ACTOR_SELF, AVAR_State, AVAL_State_Hyper)
897 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(HyperAnims)))
898 EndIf
899 CaseOrEq(AVAL_State_ToppledNormal)
900 CaseOrEq(AVAL_State_ToppledHyper)
901 ExecWait(N(EVS_TryGettingUp))
904 Return
905 End
906};
907
Bytecode EvtScript[]
#define SWEAT_DECOR_IDX
#define WHIRLWIND_DECOR_IDX
#define STATUS_FLAGS_IMMOBILIZED
Definition enums.h:2834
@ 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_JUMP
Definition enums.h:2122
@ ELEMENT_END
Definition enums.h:2114
@ ELEMENT_BLAST
Definition enums.h:2124
@ ELEMENT_SMASH
Definition enums.h:2121
@ ELEMENT_WATER
Definition enums.h:2117
@ 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_DECORATION_WHIRLWIND
Definition enums.h:2050
@ 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_DEFAULT
Definition enums.h:4824
@ BTL_CAM_ENEMY_APPROACH
Definition enums.h:4885
@ SUPPRESS_EVENT_ALL
Definition enums.h:2907
@ EASING_COS_IN_OUT
Definition enums.h:520
@ IDLE_SCRIPT_RESTART
Definition enums.h:6409
@ IDLE_SCRIPT_ENABLE
Definition enums.h:6408
@ IDLE_SCRIPT_DISABLE
Definition enums.h:6407
@ STATUS_FLAG_SHRINK
Definition enums.h:2819
@ STATUS_FLAG_DIZZY
Definition enums.h:2818
@ STATUS_FLAG_SLEEP
Definition enums.h:2812
@ SOUND_NONE
Definition enums.h:547
@ SOUND_ACTOR_STEP_A
Definition enums.h:1474
@ SOUND_SHELL_SPIN
Definition enums.h:1342
@ SOUND_SHELL_TOSS
Definition enums.h:1497
@ SOUND_DIZZY_SHELL
Definition enums.h:1346
@ SOUND_ACTOR_JUMP
Definition enums.h:1290
@ ACTOR_PLAYER
Definition enums.h:2085
@ ACTOR_SELF
Definition enums.h:2084
@ 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_END_FIRST_STRIKE
Definition enums.h:2171
@ 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_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_STATUS_ALWAYS_HITS
Definition enums.h:2880
@ DAMAGE_TYPE_TRIGGER_LUCKY
Definition enums.h:2881
@ DAMAGE_TYPE_NO_CONTACT
Definition enums.h:2878
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_AirLift
EvtScript EVS_Enemy_BlowAway
EvtScript EVS_Enemy_Recover
EvtScript EVS_Enemy_BurnHit
EvtScript EVS_Enemy_NoDamageHit
ApiStatus UpdateLerp(Evt *script, b32 isInitialCall)
ApiStatus RandInt(Evt *script, b32 isInitialCall)
ApiStatus MakeLerp(Evt *script, b32 isInitialCall)
#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 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 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 Goto(LABEL_ID)
Moves execution to the given label.
Definition macros.h:232
#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 IfLt(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR < RVAR.
Definition macros.h:275
#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 ExecWait(EVT_SOURCE)
Launches a new child thread.
Definition macros.h:475
#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 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 DMG_STATUS_KEY(typeFlag, duration, chance)
Definition macros.h:224
#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 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 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