Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
bombette.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/BattleBombette.h"
8
9#define NAMESPACE battle_partner_bombette
10
11extern EvtScript N(EVS_Init);
12extern EvtScript N(EVS_TakeTurn);
13extern EvtScript N(EVS_Idle);
14extern EvtScript N(EVS_HandleEvent);
15extern EvtScript N(EVS_HandlePhase);
16extern EvtScript N(EVS_Celebrate);
17extern EvtScript N(EVS_ExecuteAction);
18extern EvtScript N(EVS_Attack_FirstStrike);
19extern EvtScript N(EVS_FirstStrike);
20extern EvtScript N(EVS_RunAway);
22extern EvtScript N(EVS_Attack_BodySlam);
23extern EvtScript N(EVS_Attack_Bomb);
24
25enum N(ActorPartIDs) {
26 PRT_MAIN = 1,
27};
28
29enum N(ActorVars) {
30 AVAR_Unk_0 = 0,
31};
32
33enum {
36};
37
38API_CALLABLE(N(PlayExplosionFX)) {
39 BattleStatus* battleStatus = &gBattleStatus;
40 Bytecode* args = script->ptrReadPos;
41 s32 x = evt_get_variable(script, *args++);
42 s32 y = evt_get_variable(script, *args++);
43 s32 z = evt_get_variable(script, *args++);
44 s16 selectedMoveID;
45
46 fx_smoke_ring(0, x, y, z);
47 selectedMoveID = battleStatus->selectedMoveID;
48
49 switch (selectedMoveID) {
50 case MOVE_BOMB:
51 if (script->varTable[10] > 0) {
52 fx_explosion(1, x, y + 20, z);
53 } else {
54 fx_explosion(0, x, y + 20, z);
55 }
57 break;
58 case MOVE_POWER_BOMB:
59 if (script->varTable[10] > 0) {
60 fx_explosion(1, x, y + 20, z);
61 } else {
62 fx_explosion(0, x, y + 20, z);
63 }
65 break;
66 case MOVE_MEGA_BOMB:
67 if (script->varTable[10] > 0) {
68 fx_explosion(2, x, y + 20, z);
69 } else {
70 fx_explosion(1, x, y + 20, z);
71 }
73 break;
74 default:
75 fx_explosion(0, x, y + 20, z);
77 break;
78 }
79
80 return ApiStatus_DONE2;
81}
82
83API_CALLABLE(N(SlowDown)) {
84 BattleStatus* battleStatus = &gBattleStatus;
85 Actor* partnerActor = battleStatus->partnerActor;
86 ActorState* partnerActorMovement = &partnerActor->state;
87
88 if (isInitialCall) {
89 partnerActor->state.curPos.x = partnerActor->curPos.x;
90 partnerActor->state.curPos.y = partnerActor->curPos.y;
91 partnerActor->state.curPos.z = partnerActor->curPos.z;
92 }
93
94 add_xz_vec3f(&partnerActorMovement->curPos, partnerActor->state.speed, partnerActor->state.angle);
95
96 if (partnerActor->state.speed < 4.0f) {
97 play_movement_dust_effects(0, partnerActor->state.curPos.x, partnerActor->state.curPos.y,
98 partnerActor->state.curPos.z, partnerActor->state.angle);
99 } else {
100 play_movement_dust_effects(1, partnerActor->state.curPos.x, partnerActor->state.curPos.y,
101 partnerActor->state.curPos.z, partnerActor->state.angle);
102 }
103
104 partnerActorMovement->speed /= 1.5;
105
106 partnerActor->curPos.x = partnerActorMovement->curPos.x;
107 partnerActor->curPos.y = partnerActorMovement->curPos.y;
108 partnerActor->curPos.z = partnerActorMovement->curPos.z;
109
110 if (partnerActorMovement->speed < 1.0) {
111 return ApiStatus_DONE2;
112 }
113
114 return ApiStatus_BLOCK;
115}
116
117API_CALLABLE(N(GetBombDamage)) {
118 Bytecode* args = script->ptrReadPos;
119 BattleStatus* battleStatus = &gBattleStatus;
120 Actor* partnerActor = battleStatus->partnerActor;
121 s32 mashResult = evt_get_variable(script, *args++);
122 s32 damage = 0;
123
124 switch (partnerActor->actorBlueprint->level) {
126 if (mashResult <= 35) {
127 damage = 1;
128 } else if (mashResult <= 60) {
129 damage = 2;
130 } else if (mashResult <= 80) {
131 damage = 3;
132 } else if (mashResult <= 99) {
133 damage = 4;
134 } else {
135 damage = 5;
136 }
137 break;
139 if (mashResult <= 35) {
140 damage = 1;
141 } else if (mashResult <= 60) {
142 damage = 3;
143 } else if (mashResult <= 80) {
144 damage = 4;
145 } else if (mashResult <= 99) {
146 damage = 5;
147 } else {
148 damage = 6;
149 }
150 break;
152 if (mashResult <= 35) {
153 damage = 1;
154 } else if (mashResult <= 60) {
155 damage = 3;
156 } else if (mashResult <= 80) {
157 damage = 5;
158 } else if (mashResult <= 99) {
159 damage = 6;
160 } else {
161 damage = 7;
162 }
163 break;
164 }
165
166 if (mashResult > 99) {
167 script->varTable[0] = true;
168 } else {
169 script->varTable[0] = false;
170 }
171
172 script->varTable[15] = damage;
173
174 return ApiStatus_DONE2;
175}
176
177API_CALLABLE(N(GetPowerBombDamage)) {
178 Bytecode* args = script->ptrReadPos;
179 BattleStatus* battleStatus = &gBattleStatus;
180 Actor* partnerActor = battleStatus->partnerActor;
181 s32 mashResult = evt_get_variable(script, *args++);
182 s32 damage = 0;
183
184 switch (partnerActor->actorBlueprint->level) {
186 if (mashResult <= 35) {
187 damage = 1;
188 } else if (mashResult <= 60) {
189 damage = 3;
190 } else if (mashResult <= 80) {
191 damage = 4;
192 } else if (mashResult <= 99) {
193 damage = 5;
194 } else {
195 damage = 6;
196 }
197 break;
199 if (mashResult <= 35) {
200 damage = 1;
201 } else if (mashResult <= 60) {
202 damage = 3;
203 } else if (mashResult <= 80) {
204 damage = 5;
205 } else if (mashResult <= 99) {
206 damage = 6;
207 } else {
208 damage = 7;
209 }
210 break;
211 }
212
213 if (mashResult > 99) {
214 script->varTable[0] = true;
215 } else {
216 script->varTable[0] = false;
217 }
218
219 script->varTable[15] = damage;
220
221 return ApiStatus_DONE2;
222}
223
224API_CALLABLE(N(GetMegaBombDamage)) {
225 Bytecode* args = script->ptrReadPos;
226 BattleStatus* battleStatus = &gBattleStatus;
227 Actor* partnerActor = battleStatus->partnerActor;
228 s32 mashResult = evt_get_variable(script, *args++);
229 s32 damage = 0;
230
231 switch (partnerActor->actorBlueprint->level) {
233 if (mashResult <= 35) {
234 damage = 1;
235 } else if (mashResult <= 60) {
236 damage = 3;
237 } else if (mashResult <= 80) {
238 damage = 5;
239 } else if (mashResult <= 99) {
240 damage = 6;
241 } else {
242 damage = 7;
243 }
244 break;
245 }
246
247 if (mashResult > 99) {
248 script->varTable[0] = true;
249 } else {
250 script->varTable[0] = false;
251 }
252
253 script->varTable[15] = damage;
254
255 return ApiStatus_DONE2;
256}
257
258s32 N(DefaultAnims)[] = {
259 STATUS_KEY_NORMAL, ANIM_BattleBombette_Walk,
260 STATUS_KEY_STONE, ANIM_BattleBombette_Still,
261 STATUS_KEY_SLEEP, ANIM_BattleBombette_Sleep,
262 STATUS_KEY_POISON, ANIM_BattleBombette_Still,
263 STATUS_KEY_STOP, ANIM_BattleBombette_Still,
264 STATUS_KEY_KO, ANIM_BattleBombette_Injured,
265 STATUS_KEY_INACTIVE, ANIM_BattleBombette_Still,
267};
268
269s32 N(DefenseTable)[] = {
272};
273
274s32 N(StatusTable)[] = {
277 STATUS_KEY_SLEEP, 100,
280 STATUS_KEY_DIZZY, 100,
285 STATUS_KEY_STOP, 100,
297};
298
299ActorPartBlueprint N(ActorParts)[] = {
300 {
301 .flags = 0,
302 .index = PRT_MAIN,
303 .posOffset = { 0, 0, 0 },
304 .targetOffset = { 9, 20 },
305 .opacity = 255,
306 .idleAnimations = N(DefaultAnims),
307 .defenseTable = N(DefenseTable),
308 .eventFlags = ACTOR_EVENT_FLAGS_NONE,
309 .elementImmunityFlags = 0,
310 .projectileTargetOffset = { 0, 0 },
311 },
312};
313
314ActorBlueprint NAMESPACE = {
315 .flags = 0,
316 .type = ACTOR_TYPE_BOMBETTE,
317 .level = ACTOR_LEVEL_BOMBETTE,
318 .maxHP = 99,
319 .partCount = ARRAY_COUNT(N(ActorParts)),
320 .partsData = N(ActorParts),
321 .initScript = &N(EVS_Init),
322 .statusTable = N(StatusTable),
323 .escapeChance = 0,
324 .airLiftChance = 0,
325 .hurricaneChance = 0,
326 .spookChance = 0,
327 .upAndAwayChance = 0,
328 .spinSmashReq = 4,
329 .powerBounceChance = 80,
330 .coinReward = 0,
331 .size = { 30, 28 },
332 .healthBarOffset = { 0, 0 },
333 .statusIconOffset = { -10, 20 },
334 .statusTextOffset = { 10, 20 },
335};
336
337EvtScript N(EVS_Init) = {
338 Call(BindTakeTurn, ACTOR_PARTNER, Ref(N(EVS_TakeTurn)))
339 Call(BindIdle, ACTOR_PARTNER, Ref(N(EVS_Idle)))
340 Call(BindHandleEvent, ACTOR_PARTNER, Ref(N(EVS_HandleEvent)))
341 Call(BindHandlePhase, ACTOR_PARTNER, Ref(N(EVS_HandlePhase)))
342 Return
343 End
344};
345
346EvtScript N(EVS_Idle) = {
347 Return
348 End
349};
350
351EvtScript N(EVS_HandleEvent) = {
352 Call(UseIdleAnimation, ACTOR_PARTNER, false)
353 Call(InterruptActionCommand)
355 Call(GetLastEvent, ACTOR_PARTNER, LVar0)
359 SetConst(LVar1, ANIM_BattleBombette_Hurt)
360 SetConst(LVar2, ANIM_BattleBombette_Backfire2)
362 SetConst(LVar1, ANIM_BattleBombette_Hurt)
367 Call(PlaySoundAtActor, ACTOR_PARTNER, SOUND_NO_DAMGE)
368 SetConst(LVar0, PRT_MAIN)
369 SetConst(LVar1, ANIM_BattleBombette_Hurt)
373 SetConst(LVar1, ANIM_BattleBombette_Hurt)
374 Set(LVar2, 15)
375 SetConst(LVar3, ANIM_BattleBombette_Injured)
377 SetConst(LVar1, ANIM_BattleBombette_Hurt)
380 SetConst(LVar1, ANIM_BattleBombette_BurnHurt)
381 SetConst(LVar2, ANIM_BattleBombette_BurnStill)
383 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
384 Set(LVarA, 0)
385 Call(N(PlayExplosionFX), LVar0, LVar1, LVar2)
386 Thread
387 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.5))
388 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(2.0))
389 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(3.0))
390 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(2.0))
391 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(1.5))
392 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.8))
393 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.3))
394 Call(ShakeCam, CAM_BATTLE, 0, 8, Float(0.1))
396 Thread
397 Set(LVar0, 0)
398 Loop(80)
399 Wait(1)
400 Call(SetActorRotation, ACTOR_SELF, 0, 0, LVar0)
401 Add(LVar0, 33)
402 EndLoop
403 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
405 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
406 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
407 Add(LVar1, 200)
408 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
409 Call(FlyToGoal, ACTOR_PARTNER, 10, 0, EASING_LINEAR)
410 Wait(50)
411 Call(SetGoalToHome, ACTOR_PARTNER)
412 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
413 Add(LVar1, 200)
414 Call(SetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
415 Call(SetGoalToHome, ACTOR_PARTNER)
416 Call(SetActorSpeed, ACTOR_PARTNER, Float(4.0))
417 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(0.6))
418 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
419 Call(JumpToGoal, ACTOR_PARTNER, 20, false, true, false)
420 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
421 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
422 Set(LVar1, 0)
423 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(1.0))
424 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
425 Call(JumpToGoal, ACTOR_PARTNER, 10, false, true, false)
426 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
427 Call(JumpToGoal, ACTOR_PARTNER, 8, false, true, false)
428 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
429 Call(JumpToGoal, ACTOR_PARTNER, 5, false, true, false)
430 SetConst(LVar1, ANIM_BattleBombette_Hurt)
433 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
434 Call(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
435 Call(UseBattleCamPreset, BTL_CAM_PARTNER_HIT_SPIKE)
436 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
437 Sub(LVar0, 60)
438 Add(LVar1, 40)
439 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(0.1))
440 Call(SetJumpAnimations, ACTOR_PARTNER, 0, ANIM_BattleBombette_BurnHurt, ANIM_BattleBombette_BurnHurt, ANIM_BattleBombette_BurnHurt)
441 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_BurnHurt)
442 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
443 Call(JumpToGoal, ACTOR_PARTNER, 5, false, true, false)
444 SetConst(LVar1, ANIM_BattleBombette_BurnHurt)
445 SetConst(LVar2, ANIM_BattleBombette_BurnStill)
447 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
448 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
449 Set(LVarA, 0)
450 Call(N(PlayExplosionFX), LVar0, LVar1, LVar2)
451 Thread
452 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.5))
453 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(2.0))
454 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(3.0))
455 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(2.0))
456 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(1.5))
457 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.8))
458 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.3))
459 Call(ShakeCam, CAM_BATTLE, 0, 8, Float(0.1))
461 Thread
462 Set(LVar0, 0)
463 Loop(80)
464 Wait(1)
465 Call(SetActorRotation, ACTOR_SELF, 0, 0, LVar0)
466 Add(LVar0, 33)
467 EndLoop
468 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
470 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
471 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
472 Add(LVar1, 200)
473 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
474 Call(FlyToGoal, ACTOR_PARTNER, 10, 0, EASING_LINEAR)
475 Wait(50)
476 Call(SetGoalToHome, ACTOR_PARTNER)
477 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
478 Add(LVar1, 200)
479 Call(SetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
480 Call(SetGoalToHome, ACTOR_PARTNER)
481 Call(SetActorSpeed, ACTOR_PARTNER, Float(4.0))
482 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(0.6))
483 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
484 Call(JumpToGoal, ACTOR_PARTNER, 20, false, true, false)
485 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
486 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
487 Set(LVar1, 0)
488 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(1.0))
489 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
490 Call(JumpToGoal, ACTOR_PARTNER, 10, false, true, false)
491 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
492 Call(JumpToGoal, ACTOR_PARTNER, 8, false, true, false)
493 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
494 Call(JumpToGoal, ACTOR_PARTNER, 5, false, true, false)
495 SetConst(LVar1, ANIM_BattleBombette_Hurt)
498 SetConst(LVar1, ANIM_BattleBombette_Hurt)
499 Set(LVar2, 15)
500 SetConst(LVar3, ANIM_BattleBombette_Injured)
501 Set(LVarA, LVar1)
502 Set(LVarB, LVar2)
503 Set(LVarC, LVar3)
504 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
505 Call(SetActorScale, ACTOR_SELF, Float(1.0), Float(1.0), Float(1.0))
506 Call(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
507 Call(UseBattleCamPreset, BTL_CAM_PARTNER_HIT_HAZARD)
508 Call(SetAnimation, ACTOR_PARTNER, -1, LVarA)
509 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
510 Sub(LVar0, 60)
511 Add(LVar1, 40)
512 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(0.1))
513 Call(SetJumpAnimations, ACTOR_PARTNER, 0, LVarA, LVarA, LVarA)
514 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
515 Call(JumpToGoal, ACTOR_PARTNER, 5, false, false, false)
516 Call(ShowShockEffect, ACTOR_SELF)
517 Set(LVar1, LVarA)
518 Set(LVar2, 0)
520 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Fall)
521 Wait(8)
522 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
523 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
524 Set(LVarA, 0)
525 Call(N(PlayExplosionFX), LVar0, LVar1, LVar2)
526 Thread
527 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.5))
528 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(2.0))
529 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(3.0))
530 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(2.0))
531 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(1.5))
532 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.8))
533 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.3))
534 Call(ShakeCam, CAM_BATTLE, 0, 8, Float(0.1))
536 Thread
537 Set(LVar0, 0)
538 Loop(80)
539 Wait(1)
540 Call(SetActorRotation, ACTOR_SELF, 0, 0, LVar0)
541 Add(LVar0, 33)
542 EndLoop
543 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
545 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
546 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
547 Add(LVar1, 200)
548 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
549 Call(FlyToGoal, ACTOR_PARTNER, 10, 0, EASING_LINEAR)
550 Wait(50)
551 Call(SetGoalToHome, ACTOR_PARTNER)
552 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
553 Add(LVar1, 200)
554 Call(SetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
555 Call(SetGoalToHome, ACTOR_PARTNER)
556 Call(SetActorSpeed, ACTOR_PARTNER, Float(4.0))
557 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(0.6))
558 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
559 Call(JumpToGoal, ACTOR_PARTNER, 20, false, true, false)
560 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
561 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
562 Set(LVar1, 0)
563 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(1.0))
564 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
565 Call(JumpToGoal, ACTOR_PARTNER, 10, false, true, false)
566 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
567 Call(JumpToGoal, ACTOR_PARTNER, 8, false, true, false)
568 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
569 Call(JumpToGoal, ACTOR_PARTNER, 5, false, true, false)
570 SetConst(LVar1, ANIM_BattleBombette_Hurt)
573 SetConst(LVar1, ANIM_BattleBombette_Hurt)
576 SetConst(LVar0, PRT_MAIN)
577 SetConst(LVar1, ANIM_BattleBombette_Idle)
578 SetConst(LVar2, ANIM_BattleBombette_Run)
579 Set(LVar3, 0)
583 Call(PlaySoundAtActor, ACTOR_PARTNER, SOUND_NO_DAMGE)
584 SetConst(LVar0, PRT_MAIN)
585 SetConst(LVar1, ANIM_BattleBombette_Block)
587 Wait(10)
591 Call(UseIdleAnimation, ACTOR_PARTNER, true)
592 Return
593 End
594};
595
596EvtScript N(EVS_TakeTurn) = {
597 Call(GetBattlePhase, LVar0)
600 ExecWait(N(EVS_FirstStrike))
602 ExecWait(N(EVS_ExecuteAction))
604 ExecWait(N(EVS_Celebrate))
606 ExecWait(N(EVS_RunAway))
610 Return
611 End
612};
613
614EvtScript N(EVS_Celebrate) = {
615 SetConst(LVar0, PRT_MAIN)
616 SetConst(LVar1, ANIM_BattleBombette_CelebrateLoop)
617 SetConst(LVar2, ANIM_BattleBombette_Celebrate)
618 SetConst(LVar3, ANIM_BattleBombette_Idle)
620 Return
621 End
622};
623
624EvtScript N(EVS_ExecuteAction) = {
625 Call(ShowActionHud, true)
626 Call(SetBattleFlagBits, BS_FLAGS1_4000, false)
627 Call(GetMenuSelection, LVar0, LVar1, LVar2)
630 Call(LoadStarPowerScript)
632 Return
634 Call(GetMenuSelection, LVar0, LVar1, LVar2)
636 CaseEq(MOVE_BODY_SLAM1)
637 ExecWait(N(EVS_Attack_BodySlam))
638 CaseEq(MOVE_BODY_SLAM2)
639 ExecWait(N(EVS_Attack_BodySlam))
640 CaseEq(MOVE_BODY_SLAM3)
641 ExecWait(N(EVS_Attack_BodySlam))
642 CaseEq(MOVE_BOMB)
643 ExecWait(N(EVS_Attack_Bomb))
644 CaseEq(MOVE_POWER_BOMB)
645 ExecWait(N(EVS_Attack_Bomb))
646 CaseEq(MOVE_MEGA_BOMB)
647 ExecWait(N(EVS_Attack_Bomb))
649 Return
650 End
651};
652
653EvtScript N(EVS_FirstStrike) = {
654 Call(GetMenuSelection, LVar0, LVar1, LVar2)
656 CaseEq(MOVE_BODY_SLAM1)
657 ExecWait(N(EVS_Attack_FirstStrike))
658 CaseEq(MOVE_BODY_SLAM2)
659 ExecWait(N(EVS_Attack_FirstStrike))
660 CaseEq(MOVE_BODY_SLAM3)
661 ExecWait(N(EVS_Attack_FirstStrike))
663 Return
664 End
665};
666
667EvtScript N(EVS_RunAway) = {
668 SetConst(LVar0, PRT_MAIN)
669 SetConst(LVar1, ANIM_BattleBombette_Run)
671 Return
672 End
673};
674
676 Call(UseIdleAnimation, ACTOR_PARTNER, false)
677 Call(SetGoalToHome, ACTOR_PARTNER)
678 Call(SetActorSpeed, ACTOR_PARTNER, Float(6.0))
679 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Run)
680 Call(SetActorYaw, ACTOR_PARTNER, 0)
681 Call(RunToGoal, ACTOR_PARTNER, 0)
682 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
683 Call(UseIdleAnimation, ACTOR_PARTNER, true)
684 Return
685 End
686};
687
688EvtScript N(EVS_HandlePhase) = {
689 Return
690 End
691};
692
693EvtScript N(EVS_ReturnHome_Success) = {
694 Call(PartnerYieldTurn)
695 Call(UseBattleCamPreset, BTL_CAM_RETURN_HOME)
696 Call(MoveBattleCamOver, 10)
697 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
698 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
699 Sub(LVar0, 60)
700 Set(LVar1, 0)
701 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(1.4))
702 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
703 Call(JumpToGoal, ACTOR_PARTNER, 25, false, true, false)
704 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire1)
705 Wait(1)
706 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
707 Sub(LVar0, 30)
708 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
709 Call(JumpToGoal, ACTOR_PARTNER, 8, false, true, false)
710 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire1)
711 Wait(1)
712 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
713 Sub(LVar0, 20)
714 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
715 Call(JumpToGoal, ACTOR_PARTNER, 6, false, true, false)
716 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire1)
717 Wait(1)
718 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
719 Sub(LVar0, 10)
720 Call(JumpToGoal, ACTOR_PARTNER, 4, false, true, false)
721 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire1)
722 Wait(1)
723 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
724 Wait(8)
725 Call(ResetActorSounds, ACTOR_PARTNER, ACTOR_SOUND_WALK)
726 Call(SetGoalToHome, ACTOR_PARTNER)
727 Call(SetActorSpeed, ACTOR_PARTNER, Float(5.0))
728 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Run)
729 Call(RunToGoal, ACTOR_PARTNER, 0)
730 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
731 Return
732 End
733};
734
735EvtScript N(EVS_ReturnHome_Miss) = {
736 Call(PartnerYieldTurn)
737 Call(UseBattleCamPreset, BTL_CAM_PARTNER_MISTAKE)
738 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
739 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
740 Sub(LVar0, 40)
741 Set(LVar1, 0)
742 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(1.4))
743 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
744 Call(JumpToGoal, ACTOR_PARTNER, 15, false, true, false)
745 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire1)
746 Wait(1)
747 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
748 Sub(LVar0, 30)
749 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
750 Call(JumpToGoal, ACTOR_PARTNER, 8, false, true, false)
751 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire1)
752 Wait(1)
753 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
754 Sub(LVar0, 20)
755 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
756 Call(JumpToGoal, ACTOR_PARTNER, 6, false, true, false)
757 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire1)
758 Wait(1)
759 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire2)
760 Sub(LVar0, 10)
761 Call(JumpToGoal, ACTOR_PARTNER, 4, false, true, false)
762 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Backfire1)
763 Wait(1)
764 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
765 Wait(8)
766 Call(ResetActorSounds, ACTOR_PARTNER, ACTOR_SOUND_WALK)
767 Call(SetGoalToHome, ACTOR_PARTNER)
768 Call(SetActorSpeed, ACTOR_PARTNER, Float(5.0))
769 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Run)
770 Call(RunToGoal, ACTOR_PARTNER, 0)
771 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
772 Return
773 End
774};
775
776EvtScript N(runToTarget) = {
777 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Run)
778 Call(RunToGoal, ACTOR_PARTNER, 35)
779 Return
780 End
781};
782
783EvtScript N(animBrace) = {
784 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Brace)
785 Loop(15)
786 Call(SetActorDispOffset, ACTOR_PARTNER, Float(0.5), 0, 0)
787 Wait(1)
788 Call(SetActorDispOffset, ACTOR_PARTNER, Float(-0.5), 0, 0)
789 Wait(1)
790 EndLoop
791 Return
792 End
793};
794
795EvtScript N(animHold) = {
796 Loop(15)
797 Call(SetActorDispOffset, ACTOR_PARTNER, Float(0.5), 0, 0)
798 Wait(1)
799 Call(SetActorDispOffset, ACTOR_PARTNER, Float(-0.5), 0, 0)
800 Wait(1)
801 EndLoop
802 Return
803 End
804};
805
806EvtScript N(EVS_Attack_BodySlam) = {
807 Call(LoadActionCommand, ACTION_COMMAND_BODY_SLAM)
808 Call(action_command_body_slam_init)
809 Call(SetupMashMeter, 1, 100, 0, 0, 0, 0)
810 Wait(10)
811 Call(UseBattleCamPreset, BTL_CAM_CLOSER_PARTNER_APPROACH)
812 Call(InitTargetIterator)
813 Call(SetGoalToTarget, ACTOR_PARTNER)
814 Call(AddGoalPos, ACTOR_PARTNER, -40, 0, 0)
816 Loop(60)
817 Call(CheckButtonDown, BUTTON_A, LVar0)
818 IfNe(LVar0, false)
821 EndIf
822 Wait(1)
823 EndLoop
824 Call(MoveBattleCamOver, 65)
826 Call(action_command_body_slam_start, 0, 92, AC_DIFFICULTY_3, ACV_SLAM_BOMBETTE)
827 Set(LF_MashEnded, 0)
828 ExecGetTID(N(runToTarget), LVarA)
829 Loop(35)
830 Call(CheckButtonDown, BUTTON_A, LVar0)
831 IfEq(LVar0, false)
832 Set(LF_MashEnded, 1)
834 EndIf
835 Wait(1)
836 EndLoop
839 Goto(10)
840 EndIf
841 Set(LF_MashEnded, 0)
842 ExecGetTID(N(animBrace), LVarA)
843 Loop(30)
844 Call(CheckButtonDown, BUTTON_A, LVar0)
845 IfEq(LVar0, false)
846 Set(LF_MashEnded, 1)
848 EndIf
849 Wait(1)
850 EndLoop
853 Goto(10)
854 EndIf
856 ExecGetTID(N(animHold), LVarA)
857 Loop(30)
858 Call(CheckButtonDown, BUTTON_A, LVar0)
859 IfEq(LVar0, false)
860 Set(LF_MashEnded, 1)
862 EndIf
863 Wait(1)
864 EndLoop
867 Goto(10)
868 EndIf
869 EndIf
870 Else
871 Set(LF_MashEnded, 0)
872 ExecGetTID(N(runToTarget), LVarA)
873 Loop(35)
874 Call(CheckButtonDown, BUTTON_A, LVar0)
875 IfNe(LVar0, false)
877 Call(action_command_body_slam_start, 0, 92, AC_DIFFICULTY_3, ACV_SLAM_BOMBETTE)
879 EndIf
880 EndIf
882 IfEq(LVar0, false)
883 Set(LF_MashEnded, 1)
885 EndIf
886 EndIf
887 Wait(1)
888 EndLoop
891 Goto(10)
892 EndIf
893 Set(LF_MashEnded, 0)
894 ExecGetTID(N(animBrace), LVarA)
895 Loop(30)
896 Call(CheckButtonDown, BUTTON_A, LVar0)
897 IfNe(LVar0, false)
899 Call(action_command_body_slam_start, 0, 92, AC_DIFFICULTY_3, ACV_SLAM_BOMBETTE)
901 EndIf
902 EndIf
904 IfEq(LVar0, false)
905 Set(LF_MashEnded, 1)
907 EndIf
908 EndIf
909 Wait(1)
910 EndLoop
913 Goto(10)
914 EndIf
916 ExecGetTID(N(animHold), LVarA)
917 Loop(30)
918 Call(CheckButtonDown, BUTTON_A, LVar0)
919 IfEq(LVar0, false)
920 Set(LF_MashEnded, 1)
922 EndIf
923 Wait(1)
924 EndLoop
927 Goto(10)
928 EndIf
929 EndIf
930 EndIf
931 Label(10)
932 Call(SetActorDispOffset, ACTOR_PARTNER, 0, 0, 0)
933 Wait(2)
934 Call(InterruptActionCommand)
938 Call(SetGoalToTarget, ACTOR_PARTNER)
939 Call(AddGoalPos, ACTOR_PARTNER, -10, 0, 0)
940 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_BodySlam)
941 Call(SetActorSpeed, ACTOR_PARTNER, Float(6.0))
943 Call(RunToGoal, ACTOR_PARTNER, 0)
944 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
945 Call(UseBattleCamPreset, BTL_CAM_PARTNER_MISTAKE)
946 Thread
947 Call(SetActorRotationOffset, ACTOR_PARTNER, 0, 15, 0)
948 Set(LVar0, 0)
949 Loop(10)
950 Add(LVar0, -72)
951 Call(SetActorRotation, ACTOR_PARTNER, 0, 0, LVar0)
952 Wait(1)
953 EndLoop
954 Call(SetActorRotationOffset, ACTOR_PARTNER, 0, 0, 0)
956 Call(AddGoalPos, ACTOR_PARTNER, 60, 0, 0)
957 Call(RunToGoal, ACTOR_PARTNER, 10)
958 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
959 Thread
960 Call(N(SlowDown))
962 Wait(20)
963 Call(SetGoalToHome, ACTOR_PARTNER)
964 Call(SetActorSpeed, ACTOR_PARTNER, Float(5.0))
965 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Run)
966 Call(ResetActorSounds, ACTOR_PARTNER, ACTOR_SOUND_WALK)
967 Call(RunToGoal, ACTOR_PARTNER, 0)
968 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
969 Return
970 EndIf
971 Call(GetMenuSelection, LVar0, LVar1, LVar2)
973 CaseEq(MOVE_BODY_SLAM1)
974 Set(LVarE, 1)
975 Set(LVarF, 2)
976 CaseEq(MOVE_BODY_SLAM2)
977 Set(LVarE, 2)
978 Set(LVarF, 3)
979 CaseEq(MOVE_BODY_SLAM3)
980 Set(LVarE, 3)
981 Set(LVarF, 5)
984 Call(GetPartnerActionQuality, LVar0)
985 IfGt(LVar0, 0)
986 Call(SetGoalToTarget, ACTOR_PARTNER)
987 Call(AddGoalPos, ACTOR_PARTNER, -10, 0, 0)
988 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_BodySlam)
989 Call(RunToGoal, ACTOR_PARTNER, 3)
990 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
991 Else
992 Call(SetGoalToTarget, ACTOR_PARTNER)
993 Call(AddGoalPos, ACTOR_PARTNER, -10, 0, 0)
994 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_BodySlam)
995 Call(SetActorSpeed, ACTOR_PARTNER, Float(6.0))
996 Call(RunToGoal, ACTOR_PARTNER, 0)
997 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
998 EndIf
1000 CaseGt(0)
1004 EndSwitch
1005 Switch(LVar0)
1008 ExecWait(N(EVS_ReturnHome_Miss))
1012 ExecWait(N(EVS_ReturnHome_Success))
1014 EndSwitch
1015 Return
1016 End
1017};
1018
1019EvtScript N(EVS_Attack_Bomb) = {
1020 Call(LoadActionCommand, ACTION_COMMAND_BOMB)
1021 Call(action_command_bomb_init)
1022 Call(GetMenuSelection, LVar0, LVar1, LVar2)
1023 Switch(LVar2)
1024 CaseEq(MOVE_BOMB)
1025 Call(GetActorLevel, ACTOR_PARTNER, LVar0)
1026 Switch(LVar0)
1028 Call(SetupMashMeter, 5, 35, 60, 80, 99, 100)
1030 Call(SetupMashMeter, 5, 35, 60, 80, 99, 100)
1032 Call(SetupMashMeter, 5, 35, 60, 80, 99, 100)
1033 EndSwitch
1034 CaseEq(MOVE_POWER_BOMB)
1035 Call(GetActorLevel, ACTOR_PARTNER, LVar0)
1036 Switch(LVar0)
1038 Call(SetupMashMeter, 5, 35, 60, 80, 99, 100)
1040 Call(SetupMashMeter, 5, 35, 60, 80, 99, 100)
1041 EndSwitch
1042 CaseEq(MOVE_MEGA_BOMB)
1043 Call(SetupMashMeter, 5, 35, 60, 80, 99, 100)
1044 EndSwitch
1045 Wait(10)
1046 Call(UseBattleCamPreset, BTL_CAM_CLOSER_PARTNER_APPROACH)
1047 Call(GetMenuSelection, LVar0, LVar1, LVar2)
1048 Switch(LVar2)
1049 CaseEq(MOVE_BOMB)
1050 Call(InitTargetIterator)
1051 Call(SetGoalToTarget, ACTOR_PARTNER)
1052 Call(AddGoalPos, ACTOR_PARTNER, -20, 0, 0)
1053 CaseEq(MOVE_POWER_BOMB)
1054 Call(InitTargetIterator)
1055 Call(SetGoalToTarget, ACTOR_PARTNER)
1056 Call(AddGoalPos, ACTOR_PARTNER, -40, 0, 0)
1057 CaseEq(MOVE_MEGA_BOMB)
1058 Call(InitTargetIterator)
1059 Call(SetGoalToTarget, ACTOR_PARTNER)
1060 Call(AddGoalPos, ACTOR_PARTNER, -40, 0, 0)
1061 EndSwitch
1062 Call(MoveBattleCamOver, 60 * DT)
1063 Call(GetMenuSelection, LVar0, LVar1, LVar2)
1064 Switch(LVar2)
1065 CaseEq(MOVE_BOMB)
1066 Call(action_command_bomb_start, 0, 57 * DT, AC_DIFFICULTY_3, ACV_BOMB_BASIC)
1067 CaseEq(MOVE_POWER_BOMB)
1068 Call(action_command_bomb_start, 0, 73 * DT - 1, AC_DIFFICULTY_3, ACV_BOMB_SUPER)
1069 CaseEq(MOVE_MEGA_BOMB)
1070 Call(action_command_bomb_start, 0, 87 * DT, AC_DIFFICULTY_3, ACV_BOMB_ULTRA)
1071 EndSwitch
1072 Call(PlaySoundAtActor, ACTOR_PARTNER, SOUND_LRAW_BOMBETTE_FUSE)
1074 Call(SetActorVar, ACTOR_SELF, AVAR_Unk_0, 1)
1075 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_RunLit)
1076 Call(GetMenuSelection, LVar0, LVar1, LVar2)
1077 Switch(LVar2)
1078 CaseEq(MOVE_BOMB)
1079 Set(LVar0, 45 * DT)
1080 CaseEq(MOVE_POWER_BOMB)
1081 Set(LVar0, 50 * DT)
1082 CaseEq(MOVE_MEGA_BOMB)
1083 Set(LVar0, 50 * DT)
1084 EndSwitch
1085 Call(RunToGoal, ACTOR_PARTNER, 45 * DT)
1086 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_AboutToExplode)
1087 Call(SetActorVar, ACTOR_SELF, AVAR_Unk_0, 0)
1089 Switch(LVar2)
1090 CaseEq(MOVE_BOMB)
1091 Set(LVar0, 45 * DT)
1092 CaseEq(MOVE_POWER_BOMB)
1093 Set(LVar0, 50 * DT)
1094 CaseEq(MOVE_MEGA_BOMB)
1095 Set(LVar0, 50 * DT)
1096 EndSwitch
1097 Wait(LVar0)
1098 Call(GetMenuSelection, LVar0, LVar1, LVar2)
1099 Switch(LVar2)
1100 CaseEq(MOVE_BOMB)
1102 EndSwitch
1104 Switch(LVar2)
1105 CaseEq(MOVE_BOMB)
1106 Set(LVar0, 6 * DT + 1)
1107 CaseEq(MOVE_POWER_BOMB)
1108 Set(LVar0, 12 * DT)
1109 CaseEq(MOVE_MEGA_BOMB)
1110 Set(LVar0, 20 * DT)
1111 EndSwitch
1112 Loop(LVar0)
1113 Call(SetActorDispOffset, ACTOR_PARTNER, Float(0.5), 0, 0)
1114 Wait(1)
1115 Call(SetActorDispOffset, ACTOR_PARTNER, Float(-0.5), 0, 0)
1116 Wait(1)
1117 EndLoop
1118 Call(SetActorDispOffset, ACTOR_PARTNER, 0, 0, 0)
1119 Call(UseBattleCamPreset, BTL_CAM_VIEW_ENEMIES)
1120 Call(MoveBattleCamOver, 8)
1121 Call(GetMashActionQuality, LVar0)
1122 Call(N(GetBombDamage), LVar0)
1123 Set(LVarA, LVar0)
1124 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1125 Call(N(PlayExplosionFX), LVar0, LVar1, LVar2)
1126 Thread
1127 Call(GetMenuSelection, LVar0, LVar1, LVar2)
1128 Switch(LVar2)
1129 CaseEq(MOVE_BOMB)
1130 IfGt(LVarA, 0)
1131 Call(StartRumble, BTL_RUMBLE_HIT_HEAVY)
1132 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.75))
1133 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1134 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(4.5))
1135 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1136 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(6.0))
1137 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1138 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(2.25))
1139 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(1.2))
1140 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.45))
1141 Call(ShakeCam, CAM_BATTLE, 0, 8, Float(0.15))
1142 Else
1143 Call(StartRumble, BTL_RUMBLE_HIT_HEAVY)
1144 Call(ShakeCam, CAM_BATTLE, 0, 1, Float(0.4))
1145 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(1.6))
1146 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(2.4))
1147 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(1.6))
1148 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.2))
1149 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(1.6))
1150 Call(ShakeCam, CAM_BATTLE, 0, 1, Float(1.2))
1151 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.64))
1152 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(0.24))
1153 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.08))
1154 EndIf
1155 CaseEq(MOVE_POWER_BOMB)
1156 IfGt(LVarA, 0)
1157 Call(StartRumble, BTL_RUMBLE_HIT_EXTREME)
1158 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.75))
1159 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1160 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(4.5))
1161 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1162 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(6.0))
1163 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1164 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(2.25))
1165 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(1.2))
1166 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.45))
1167 Call(ShakeCam, CAM_BATTLE, 0, 8, Float(0.15))
1168 Else
1169 Call(StartRumble, BTL_RUMBLE_HIT_EXTREME)
1170 Call(ShakeCam, CAM_BATTLE, 0, 1, Float(0.4))
1171 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(1.6))
1172 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(2.4))
1173 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(1.6))
1174 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.2))
1175 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(1.6))
1176 Call(ShakeCam, CAM_BATTLE, 0, 1, Float(1.2))
1177 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.64))
1178 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(0.24))
1179 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.08))
1180 EndIf
1181 CaseEq(MOVE_MEGA_BOMB)
1182 IfGt(LVarA, 0)
1183 Call(StartRumble, BTL_RUMBLE_HIT_MAX)
1184 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(1.0))
1185 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(4.0))
1186 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(6.0))
1187 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(4.0))
1188 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(8.0))
1189 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(4.0))
1190 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(3.0))
1191 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(1.6))
1192 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.6))
1193 Call(ShakeCam, CAM_BATTLE, 0, 8, Float(0.2))
1194 Else
1195 Call(StartRumble, BTL_RUMBLE_HIT_MAX)
1196 Call(ShakeCam, CAM_BATTLE, 0, 1, Float(0.5))
1197 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(2.0))
1198 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1199 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(2.0))
1200 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(4.0))
1201 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(2.0))
1202 Call(ShakeCam, CAM_BATTLE, 0, 1, Float(1.5))
1203 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.8))
1204 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(0.3))
1205 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.1))
1206 EndIf
1207 EndSwitch
1208 EndThread
1209 Thread
1210 Call(GetMenuSelection, LVar0, LVar1, LVar2)
1211 Switch(LVar2)
1212 CaseEq(MOVE_BOMB)
1213 CaseEq(MOVE_POWER_BOMB)
1214 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1215 Wait(8)
1216 IfGt(LVarA, 0)
1217 PlayEffect(EFFECT_RED_IMPACT, 0, LVar0, 0, LVar2, 1, 0, 0)
1218 Else
1219 PlayEffect(EFFECT_RED_IMPACT, 1, LVar0, 0, LVar2, 1, 0, 0)
1220 EndIf
1221 CaseEq(MOVE_MEGA_BOMB)
1222 Set(LVarA, 0)
1223 Wait(10)
1224 Call(N(PlayExplosionFX), 88, 33, 5)
1225 Wait(10)
1226 Call(N(PlayExplosionFX), 18, 73, 5)
1227 Wait(10)
1228 Call(N(PlayExplosionFX), 120, 19, 5)
1229 Wait(10)
1230 EndSwitch
1231 EndThread
1232 Set(LF_MashEnded, 0)
1233 Call(GetMenuSelection, LVar0, LVar1, LVar2)
1234 Switch(LVar2)
1235 CaseEq(MOVE_BOMB)
1236 Call(SetGoalToTarget, ACTOR_PARTNER)
1237 Call(PlaySoundAtActor, ACTOR_PARTNER, SOUND_BOMBETTE_BLAST_LV1)
1239 IfEq(LVar0, 6)
1241 EndIf
1242 Call(GetMashActionQuality, LVar0)
1243 Call(N(GetBombDamage), LVar0)
1244 Switch(LVar0)
1245 CaseGt(0)
1247 Set(LF_MashEnded, 1)
1250 EndSwitch
1251 CaseEq(MOVE_POWER_BOMB)
1252 Call(PlaySoundAtActor, ACTOR_PARTNER, SOUND_BOMBETTE_BLAST_LV1)
1253 Label(5)
1254 Call(SetGoalToTarget, ACTOR_PARTNER)
1256 IfEq(LVar0, 6)
1257 Goto(6)
1258 EndIf
1259 Call(GetMashActionQuality, LVar0)
1260 Call(N(GetPowerBombDamage), LVar0)
1261 Switch(LVar0)
1262 CaseGt(0)
1264 Set(LF_MashEnded, 1)
1267 EndSwitch
1268 Label(6)
1269 Call(ChooseNextTarget, ITER_NEXT, LVar0)
1271 Goto(5)
1272 EndIf
1273 CaseEq(MOVE_MEGA_BOMB)
1274 Call(PlaySoundAtActor, ACTOR_PARTNER, SOUND_BOMBETTE_BLAST_LV3)
1275 Label(10)
1276 Call(SetGoalToTarget, ACTOR_PARTNER)
1278 IfEq(LVar0, 6)
1279 Goto(11)
1280 EndIf
1281 Call(GetMashActionQuality, LVar0)
1282 Call(N(GetMegaBombDamage), LVar0)
1283 Switch(LVar0)
1284 CaseGt(0)
1286 Set(LF_MashEnded, 1)
1289 EndSwitch
1290 Label(11)
1291 Wait(5)
1292 Call(ChooseNextTarget, ITER_NEXT, LVar0)
1294 Goto(10)
1295 EndIf
1296 EndSwitch
1297 IfGt(LF_MashEnded, 0)
1298 Call(UseBattleCamPreset, BTL_CAM_RETURN_HOME)
1299 Call(MoveBattleCamOver, 10)
1300 Else
1301 Call(UseBattleCamPreset, BTL_CAM_PARTNER_MISTAKE)
1302 EndIf
1303 Set(LVar0, 0)
1304 Switch(LVar0)
1307 CaseOrEq(1)
1308 CaseOrEq(3)
1309 Thread
1310 Set(LVar0, 0)
1311 Loop(80)
1312 Wait(1)
1313 Call(SetActorRotation, ACTOR_SELF, 0, 0, LVar0)
1314 Add(LVar0, 33)
1315 EndLoop
1316 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
1317 EndThread
1318 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
1319 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1320 Sub(LVar0, 50)
1321 Add(LVar1, 200)
1322 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1323 Call(FlyToGoal, ACTOR_PARTNER, 10, 0, EASING_LINEAR)
1324 Wait(50)
1325 Call(PartnerYieldTurn)
1326 Call(SetGoalToHome, ACTOR_PARTNER)
1327 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1328 Add(LVar0, 25)
1329 Add(LVar1, 200)
1330 Call(SetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1331 Call(SetGoalToHome, ACTOR_PARTNER)
1332 Call(SetActorSpeed, ACTOR_PARTNER, Float(4.0))
1333 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(0.6))
1334 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
1335 Call(JumpToGoal, ACTOR_PARTNER, 20, false, true, false)
1336 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
1338 EndSwitch
1339 Return
1340 End
1341};
1342
1343EvtScript N(EVS_Attack_FirstStrike) = {
1344 Call(InitTargetIterator)
1345 Call(SetGoalToTarget, ACTOR_PARTNER)
1346 Call(AddGoalPos, ACTOR_PARTNER, -20, 0, 0)
1347 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1348 Set(LVar1, 0)
1349 Call(SetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1350 Call(PlaySoundAtActor, ACTOR_PARTNER, SOUND_LRAW_BOMBETTE_FUSE)
1351 Call(UseBattleCamPresetImmediately, BTL_CAM_MIDPOINT_NORMAL)
1352 Call(BattleCamTargetActor, ACTOR_SELF)
1353 Call(MoveBattleCamOver, 1)
1354 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_AboutToExplode)
1355 Wait(5)
1357 Wait(10)
1359 Loop(7)
1360 Call(SetActorDispOffset, ACTOR_PARTNER, Float(0.5), 0, 0)
1361 Wait(1)
1362 Call(SetActorDispOffset, ACTOR_PARTNER, Float(-0.5), 0, 0)
1363 Wait(1)
1364 EndLoop
1365 Call(SetActorDispOffset, ACTOR_PARTNER, 0, 0, 0)
1366 Set(LVarA, 0)
1367 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1368 Call(N(PlayExplosionFX), LVar0, LVar1, LVar2)
1369 Call(UseBattleCamPreset, BTL_CAM_VIEW_ENEMIES)
1370 Call(MoveBattleCamOver, 8)
1371 Thread
1372 Call(StartRumble, BTL_RUMBLE_HIT_HEAVY)
1373 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.75))
1374 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1375 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(4.5))
1376 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1377 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(6.0))
1378 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(3.0))
1379 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(2.25))
1380 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(1.2))
1381 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.45))
1382 Call(ShakeCam, CAM_BATTLE, 0, 8, Float(0.15))
1383 EndThread
1384 Call(PlaySoundAtActor, ACTOR_PARTNER, SOUND_BOMBETTE_BLAST_LV1)
1387 Goto(10)
1388 EndIf
1389 Set(LVarF, 1)
1390 Call(GetMenuSelection, LVar0, LVar1, LVar2)
1391 Switch(LVar2)
1392 CaseEq(MOVE_BODY_SLAM1)
1393 Set(LVarF, 5)
1394 CaseEq(MOVE_BODY_SLAM2)
1395 Set(LVarF, 6)
1396 CaseEq(MOVE_BODY_SLAM3)
1397 Set(LVarF, 7)
1398 EndSwitch
1400 Label(10)
1401 Set(LVar0, 0)
1402 Switch(LVar0)
1405 CaseOrEq(1)
1406 CaseOrEq(3)
1407 Thread
1408 Set(LVar0, 0)
1409 Loop(80)
1410 Wait(1)
1411 Call(SetActorRotation, ACTOR_SELF, 0, 0, LVar0)
1412 Add(LVar0, 33)
1413 EndLoop
1414 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
1415 EndThread
1416 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
1417 Call(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1418 Sub(LVar0, 50)
1419 Add(LVar1, 200)
1420 Call(SetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1421 Call(FlyToGoal, ACTOR_PARTNER, 10, 0, EASING_LINEAR)
1422 Wait(50)
1423 Call(SetGoalToHome, ACTOR_PARTNER)
1424 Call(GetGoalPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1425 Add(LVar0, 25)
1426 Add(LVar1, 200)
1427 Call(SetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2)
1428 Call(SetGoalToHome, ACTOR_PARTNER)
1429 Call(SetActorSpeed, ACTOR_PARTNER, Float(4.0))
1430 Call(SetActorJumpGravity, ACTOR_PARTNER, Float(0.6))
1431 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Aftermath)
1432 Call(JumpToGoal, ACTOR_PARTNER, 20, false, true, false)
1433 Call(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_Idle)
1435 EndSwitch
1436 Return
1437 End
1438};
@ AC_DIFFICULTY_3
Definition action_cmd.h:45
@ LF_MashEnded
Definition bombette.c:34
@ LF_MashStarted
Definition bombette.c:35
@ ACV_SLAM_BOMBETTE
Definition body_slam.h:21
@ ACV_BOMB_ULTRA
Definition bomb.h:20
@ ACV_BOMB_BASIC
Definition bomb.h:18
@ ACV_BOMB_SUPER
Definition bomb.h:19
struct ActorBlueprint * actorBlueprint
ActorState state
Vec3f curPos
Bytecode EvtScript[]
@ ACTION_COMMAND_BOMB
Definition enums.h:3517
@ ACTION_COMMAND_BODY_SLAM
Definition enums.h:3518
@ BUTTON_A
Definition enums.h:2776
@ ACTOR_SOUND_WALK
Definition enums.h:2067
@ BS_FLAGS1_NICE_HIT
Definition enums.h:3609
@ BS_FLAGS1_TRIGGER_EVENTS
Definition enums.h:3608
@ BS_FLAGS1_INCLUDE_POWER_UPS
Definition enums.h:3604
@ BS_FLAGS1_4000
Definition enums.h:3616
@ ELEMENT_END
Definition enums.h:2147
@ ELEMENT_NORMAL
Definition enums.h:2148
@ ITER_NO_MORE
Definition enums.h:2063
@ ITER_NEXT
Definition enums.h:2058
@ ACTOR_EVENT_FLAGS_NONE
Definition enums.h:3404
@ PHASE_RUN_AWAY_START
Definition enums.h:2093
@ PHASE_EXECUTE_ACTION
Definition enums.h:2091
@ PHASE_CELEBRATE
Definition enums.h:2095
@ PHASE_RUN_AWAY_FAIL
Definition enums.h:2097
@ PHASE_FIRST_STRIKE
Definition enums.h:2092
@ BTL_MENU_TYPE_STAR_POWERS
Definition enums.h:3834
@ STATUS_KEY_PARALYZE
Definition enums.h:2806
@ STATUS_TURN_MOD_DEFAULT
Definition enums.h:2832
@ STATUS_TURN_MOD_PARALYZE
Definition enums.h:2839
@ STATUS_KEY_FROZEN
Definition enums.h:2808
@ STATUS_TURN_MOD_SLEEP
Definition enums.h:2833
@ STATUS_TURN_MOD_DIZZY
Definition enums.h:2837
@ STATUS_TURN_MOD_UNUSED
Definition enums.h:2836
@ STATUS_KEY_STATIC
Definition enums.h:2812
@ STATUS_END
Definition enums.h:2801
@ STATUS_KEY_KO
Definition enums.h:2814
@ STATUS_TURN_MOD_POISON
Definition enums.h:2838
@ STATUS_TURN_MOD_STOP
Definition enums.h:2842
@ STATUS_KEY_SLEEP
Definition enums.h:2807
@ STATUS_KEY_UNUSED
Definition enums.h:2804
@ STATUS_KEY_STONE
Definition enums.h:2813
@ STATUS_KEY_STOP
Definition enums.h:2809
@ STATUS_KEY_INACTIVE
Definition enums.h:2819
@ STATUS_TURN_MOD_FROZEN
Definition enums.h:2835
@ STATUS_KEY_SHRINK
Definition enums.h:2811
@ STATUS_KEY_DIZZY
Definition enums.h:2805
@ STATUS_KEY_POISON
Definition enums.h:2810
@ STATUS_TURN_MOD_STATIC
Definition enums.h:2834
@ STATUS_KEY_NORMAL
Definition enums.h:2802
@ STATUS_TURN_MOD_SHRINK
Definition enums.h:2840
@ STATUS_KEY_DEFAULT
Definition enums.h:2803
@ HIT_RESULT_NO_DAMAGE
Definition enums.h:1978
@ HIT_RESULT_HIT
Definition enums.h:1976
@ HIT_RESULT_NICE_NO_DAMAGE
Definition enums.h:1979
@ HIT_RESULT_NICE
Definition enums.h:1977
@ HIT_RESULT_MISS
Definition enums.h:1982
@ BTL_CAM_MIDPOINT_NORMAL
Definition enums.h:4418
@ BTL_CAM_RETURN_HOME
Definition enums.h:4411
@ BTL_CAM_CLOSER_PARTNER_APPROACH
Definition enums.h:4455
@ BTL_CAM_DEFAULT
Definition enums.h:4409
@ BTL_CAM_VIEW_ENEMIES
Definition enums.h:4410
@ BTL_CAM_PARTNER_HIT_SPIKE
Definition enums.h:4468
@ BTL_CAM_PARTNER_HIT_HAZARD
Definition enums.h:4469
@ BTL_CAM_PARTNER_MISTAKE
Definition enums.h:4458
@ SUPPRESS_EVENT_SPIKY_TOP
Definition enums.h:2934
@ SUPPRESS_EVENT_ALT_SPIKY
Definition enums.h:2939
@ SUPPRESS_EVENT_SPIKY_FRONT
Definition enums.h:2936
@ SUPPRESS_EVENT_BURN_CONTACT
Definition enums.h:2938
@ EASING_LINEAR
Definition enums.h:510
@ PARTNER_RANK_NORMAL
Definition enums.h:2051
@ PARTNER_RANK_SUPER
Definition enums.h:2052
@ PARTNER_RANK_ULTRA
Definition enums.h:2053
@ SOUND_BOMBETTE_BLAST_LV2
Definition enums.h:1335
@ SOUND_BOMBETTE_BLAST_LV3
Definition enums.h:1336
@ SOUND_NO_DAMGE
Definition enums.h:1436
@ SOUND_LRAW_BOMBETTE_FUSE
Definition enums.h:1001
@ SOUND_NONE
Definition enums.h:550
@ SOUND_BOMBETTE_BLAST_LV1
Definition enums.h:1334
@ SOUND_BOMBETTE_BODY_SLAM
Definition enums.h:1344
@ BTL_RUMBLE_HIT_HEAVY
Definition enums.h:3855
@ BTL_RUMBLE_HIT_MAX
Definition enums.h:3857
@ BTL_RUMBLE_HIT_EXTREME
Definition enums.h:3856
@ ACTOR_PARTNER
Definition enums.h:2119
@ ACTOR_SELF
Definition enums.h:2117
@ EVENT_HIT
Definition enums.h:2165
@ EVENT_33
Definition enums.h:2202
@ EVENT_BURN_HIT
Definition enums.h:2169
@ EVENT_SPIKE_CONTACT
Definition enums.h:2196
@ EVENT_IMMUNE
Definition enums.h:2179
@ EVENT_ZERO_DAMAGE
Definition enums.h:2177
@ EVENT_BLOCK
Definition enums.h:2180
@ EVENT_18
Definition enums.h:2178
@ EVENT_HIT_COMBO
Definition enums.h:2164
@ EVENT_RECOVER_FROM_KO
Definition enums.h:2203
@ EVENT_SHOCK_HIT
Definition enums.h:2198
@ EVENT_BURN_CONTACT
Definition enums.h:2197
@ CAM_BATTLE
Definition enums.h:1827
@ DAMAGE_TYPE_BLAST
Definition enums.h:2894
@ DAMAGE_TYPE_NO_CONTACT
Definition enums.h:2912
@ DAMAGE_TYPE_MULTIPLE_POPUPS
Definition enums.h:2913
#define ApiStatus_DONE2
Definition evt.h:119
s32 Bytecode
Definition evt.h:7
#define ApiStatus_BLOCK
Definition evt.h:117
s32 evt_get_variable(Evt *script, Bytecode var)
Definition evt.c:1730
void add_xz_vec3f(Vec3f *vector, f32 speed, f32 angleDeg)
Definition 190B20.c:871
void play_movement_dust_effects(s32 var0, f32 xPos, f32 yPos, f32 zPos, f32 angleDeg)
Definition 190B20.c:898
EvtScript EVS_Partner_Hit
EvtScript EVS_Partner_Recover
EvtScript EVS_Partner_Drop
EvtScript EVS_Partner_NoDamageHit
EvtScript EVS_Partner_BurnHit
EvtScript EVS_Partner_BombetteSpikeContact
EvtScript EVS_Partner_Celebrate
EvtScript EVS_RunAwayFail
EvtScript EVS_Partner_RunAway
void sfx_play_sound(s32 soundID)
ApiStatus StopSound(Evt *script, b32 isInitialCall)
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:296
#define Switch(LVAR)
Marks the start of a switch statement.
Definition macros.h:312
#define Ref(sym)
Address/pointer constant.
Definition macros.h:61
#define Set(VAR, INT_VALUE)
Sets the given variable to a given value casted to an integer.
Definition macros.h:366
#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:320
#define EndChildThread
Marks the end of a child thread block.
Definition macros.h:564
#define Sub(VAR, INT_VALUE)
Definition macros.h:378
#define LVarF
Definition macros.h:164
#define IfNe(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR != RVAR.
Definition macros.h:273
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
Definition macros.h:214
#define Add(VAR, INT_VALUE)
Definition macros.h:377
#define EndLoop
Marks the end of a loop.
Definition macros.h:249
#define EndCaseGroup
Marks the end of a switch case group (CaseOrEq and/or CaseAndEq), stopping fallthrough.
Definition macros.h:353
#define Goto(LABEL_ID)
Moves execution to the given label.
Definition macros.h:233
#define LVarC
Definition macros.h:161
#define ARRAY_COUNT(arr)
Definition macros.h:39
#define IfGt(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR <= RVAR.
Definition macros.h:279
#define Float(DOUBLE)
Definition macros.h:52
#define Label(LABEL_ID)
Marks this point in the script as a Goto target.
Definition macros.h:228
#define CaseOrEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR.
Definition macros.h:342
#define EndIf
Marks the end of an if statement or an else block.
Definition macros.h:299
#define CaseDefault
Marks the start of a switch case that executes unconditionally. It also marks the end of any previous...
Definition macros.h:338
#define LVarB
Definition macros.h:160
#define ExecWait(EVT_SOURCE)
Launches a new child thread.
Definition macros.h:476
#define BreakLoop
Breaks out of the innermost loop.
Definition macros.h:252
#define Thread
Marks the start of a thread block.
Definition macros.h:545
#define EndThread
Marks the end of a thread block.
Definition macros.h:548
#define KillThread(TID)
Kills a thread by its thread ID.
Definition macros.h:511
#define LVar2
Definition macros.h:151
#define DT
Definition macros.h:534
#define BreakSwitch
Marks the end of a switch case.
Definition macros.h:360
#define LVar1
Definition macros.h:150
#define LFlag0
Definition macros.h:168
#define LVarA
Definition macros.h:159
#define ExecGetTID(EVT_SOURCE, OUTVAR)
Identical to Exec, but the newly-launched thread ID is stored in OUTVAR.
Definition macros.h:461
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
Definition macros.h:255
#define LFlag2
Definition macros.h:170
#define PlayEffect(args...)
Definition macros.h:811
#define EndSwitch
Marks the end of a switch statement and any case.
Definition macros.h:363
#define IfEq(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR == RVAR.
Definition macros.h:270
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
Definition macros.h:577
#define ChildThread
Marks the start of a child thread block.
Definition macros.h:561
#define CaseGt(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:329
#define Loop(TIMES)
Marks the beginning of a loop.
Definition macros.h:246
#define LVar3
Definition macros.h:152
#define LVarE
Definition macros.h:163
#define LVar0
Definition macros.h:149
#define SetConst(VAR, CONST)
Sets the given variable to a given value, skipping the evt_get_variable call.
Definition macros.h:371
#define Return
Kills the current EVT thread.
Definition macros.h:218
struct Actor * partnerActor
BattleStatus gBattleStatus
Definition battle.cpp:14