Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
cleft.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/Cleft.h"
6
7#define NAMESPACE A(cleft)
8
9extern s32 N(UprightAnims)[];
10extern EvtScript N(EVS_Init);
11extern EvtScript N(EVS_Idle);
12extern EvtScript N(EVS_TakeTurn);
13extern EvtScript N(EVS_HandleEvent);
14
15enum N(ActorPartIDs) {
16 PRT_MAIN = 1,
17};
18
19enum N(ActorVars) {
20 AVAR_Toppled = 0,
21 AVAR_ToppleTurns = 1,
22};
23
24enum N(ActorParams) {
25 DMG_TACKLE = 2,
26};
27
28s32 N(UprightDefenseTable)[] = {
30 ELEMENT_FIRE, 99,
33};
34
35s32 N(ToppledDefenseTable)[] = {
37 ELEMENT_FIRE, 99,
39};
40
41s32 N(StatusTable)[] = {
64};
65
66ActorPartBlueprint N(ActorParts)[] = {
67 {
69 .index = PRT_MAIN,
70 .posOffset = { 0, 0, 0 },
71 .targetOffset = { 0, 22 },
72 .opacity = 255,
73 .idleAnimations = N(UprightAnims),
74 .defenseTable = N(UprightDefenseTable),
75 .eventFlags = ACTOR_EVENT_FLAG_SPIKY_TOP,
76 .elementImmunityFlags = 0,
77 .projectileTargetOffset = { 0, -10 },
78 },
79};
80
81ActorBlueprint NAMESPACE = {
82 .flags = 0,
83 .type = ACTOR_TYPE_CLEFT,
84 .level = ACTOR_LEVEL_CLEFT,
85 .maxHP = 2,
86 .partCount = ARRAY_COUNT(N(ActorParts)),
87 .partsData = N(ActorParts),
88 .initScript = &N(EVS_Init),
89 .statusTable = N(StatusTable),
90 .escapeChance = 80,
91 .airLiftChance = 40,
92 .hurricaneChance = 40,
93 .spookChance = 40,
94 .upAndAwayChance = 95,
95 .spinSmashReq = 0,
96 .powerBounceChance = 95,
97 .coinReward = 2,
98 .size = { 44, 36 },
99 .healthBarOffset = { 0, 0 },
100 .statusIconOffset = { -10, 20 },
101 .statusTextOffset = { 10, 20 },
102};
103
104s32 N(UprightAnims)[] = {
105 STATUS_KEY_NORMAL, ANIM_Cleft_Anim02,
106 STATUS_KEY_STONE, ANIM_Cleft_Anim00,
107 STATUS_KEY_SLEEP, ANIM_Cleft_Anim0C,
108 STATUS_KEY_POISON, ANIM_Cleft_Anim02,
109 STATUS_KEY_STOP, ANIM_Cleft_Anim00,
110 STATUS_KEY_STATIC, ANIM_Cleft_Anim02,
111 STATUS_KEY_PARALYZE, ANIM_Cleft_Anim00,
112 STATUS_KEY_DIZZY, ANIM_Cleft_Anim0E,
113 STATUS_KEY_FEAR, ANIM_Cleft_Anim0E,
115};
116
117s32 N(ToppledAnims)[] = {
118 STATUS_KEY_NORMAL, ANIM_Cleft_Anim05,
119 STATUS_KEY_STONE, ANIM_Cleft_Anim01,
120 STATUS_KEY_SLEEP, ANIM_Cleft_Anim0D,
121 STATUS_KEY_POISON, ANIM_Cleft_Anim05,
122 STATUS_KEY_STOP, ANIM_Cleft_Anim01,
123 STATUS_KEY_STATIC, ANIM_Cleft_Anim05,
124 STATUS_KEY_PARALYZE, ANIM_Cleft_Anim01,
125 STATUS_KEY_DIZZY, ANIM_Cleft_Anim0F,
126 STATUS_KEY_FEAR, ANIM_Cleft_Anim0F,
128};
129
131
133
134EvtScript N(EVS_Init) = {
135 Call(BindIdle, ACTOR_SELF, Ref(N(EVS_Idle)))
136 Call(BindTakeTurn, ACTOR_SELF, Ref(N(EVS_TakeTurn)))
137 Call(BindHandleEvent, ACTOR_SELF, Ref(N(EVS_HandleEvent)))
138 Call(SetActorVar, ACTOR_SELF, AVAR_Toppled, 0)
139 Return
140 End
141};
142
143EvtScript N(EVS_Idle) = {
144 Return
145 End
146};
147
148EvtScript N(EVS_FlipOver) = {
149 Call(SetActorVar, ACTOR_SELF, AVAR_Toppled, 1)
150 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleTurns, 2)
151 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim07)
152 Call(SetActorRotationOffset, ACTOR_SELF, 0, 16, 0)
153 Thread
154 Set(LVar0, 0)
155 Loop(5)
156 Add(LVar0, -36)
157 Call(SetActorRotation, ACTOR_SELF, 0, 0, LVar0)
158 Wait(1)
159 EndLoop
161 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
162 Call(SetActorJumpGravity, ACTOR_SELF, Float(1.3))
163 Sub(LVar1, 6)
164 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
165 Call(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE)
166 Call(N(StartRumbleWithParams), 200, 10)
167 Thread
168 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
170 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 40, 8, Float(0.0), 20, 0)
171 Call(SetActorPos, ACTOR_SELF, LVar0, 0, LVar2)
172 Call(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
173 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
174 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim03)
175 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledAnims)))
176 Call(SetDefenseTable, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledDefenseTable)))
177 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 15)
178 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, -7)
179 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_SPIKY_TOP, FALSE)
180 Call(N(SetSpinSmashable), FALSE)
181 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLIPPED, TRUE)
182 Return
183 End
184};
185
186EvtScript N(EVS_HandleEvent) = {
187 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
188 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
189 Call(GetLastEvent, ACTOR_SELF, LVar0)
193 Call(GetLastElement, LVar0)
196 ExecWait(N(EVS_FlipOver))
198 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
199 IfEq(LVar0, 1)
200 SetConst(LVar1, ANIM_Cleft_Anim09)
201 Else
202 SetConst(LVar1, ANIM_Cleft_Anim08)
203 EndIf
204 SetConst(LVar0, PRT_MAIN)
209 Call(GetLastElement, LVar0)
212 ExecWait(N(EVS_FlipOver))
214 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION, TRUE)
215 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
216 IfEq(LVar0, 1)
217 SetConst(LVar0, PRT_MAIN)
218 SetConst(LVar1, ANIM_Cleft_Anim09)
219 SetConst(LVar2, -1)
221 Else
222 SetConst(LVar0, PRT_MAIN)
223 SetConst(LVar1, ANIM_Cleft_Anim08)
224 SetConst(LVar2, -1)
226 EndIf
227 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION, FALSE)
230 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
231 IfEq(LVar0, 1)
232 SetConst(LVar0, PRT_MAIN)
233 SetConst(LVar1, ANIM_Cleft_Anim09)
234 SetConst(LVar2, -1)
236 SetConst(LVar0, PRT_MAIN)
237 SetConst(LVar1, ANIM_Cleft_Anim09)
239 Else
240 SetConst(LVar0, PRT_MAIN)
241 SetConst(LVar1, ANIM_Cleft_Anim08)
242 SetConst(LVar2, -1)
244 SetConst(LVar0, PRT_MAIN)
245 SetConst(LVar1, ANIM_Cleft_Anim08)
247 EndIf
248 Return
250 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
251 IfEq(LVar0, 1)
252 SetConst(LVar1, ANIM_Cleft_Anim09)
253 Else
254 SetConst(LVar1, ANIM_Cleft_Anim08)
255 EndIf
256 SetConst(LVar0, PRT_MAIN)
259 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
260 IfEq(LVar0, 1)
261 SetConst(LVar0, PRT_MAIN)
262 SetConst(LVar1, ANIM_Cleft_Anim09)
264 SetConst(LVar0, PRT_MAIN)
265 SetConst(LVar1, ANIM_Cleft_Anim09)
267 Else
268 SetConst(LVar0, PRT_MAIN)
269 SetConst(LVar1, ANIM_Cleft_Anim08)
271 SetConst(LVar0, PRT_MAIN)
272 SetConst(LVar1, ANIM_Cleft_Anim08)
274 EndIf
275 Return
277 SetConst(LVar0, PRT_MAIN)
278 SetConst(LVar1, ANIM_Cleft_Anim08)
280 SetConst(LVar0, PRT_MAIN)
281 SetConst(LVar1, ANIM_Cleft_Anim08)
283 Call(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
284 SetConst(LVar0, PRT_MAIN)
285 SetConst(LVar1, ANIM_Cleft_Anim07)
287 Call(SetActorJumpGravity, ACTOR_SELF, Float(1.6))
288 Call(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
290 SetConst(LVar0, PRT_MAIN)
291 SetConst(LVar1, ANIM_Cleft_Anim08)
293 SetConst(LVar0, PRT_MAIN)
294 SetConst(LVar1, ANIM_Cleft_Anim08)
296 Return
299 Call(GetStatusFlags, ACTOR_SELF, LVar0)
301 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim18)
302 EndIf
303 Wait(10)
304 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
305 Call(GetStatusFlags, ACTOR_SELF, LVar3)
307 Add(LVar0, -3)
308 Add(LVar1, 10)
309 Else
310 Add(LVar0, -8)
311 Add(LVar1, 27)
312 EndIf
313 PlayEffect(EFFECT_LENS_FLARE, 0, LVar0, LVar1, LVar2, 20, 0)
314 Wait(20)
318 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
319 IfEq(LVar0, 1)
320 SetConst(LVar1, ANIM_Cleft_Anim03)
321 Else
322 SetConst(LVar1, ANIM_Cleft_Anim02)
323 EndIf
324 SetConst(LVar0, PRT_MAIN)
328 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
329 IfEq(LVar0, 1)
330 SetConst(LVar0, PRT_MAIN)
331 SetConst(LVar1, ANIM_Cleft_Anim09)
333 Wait(10)
334 SetConst(LVar0, PRT_MAIN)
335 SetConst(LVar1, ANIM_Cleft_Anim09)
337 Else
338 SetConst(LVar0, PRT_MAIN)
339 SetConst(LVar1, ANIM_Cleft_Anim08)
341 Wait(10)
342 SetConst(LVar0, PRT_MAIN)
343 SetConst(LVar1, ANIM_Cleft_Anim08)
345 EndIf
346 Return
348 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
349 IfEq(LVar0, 0)
350 SetConst(LVar0, PRT_MAIN)
351 SetConst(LVar1, ANIM_Cleft_Anim02)
353 EndIf
355 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
356 IfEq(LVar0, 1)
357 SetConst(LVar0, PRT_MAIN)
358 SetConst(LVar1, ANIM_Cleft_Anim03)
360 Else
361 SetConst(LVar0, PRT_MAIN)
362 SetConst(LVar1, ANIM_Cleft_Anim07)
363 SetConst(LVar2, ANIM_Cleft_Anim08)
365 Return
366 EndIf
368 SetConst(LVar0, PRT_MAIN)
369 SetConst(LVar1, ANIM_Cleft_Anim0F)
372 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
373 IfEq(LVar0, 1)
374 SetConst(LVar0, PRT_MAIN)
375 SetConst(LVar1, ANIM_Cleft_Anim0F)
376 Else
377 SetConst(LVar0, PRT_MAIN)
378 SetConst(LVar1, ANIM_Cleft_Anim08)
379 EndIf
381 Return
384 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
385 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
386 Return
387 End
388};
389
390EvtScript N(EVS_TryGettingUp) = {
391 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
392 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
393 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT)
394 Call(SetAnimationRate, ACTOR_SELF, PRT_MAIN, Float(3.0))
395 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim03)
396 Wait(20)
397 Call(SetAnimationRate, ACTOR_SELF, PRT_MAIN, Float(1.0))
398 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim05)
399 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0)
400 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleTurns, LVar0)
401 IfGt(LVar0, 0)
402 Sub(LVar0, 1)
403 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleTurns, LVar0)
404 Else
405 Call(SetActorRotationOffset, ACTOR_SELF, 0, 16, 0)
406 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim03)
407 Thread
408 Wait(3)
409 Loop(5)
410 Add(LVar0, 36)
411 Call(SetActorRotation, ACTOR_SELF, 0, 0, LVar0)
412 Wait(1)
413 EndLoop
415 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
416 Sub(LVar1, 6)
417 Call(SetActorJumpGravity, ACTOR_SELF, Float(1.3))
418 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
419 Call(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
420 Call(N(StartRumbleWithParams), 200, 10)
421 Thread
422 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
424 Call(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
425 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
426 Call(SetActorPos, ACTOR_SELF, LVar0, 0, LVar2)
427 Call(SetActorVar, ACTOR_SELF, AVAR_Toppled, 0)
428 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim02)
429 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(UprightAnims)))
430 Call(SetDefenseTable, ACTOR_SELF, PRT_MAIN, Ref(N(UprightDefenseTable)))
431 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 22)
432 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, -10)
433 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_SPIKY_TOP, TRUE)
434 Wait(1)
435 Call(N(SetSpinSmashable), TRUE)
436 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLIPPED, FALSE)
437 EndIf
438 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
439 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
440 Return
441 End
442};
443
444EvtScript N(EVS_Attack_Tackle) = {
445 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
446 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
447 Call(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
448 Call(SetGoalToTarget, ACTOR_SELF)
449 Call(UseBattleCamPreset, BTL_CAM_ENEMY_APPROACH)
450 Call(BattleCamTargetActor, ACTOR_SELF)
451 Call(SetBattleCamTargetingModes, BTL_CAM_YADJ_TARGET, BTL_CAM_XADJ_AVG, FALSE)
452 Call(MoveBattleCamOver, 30)
453 Thread
454 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
455 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
456 Wait(10)
457 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
458 Wait(5)
459 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
461 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim10)
462 Wait(10)
463 Call(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
464 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim11)
465 Call(SetGoalToTarget, ACTOR_SELF)
466 Call(AddGoalPos, ACTOR_SELF, 50, 0, -5)
467 Call(SetActorSpeed, ACTOR_SELF, Float(4.0))
468 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
469 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim00)
470 Wait(8)
471 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_CLEFT_TACKLE)
473 Call(EnemyTestTarget, ACTOR_SELF, LVar0, 0, 0, DMG_TACKLE, BS_FLAGS1_INCLUDE_POWER_UPS)
477 Set(LVarA, LVar0)
479 Thread
480 Wait(10)
481 Call(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
483 EndIf
484 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim11)
485 Call(SetGoalToTarget, ACTOR_SELF)
486 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
487 Sub(LVar0, 100)
488 Set(LVar1, 0)
489 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
490 Call(SetActorSpeed, ACTOR_SELF, Float(8.0))
491 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
492 Call(SetPartRotation, ACTOR_SELF, PRT_MAIN, 0, 0, 45)
493 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim08)
494 Wait(15)
495 Wait(8)
496 Call(ResetAllActorSounds, ACTOR_SELF)
497 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
498 Call(YieldTurn)
499 Call(SetPartRotation, ACTOR_SELF, PRT_MAIN, 0, 0, 0)
500 Call(SetActorYaw, ACTOR_SELF, 180)
501 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT)
502 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim07)
503 Call(SetGoalToHome, ACTOR_SELF)
504 Call(SetActorSpeed, ACTOR_SELF, Float(8.0))
505 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
506 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim02)
507 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0)
508 Call(SetActorYaw, ACTOR_SELF, 0)
509 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
510 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
511 Return
514 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim11)
515 Call(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2)
516 Add(LVar0, 20)
517 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
518 Call(SetActorSpeed, ACTOR_SELF, Float(8.0))
519 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
520 Call(ResetAllActorSounds, ACTOR_SELF)
521 Wait(2)
522 Call(SetGoalToTarget, ACTOR_SELF)
523 Call(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 0, 0, DMG_TACKLE, BS_FLAGS1_TRIGGER_EVENTS)
524 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim02)
525 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
529 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
530 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
531 Add(LVar0, 15)
532 Set(LVar1, 0)
533 Call(SetActorJumpGravity, ACTOR_SELF, Float(2.4))
534 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
535 Call(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
536 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim02)
537 Wait(5)
538 Call(YieldTurn)
539 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim07)
540 Call(SetActorSpeed, ACTOR_SELF, Float(8.0))
541 Call(SetGoalToHome, ACTOR_SELF)
542 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
543 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_Cleft_Anim02)
546 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
547 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
548 Return
549 End
550};
551
552EvtScript N(EVS_TakeTurn) = {
553 Call(GetActorVar, ACTOR_SELF, AVAR_Toppled, LVar0)
554 IfEq(LVar0, TRUE)
555 ExecWait(N(EVS_TryGettingUp))
556 Else
557 ExecWait(N(EVS_Attack_Tackle))
558 EndIf
559 Return
560 End
561};
Bytecode EvtScript[]
#define STATUS_FLAGS_IMMOBILIZED
Definition enums.h:2834
@ BTL_CAM_XADJ_AVG
Definition enums.h:4900
@ ACTOR_SOUND_WALK
Definition enums.h:2034
@ BS_FLAGS1_TRIGGER_EVENTS
Definition enums.h:3575
@ BS_FLAGS1_INCLUDE_POWER_UPS
Definition enums.h:3571
@ ELEMENT_FIRE
Definition enums.h:2116
@ ELEMENT_MAGIC
Definition enums.h:2120
@ ELEMENT_END
Definition enums.h:2114
@ ELEMENT_NORMAL
Definition enums.h:2115
@ ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION
Blast and fire attacks trigger an explosion.
Definition enums.h:3377
@ ACTOR_EVENT_FLAG_SPIKY_TOP
Player takes spike damage from jump attacks.
Definition enums.h:3373
@ ACTOR_DECORATION_SWEAT
Definition enums.h:2045
@ 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
@ IDLE_SCRIPT_ENABLE
Definition enums.h:6408
@ IDLE_SCRIPT_DISABLE
Definition enums.h:6407
@ STATUS_FLAG_SHRINK
Definition enums.h:2819
@ SOUND_NONE
Definition enums.h:547
@ SOUND_CLEFT_TACKLE
Definition enums.h:1495
@ 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_STAR_BEAM
Definition enums.h:2140
@ 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_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
@ CAM_BATTLE
Definition enums.h:1801
@ DAMAGE_TYPE_BLAST
Definition enums.h:2860
@ 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_AirLift
EvtScript EVS_Enemy_BlowAway
EvtScript EVS_Enemy_Recover
EvtScript EVS_Enemy_BurnHit
EvtScript EVS_Enemy_NoDamageHit
ApiStatus ShakeCam(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 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 ARRAY_COUNT(arr)
Definition macros.h:40
#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 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 CaseDefault
Marks the start of a switch case that executes unconditionally. It also marks the end of any previous...
Definition macros.h:337
#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 CaseFlag(RVAR)
Marks the start of a switch case that executes only if the RVAR flag is set on LVAR,...
Definition macros.h:349
#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 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 LVar3
Definition macros.h:151
#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