Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
dry_bones.inc.c
Go to the documentation of this file.
1#include "battle/battle.h"
2#include "script_api/battle.h"
3#include "sprite/npc/DryBones.h"
4
5#define NAMESPACE A(dry_bones)
6
7extern EvtScript N(EVS_Init);
8extern EvtScript N(EVS_Idle);
9extern EvtScript N(EVS_TakeTurn);
10extern EvtScript N(EVS_HandleEvent);
11extern EvtScript N(EVS_HandlePhase);
12
13enum N(ActorPartIDs) {
14 PRT_MAIN = 1,
15 PRT_BONE = 2,
16};
17
18enum N(ActorVars) {
19 AVAR_CollapseTurns = 0,
20 AVAR_Collapsed = 8,
21};
22
23enum N(ActorParams) {
24 DMG_UNK = 0,
25};
26
27#define BASE_COLLAPSE_DURATION 2
28
29s32 N(DefaultAnims)[] = {
30 STATUS_KEY_NORMAL, ANIM_DryBones_Anim02,
31 STATUS_KEY_STONE, ANIM_DryBones_Anim00,
32 STATUS_KEY_SLEEP, ANIM_DryBones_Anim0E,
33 STATUS_KEY_POISON, ANIM_DryBones_Anim02,
34 STATUS_KEY_STOP, ANIM_DryBones_Anim00,
35 STATUS_KEY_STATIC, ANIM_DryBones_Anim02,
36 STATUS_KEY_PARALYZE, ANIM_DryBones_Anim00,
37 STATUS_KEY_DIZZY, ANIM_DryBones_Anim0D,
38 STATUS_KEY_FEAR, ANIM_DryBones_Anim0D,
40};
41
42s32 N(CollapsedAnims)[] = {
43 STATUS_KEY_NORMAL, ANIM_DryBones_Anim01,
45};
46
47s32 N(BoneAnims)[] = {
48 STATUS_KEY_NORMAL, ANIM_DryBones_Anim0F,
50};
51
52s32 N(DefenseTable)[] = {
54 ELEMENT_FIRE, -10,
55 ELEMENT_BLAST, -10,
57};
58
59s32 N(CollapsedDefense)[] = {
61 ELEMENT_FIRE, -10,
62 ELEMENT_BLAST, -10,
64};
65
66s32 N(StatusTable)[] = {
89};
90
91s32 N(CollapsedStatusTable)[] = {
114};
115
116ActorPartBlueprint N(ActorParts)[] = {
117 {
119 .index = PRT_MAIN,
120 .posOffset = { 0, 0, 0 },
121 .targetOffset = { -8, 30 },
122 .opacity = 255,
123 .idleAnimations = N(DefaultAnims),
124 .defenseTable = N(DefenseTable),
125 .eventFlags = 0,
126 .elementImmunityFlags = 0,
127 .projectileTargetOffset = { -1, -10 },
128 },
129 {
131 .index = PRT_BONE,
132 .posOffset = { 0, 0, 0 },
133 .targetOffset = { 0, 0 },
134 .opacity = 255,
135 .idleAnimations = N(BoneAnims),
136 .defenseTable = N(DefenseTable),
137 .eventFlags = 0,
138 .elementImmunityFlags = 0,
139 .projectileTargetOffset = { 0, 0 },
140 },
141};
142
143ActorBlueprint NAMESPACE = {
144 .flags = 0,
145 .type = ACTOR_TYPE_DRY_BONES,
146 .level = ACTOR_LEVEL_DRY_BONES,
147 .maxHP = 8,
148 .partCount = ARRAY_COUNT(N(ActorParts)),
149 .partsData = N(ActorParts),
150 .initScript = &N(EVS_Init),
151 .statusTable = N(StatusTable),
152 .escapeChance = 50,
153 .airLiftChance = 75,
154 .hurricaneChance = 70,
155 .spookChance = 10,
156 .upAndAwayChance = 95,
157 .spinSmashReq = 0,
158 .powerBounceChance = 95,
159 .coinReward = 1,
160 .size = { 28, 32 },
161 .healthBarOffset = { 0, 0 },
162 .statusIconOffset = { -15, 15 },
163 .statusTextOffset = { 3, 27 },
164};
165
166EvtScript N(EVS_Init) = {
167 Call(BindTakeTurn, ACTOR_SELF, Ref(N(EVS_TakeTurn)))
168 Call(BindIdle, ACTOR_SELF, Ref(N(EVS_Idle)))
169 Call(BindHandleEvent, ACTOR_SELF, Ref(N(EVS_HandleEvent)))
170 Call(BindHandlePhase, ACTOR_SELF, Ref(N(EVS_HandlePhase)))
171 Call(SetActorVar, ACTOR_SELF, AVAR_Collapsed, FALSE)
172 Return
173 End
174};
175
176EvtScript N(EVS_HandlePhase) = {
177 Call(GetOriginalActorType, ACTOR_SELF, LVarA)
178 Call(CreateHomeTargetList, TARGET_FLAG_2 | TARGET_FLAG_PRIMARY_ONLY)
179 Call(InitTargetIterator)
180 Label(0)
181 Call(GetOwnerTarget, LVar0, LVar1)
182 Call(GetOriginalActorType, LVar0, LVar2)
184 Call(GetActorHP, LVar0, LVar3)
185 IfNe(LVar3, 0)
186 Return
187 EndIf
188 EndIf
189 Call(ChooseNextTarget, ITER_NEXT, LVar0)
191 Goto(0)
192 EndIf
193 Call(CreateHomeTargetList, TARGET_FLAG_2 | TARGET_FLAG_PRIMARY_ONLY)
194 Call(InitTargetIterator)
195 Label(1)
196 Call(GetOwnerTarget, LVar0, LVar1)
197 Call(GetActorVar, LVar0, AVAR_Collapsed, LVar3)
198 IfNe(LVar3, TRUE)
199 Return
200 EndIf
201 Call(ChooseNextTarget, ITER_NEXT, LVar0)
203 Goto(1)
204 EndIf
205 Call(CreateHomeTargetList, TARGET_FLAG_2 | TARGET_FLAG_PRIMARY_ONLY)
206 Call(InitTargetIterator)
207 Label(2)
208 Call(GetOwnerTarget, LVar0, LVar1)
209 Call(SetActorFlagBits, LVar0, ACTOR_FLAG_NO_ATTACK | ACTOR_FLAG_NO_DMG_APPLY, TRUE)
210 Call(ChooseNextTarget, ITER_NEXT, LVar0)
212 Goto(2)
213 EndIf
214 Return
215 End
216};
217
218EvtScript N(EVS_Idle) = {
219 Label(0)
220 Call(GetActorVar, ACTOR_SELF, AVAR_Collapsed, LVar0)
221 Call(GetStatusFlags, ACTOR_SELF, LVar1)
223 CaseEq(0)
226 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -6, 24)
227 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 1, -5)
229 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -8, 30)
230 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -10)
232 CaseEq(1)
235 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -1, 10)
236 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
238 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -1, 10)
239 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
242 Wait(1)
243 Goto(0)
244 Return
245 End
246};
247
248EvtScript N(EVS_Collapse) = {
249 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_DRY_BONES_COLLAPSE)
250 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_DryBones_Anim08)
251 Wait(20)
252 Call(SetActorVar, ACTOR_SELF, AVAR_Collapsed, TRUE)
253 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(CollapsedAnims)))
254 Call(SetDefenseTable, ACTOR_SELF, PRT_MAIN, Ref(N(CollapsedDefense)))
255 Call(SetStatusTable, ACTOR_SELF, Ref(N(CollapsedStatusTable)))
256 Call(ClearStatusEffects, ACTOR_SELF)
257 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -1, 10)
258 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
259 Call(RandInt, 0, LVar0)
261 Call(SetActorVar, ACTOR_SELF, AVAR_CollapseTurns, LVar0)
262 Call(GetOriginalActorType, ACTOR_SELF, LVarA)
263 Call(CreateHomeTargetList, TARGET_FLAG_2 | TARGET_FLAG_PRIMARY_ONLY)
264 Call(InitTargetIterator)
265 Label(0)
266 Call(GetOwnerTarget, LVar0, LVar1)
267 Call(GetOriginalActorType, LVar0, LVar2)
269 Return
270 EndIf
271 Call(ChooseNextTarget, ITER_NEXT, LVar0)
273 Goto(0)
274 EndIf
275 Call(CreateHomeTargetList, TARGET_FLAG_2 | TARGET_FLAG_PRIMARY_ONLY)
276 Call(InitTargetIterator)
277 Label(1)
278 Call(GetOwnerTarget, LVar0, LVar1)
279 Call(GetActorVar, LVar0, AVAR_Collapsed, LVar3)
280 IfNe(LVar3, TRUE)
281 Return
282 EndIf
283 Call(ChooseNextTarget, ITER_NEXT, LVar0)
285 Goto(1)
286 EndIf
287 Call(CreateHomeTargetList, TARGET_FLAG_2 | TARGET_FLAG_PRIMARY_ONLY)
288 Call(InitTargetIterator)
289 Label(2)
290 Call(GetOwnerTarget, LVar0, LVar1)
291 Call(SetActorFlagBits, LVar0, ACTOR_FLAG_NO_ATTACK | ACTOR_FLAG_NO_DMG_APPLY, TRUE)
292 Call(ChooseNextTarget, ITER_NEXT, LVar0)
294 Goto(2)
295 EndIf
296 Return
297 End
298};
299
300EvtScript N(EVS_HandleEvent) = {
301 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
302 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
303 Call(GetLastEvent, ACTOR_SELF, LVar0)
306 SetConst(LVar0, PRT_MAIN)
307 SetConst(LVar1, ANIM_DryBones_Anim07)
310 SetConst(LVar0, PRT_MAIN)
311 SetConst(LVar1, ANIM_DryBones_Anim07)
314 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION, TRUE)
315 SetConst(LVar0, PRT_MAIN)
316 SetConst(LVar1, ANIM_DryBones_Anim0B)
317 SetConst(LVar2, ANIM_DryBones_Anim0C)
319 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION, FALSE)
321 SetConst(LVar0, PRT_MAIN)
322 SetConst(LVar1, ANIM_DryBones_Anim0B)
323 SetConst(LVar2, ANIM_DryBones_Anim0C)
325 SetConst(LVar0, PRT_MAIN)
326 SetConst(LVar1, ANIM_DryBones_Anim0C)
328 Return
330 SetConst(LVar0, PRT_MAIN)
331 SetConst(LVar1, ANIM_DryBones_Anim07)
334 SetConst(LVar0, PRT_MAIN)
335 SetConst(LVar1, ANIM_DryBones_Anim07)
337 ExecWait(N(EVS_Collapse))
340 Call(GetActorVar, ACTOR_SELF, AVAR_Collapsed, LVar0)
341 IfEq(LVar0, 0)
342 SetConst(LVar0, PRT_MAIN)
343 SetConst(LVar1, ANIM_DryBones_Anim02)
345 Else
346 SetConst(LVar0, PRT_MAIN)
347 SetConst(LVar1, ANIM_DryBones_Anim01)
349 EndIf
352 SetConst(LVar0, PRT_MAIN)
353 SetConst(LVar1, ANIM_DryBones_Anim07)
355 Call(GetActorVar, ACTOR_SELF, AVAR_Collapsed, LVar0)
356 IfEq(LVar0, 0)
357 Wait(10)
358 ExecWait(N(EVS_Collapse))
359 EndIf
361 Call(GetActorVar, ACTOR_SELF, AVAR_Collapsed, LVar0)
362 IfEq(LVar0, 0)
363 SetConst(LVar0, PRT_MAIN)
364 SetConst(LVar1, ANIM_DryBones_Anim02)
366 EndIf
368 SetConst(LVar0, PRT_MAIN)
369 SetConst(LVar1, ANIM_DryBones_Anim04)
370 SetConst(LVar2, ANIM_DryBones_Anim07)
372 Return
374 Call(GetActorVar, ACTOR_SELF, AVAR_Collapsed, LVar0)
375 IfEq(LVar0, 0)
376 SetConst(LVar0, PRT_MAIN)
377 SetConst(LVar1, ANIM_DryBones_Anim04)
379 Else
380 SetConst(LVar0, PRT_MAIN)
381 SetConst(LVar1, ANIM_DryBones_Anim09)
383 EndIf
385 Call(GetActorVar, ACTOR_SELF, AVAR_Collapsed, LVar0)
386 IfEq(LVar0, 0)
387 Call(GetStatusFlags, ACTOR_SELF, LVar0)
390 Call(SetActorDispOffset, ACTOR_SELF, -1, -2, 0)
391 Else
392 Call(SetActorDispOffset, ACTOR_SELF, -3, -5, 0)
393 EndIf
394 EndIf
395 SetConst(LVar0, PRT_MAIN)
396 SetConst(LVar1, ANIM_DryBones_Anim07)
398 Else
399 SetConst(LVar0, PRT_MAIN)
400 SetConst(LVar1, ANIM_DryBones_Anim09)
402 EndIf
403 Return
405 Call(GetActorVar, ACTOR_SELF, AVAR_Collapsed, LVar0)
406 IfEq(LVar0, 0)
407 SetConst(LVar0, PRT_MAIN)
408 SetConst(LVar1, ANIM_DryBones_Anim02)
410 Else
411 SetConst(LVar0, PRT_MAIN)
412 SetConst(LVar1, ANIM_DryBones_Anim01)
414 EndIf
417 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
418 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
419 Return
420 End
421};
422
423EvtScript N(EVS_SpinBone) = {
424 Set(LVar0, 0)
425 Label(0)
426 Call(SetPartRotation, ACTOR_SELF, PRT_BONE, 0, 0, LVar0)
427 Add(LVar0, 60)
428 Mod(LVar0, 360)
429 Wait(1)
430 Goto(0)
431 Return
432 End
433};
434
435EvtScript N(EVS_TakeTurn) = {
436 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
437 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
438 Call(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
439 Call(GetBattlePhase, LVar0)
441 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
442 Call(MoveBattleCamOver, 1)
443 EndIf
444 Call(GetBattlePhase, LVar0)
446 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_DryBones_Anim06)
447 Goto(100)
448 EndIf
449 Call(GetActorVar, ACTOR_SELF, AVAR_Collapsed, LVar0)
450 IfEq(LVar0, TRUE)
451 Call(GetActorVar, ACTOR_SELF, AVAR_CollapseTurns, LVar0)
452 Sub(LVar0, 1)
453 IfEq(LVar0, 0)
454 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_DRY_BONES_RATTLE)
455 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_DryBones_Anim09)
456 Wait(10)
457 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_DRY_BONES_ARISE)
458 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_DryBones_Anim0A)
459 Wait(20)
460 Call(SetActorVar, ACTOR_SELF, AVAR_Collapsed, FALSE)
461 Call(SetActorVar, ACTOR_SELF, AVAR_CollapseTurns, 0)
462 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(DefaultAnims)))
463 Call(SetDefenseTable, ACTOR_SELF, PRT_MAIN, Ref(N(DefenseTable)))
464 Call(SetStatusTable, ACTOR_SELF, Ref(N(StatusTable)))
465 Call(SetPartFlagBits, ACTOR_SELF, PRT_MAIN, ACTOR_PART_FLAG_DAMAGE_IMMUNE, FALSE)
466 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -8, 30)
467 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -10)
468 Call(GetEnemyMaxHP, ACTOR_SELF, LVar0)
469 Call(SetEnemyHP, ACTOR_SELF, LVar0)
470 Else
471 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_DRY_BONES_RATTLE)
472 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_DryBones_Anim09)
473 Wait(10)
474 Call(SetActorVar, ACTOR_SELF, AVAR_CollapseTurns, LVar0)
475 EndIf
476 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
477 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
478 Return
479 EndIf
480 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_DryBones_Anim05)
481 Wait(15)
482 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_DryBones_Anim06)
483 Thread
484 Wait(8)
485 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_DryBones_Anim02)
487 Label(100)
488 Call(GetStatusFlags, ACTOR_SELF, LVar0)
490 Call(SetPartScale, ACTOR_SELF, PRT_BONE, Float(0.4), Float(0.4), Float(0.4))
491 Else
492 Call(SetPartScale, ACTOR_SELF, PRT_BONE, Float(1.0), Float(1.0), Float(1.0))
493 EndIf
494 Call(EnemyTestTarget, ACTOR_SELF, LVar0, 0, 0, 1, BS_FLAGS1_INCLUDE_POWER_UPS)
498 Set(LVarF, LVar0)
499 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
500 Add(LVar1, 20)
501 Call(SetPartPos, ACTOR_SELF, PRT_BONE, LVar0, LVar1, LVar2)
502 Wait(1)
503 Call(SetPartFlagBits, ACTOR_SELF, PRT_BONE, ACTOR_PART_FLAG_INVISIBLE, FALSE)
504 Call(PlaySoundAtPart, ACTOR_SELF, PRT_BONE, SOUND_DRY_BONES_THROW)
505 Call(SetPartSounds, ACTOR_SELF, PRT_BONE, ACTOR_SOUND_WALK, SOUND_NONE, SOUND_NONE)
506 Call(SetPartSounds, ACTOR_SELF, PRT_BONE, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE)
507 ExecGetTID(N(EVS_SpinBone), LVarA)
508 Call(SetGoalToTarget, ACTOR_SELF)
509 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
510 Sub(LVar0, 100)
511 Call(SetPartMoveSpeed, ACTOR_SELF, PRT_BONE, Float(12.0))
512 Call(RunPartTo, ACTOR_SELF, PRT_BONE, LVar0, LVar1, LVar2, FALSE)
513 Call(SetPartFlagBits, ACTOR_SELF, PRT_BONE, ACTOR_PART_FLAG_INVISIBLE, TRUE)
516 Call(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
517 EndIf
518 Wait(15)
519 Call(YieldTurn)
520 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT)
521 Wait(20)
522 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0)
523 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
524 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
525 Return
528 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
529 Add(LVar1, 20)
530 Call(SetPartPos, ACTOR_SELF, PRT_BONE, LVar0, LVar1, LVar2)
531 Wait(1)
532 Call(SetPartFlagBits, ACTOR_SELF, PRT_BONE, ACTOR_PART_FLAG_INVISIBLE, FALSE)
533 Call(PlaySoundAtPart, ACTOR_SELF, PRT_BONE, SOUND_DRY_BONES_THROW)
534 Call(SetPartSounds, ACTOR_SELF, PRT_BONE, ACTOR_SOUND_WALK, SOUND_NONE, SOUND_NONE)
535 Call(SetPartSounds, ACTOR_SELF, PRT_BONE, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE)
536 ExecGetTID(N(EVS_SpinBone), LVarA)
537 Call(SetGoalToTarget, ACTOR_SELF)
538 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
539 Call(SetPartMoveSpeed, ACTOR_SELF, PRT_BONE, Float(12.0))
540 Call(RunPartTo, ACTOR_SELF, PRT_BONE, LVar0, LVar1, LVar2, FALSE)
541 Wait(2)
546 Call(GetPartOffset, ACTOR_SELF, PRT_BONE, LVar0, LVar1, LVar2)
547 Sub(LVar0, 100)
548 Call(SetPartJumpGravity, ACTOR_SELF, PRT_BONE, Float(0.7))
549 Call(JumpPartTo, ACTOR_SELF, PRT_BONE, LVar0, 0, LVar2, 30, TRUE)
550 Call(SetPartFlagBits, ACTOR_SELF, PRT_BONE, ACTOR_PART_FLAG_INVISIBLE, TRUE)
552 Call(YieldTurn)
555 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
556 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
557 Return
558 End
559};
Bytecode EvtScript[]
#define BASE_COLLAPSE_DURATION
#define STATUS_FLAGS_IMMOBILIZED
Definition enums.h:2834
@ ACTOR_SOUND_WALK
Definition enums.h:2034
@ ACTOR_SOUND_JUMP
Definition enums.h:2036
@ BS_FLAGS1_TRIGGER_EVENTS
Definition enums.h:3575
@ BS_FLAGS1_INCLUDE_POWER_UPS
Definition enums.h:3571
@ ELEMENT_FIRE
Definition enums.h:2116
@ ELEMENT_END
Definition enums.h:2114
@ ELEMENT_BLAST
Definition enums.h:2124
@ ELEMENT_NORMAL
Definition enums.h:2115
@ ITER_NO_MORE
Definition enums.h:2030
@ ITER_NEXT
Definition enums.h:2025
@ ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION
Blast and fire attacks trigger an explosion.
Definition enums.h:3377
@ 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
@ TARGET_FLAG_PRIMARY_ONLY
Definition enums.h:1863
@ TARGET_FLAG_2
Definition enums.h:1850
@ IDLE_SCRIPT_ENABLE
Definition enums.h:6408
@ IDLE_SCRIPT_DISABLE
Definition enums.h:6407
@ STATUS_FLAG_SHRINK
Definition enums.h:2819
@ STATUS_FLAG_SLEEP
Definition enums.h:2812
@ SOUND_DRY_BONES_RATTLE
Definition enums.h:1046
@ SOUND_NONE
Definition enums.h:547
@ SOUND_DRY_BONES_ARISE
Definition enums.h:1045
@ SOUND_DRY_BONES_THROW
Definition enums.h:1043
@ SOUND_DRY_BONES_COLLAPSE
Definition enums.h:1044
@ ACTOR_PLAYER
Definition enums.h:2085
@ ACTOR_SELF
Definition enums.h:2084
@ ACTOR_FLAG_NO_DMG_APPLY
Damage is not applied to actor HP.
Definition enums.h:3340
@ ACTOR_FLAG_NO_ATTACK
Skip attack turn.
Definition enums.h:3339
@ EVENT_HIT
Definition enums.h:2132
@ EVENT_SCARE_AWAY
Definition enums.h:2174
@ EVENT_BURN_HIT
Definition enums.h:2136
@ EVENT_IMMUNE
Definition enums.h:2146
@ EVENT_BURN_DEATH
Definition enums.h:2157
@ EVENT_ZERO_DAMAGE
Definition enums.h:2144
@ EVENT_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_RECOVER_STATUS
Definition enums.h:2167
@ EVENT_BLOW_AWAY
Definition enums.h:2143
@ ACTOR_PART_FLAG_PRIMARY_TARGET
Definition enums.h:3362
@ ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION
Definition enums.h:3361
@ ACTOR_PART_FLAG_NO_TARGET
Cannot be targeted.
Definition enums.h:3360
@ ACTOR_PART_FLAG_DAMAGE_IMMUNE
electrified Plays extra hurt SFX?
Definition enums.h:3358
@ ACTOR_PART_FLAG_INVISIBLE
Definition enums.h:3350
@ DAMAGE_TYPE_TRIGGER_LUCKY
Definition enums.h:2881
@ DAMAGE_TYPE_NO_CONTACT
Definition enums.h:2878
EvtScript EVS_Enemy_ScareAway
EvtScript EVS_Enemy_Hit
EvtScript EVS_Enemy_Death
EvtScript EVS_Enemy_SpinSmashHit
EvtScript EVS_Enemy_AirLift
EvtScript EVS_Enemy_BlowAway
EvtScript EVS_Enemy_Recover
EvtScript EVS_Enemy_BurnHit
EvtScript EVS_Enemy_NoDamageHit
ApiStatus RandInt(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 LVarF
Definition macros.h:163
#define IfNe(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR != RVAR.
Definition macros.h:272
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
Definition macros.h:213
#define Mod(VAR, INT_VALUE)
Definition macros.h:380
#define Add(VAR, INT_VALUE)
Definition macros.h:376
#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 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 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 KillThread(TID)
Kills a thread by its thread ID.
Definition macros.h:510
#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 ExecGetTID(EVT_SOURCE, OUTVAR)
Identical to Exec, but the newly-launched thread ID is stored in OUTVAR.
Definition macros.h:460
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
Definition macros.h:254
#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 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