Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
medi_guy.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/MediGuy.h"
6
7#define NAMESPACE A(medi_guy)
8
9extern EvtScript N(EVS_Init);
10extern EvtScript N(EVS_Idle);
11extern EvtScript N(EVS_TakeTurn);
12extern EvtScript N(EVS_HandleEvent);
13
14enum N(ActorPartIDs) {
15 PRT_MAIN = 1,
16};
17
18enum N(ActorParams) {
19 DMG_SWOOP = 1,
20};
21
24
25s32 N(DefaultAnims)[] = {
26 STATUS_KEY_NORMAL, ANIM_MediGuy_Anim01,
27 STATUS_KEY_STONE, ANIM_MediGuy_Anim00,
28 STATUS_KEY_SLEEP, ANIM_MediGuy_Anim04,
29 STATUS_KEY_POISON, ANIM_MediGuy_Anim01,
30 STATUS_KEY_STOP, ANIM_MediGuy_Anim00,
31 STATUS_KEY_STATIC, ANIM_MediGuy_Anim01,
32 STATUS_KEY_PARALYZE, ANIM_MediGuy_Anim00,
33 STATUS_KEY_DIZZY, ANIM_MediGuy_Anim0A,
34 STATUS_KEY_FEAR, ANIM_MediGuy_Anim0A,
36};
37
38s32 N(DefenseTable)[] = {
42};
43
44s32 N(StatusTable)[] = {
51 STATUS_KEY_FEAR, 100,
67};
68
69ActorPartBlueprint N(ActorParts)[] = {
70 {
72 .index = PRT_MAIN,
73 .posOffset = { 0, 0, 0 },
74 .targetOffset = { -2, 38 },
75 .opacity = 255,
76 .idleAnimations = N(DefaultAnims),
77 .defenseTable = N(DefenseTable),
78 .eventFlags = ACTOR_EVENT_FLAGS_NONE,
79 .elementImmunityFlags = 0,
80 .projectileTargetOffset = { -1, -5 },
81 },
82};
83
84ActorBlueprint NAMESPACE = {
85 .flags = ACTOR_FLAG_FLYING,
86 .type = ACTOR_TYPE_MEDI_GUY,
87 .level = ACTOR_LEVEL_MEDI_GUY,
88 .maxHP = 7,
89 .partCount = ARRAY_COUNT(N(ActorParts)),
90 .partsData = N(ActorParts),
91 .initScript = &N(EVS_Init),
92 .statusTable = N(StatusTable),
93 .escapeChance = 60,
94 .airLiftChance = 90,
95 .hurricaneChance = 95,
96 .spookChance = 70,
97 .upAndAwayChance = 95,
98 .spinSmashReq = 0,
99 .powerBounceChance = 90,
100 .coinReward = 2,
101 .size = { 24, 40 },
102 .healthBarOffset = { 0, 0 },
103 .statusIconOffset = { -10, 20 },
104 .statusTextOffset = { 12, 31 },
105};
106
107EvtScript N(EVS_Init) = {
108 Call(BindTakeTurn, ACTOR_SELF, Ref(N(EVS_TakeTurn)))
109 Call(BindIdle, ACTOR_SELF, Ref(N(EVS_Idle)))
110 Call(BindHandleEvent, ACTOR_SELF, Ref(N(EVS_HandleEvent)))
111 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
112 Sub(LVar1, 5)
113 Call(ForceHomePos, ACTOR_SELF, LVar0, LVar1, LVar2)
114 Call(HPBarToHome, ACTOR_SELF)
115 Return
116 End
117};
118
119EvtScript N(EVS_Idle) = {
120 Label(0)
121 Call(GetStatusFlags, ACTOR_SELF, LVar0)
123 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -2, 24)
124 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -5)
125 Call(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20)
126 Else
127 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -2, 38)
128 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -5)
129 Call(N(SetAbsoluteStatusOffsets), -10, 20, 12, 31)
130 EndIf
131 Wait(1)
132 Goto(0)
133 Return
134 End
135};
136
137EvtScript N(EVS_ReturnHome) = {
138 Call(ResetAllActorSounds, ACTOR_SELF)
139 Call(SetPartRotation, ACTOR_SELF, PRT_MAIN, 0, 0, 0)
140 Call(SetActorYaw, ACTOR_SELF, 180)
141 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_MediGuy_Anim03)
142 Call(SetGoalToHome, ACTOR_SELF)
143 Call(FlyToGoal, ACTOR_SELF, 0, 1, EASING_LINEAR)
144 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_MediGuy_Anim01)
145 Call(SetActorYaw, ACTOR_SELF, 0)
146 Return
147 End
148};
149
150EvtScript N(EVS_HandleEvent) = {
151 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
152 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
153 Call(GetLastEvent, ACTOR_SELF, LVar0)
157 SetConst(LVar0, PRT_MAIN)
158 SetConst(LVar1, ANIM_MediGuy_Anim06)
162 SetConst(LVar0, PRT_MAIN)
163 SetConst(LVar1, ANIM_MediGuy_Anim08)
164 SetConst(LVar2, ANIM_MediGuy_Anim09)
167 SetConst(LVar0, PRT_MAIN)
168 SetConst(LVar1, ANIM_MediGuy_Anim08)
169 SetConst(LVar2, ANIM_MediGuy_Anim09)
171 SetConst(LVar0, PRT_MAIN)
172 SetConst(LVar1, ANIM_MediGuy_Anim09)
174 Return
176 SetConst(LVar0, PRT_MAIN)
177 SetConst(LVar1, ANIM_MediGuy_Anim06)
180 SetConst(LVar0, PRT_MAIN)
181 SetConst(LVar1, ANIM_MediGuy_Anim06)
183 SetConst(LVar0, PRT_MAIN)
184 SetConst(LVar1, ANIM_MediGuy_Anim07)
186 Return
188 SetConst(LVar0, PRT_MAIN)
189 SetConst(LVar1, ANIM_MediGuy_Anim06)
191 SetConst(LVar0, PRT_MAIN)
192 SetConst(LVar1, ANIM_MediGuy_Anim06)
194 Call(SetActorSpeed, ACTOR_SELF, Float(4.0))
195 ExecWait(N(EVS_ReturnHome))
197 SetConst(LVar0, PRT_MAIN)
198 SetConst(LVar1, ANIM_MediGuy_Anim06)
200 Call(SetPartRotation, ACTOR_SELF, PRT_MAIN, 0, 0, 0)
201 SetConst(LVar0, PRT_MAIN)
202 SetConst(LVar1, ANIM_MediGuy_Anim07)
204 Return
208 SetConst(LVar0, PRT_MAIN)
209 SetConst(LVar1, ANIM_MediGuy_Anim01)
213 SetConst(LVar0, PRT_MAIN)
214 SetConst(LVar1, ANIM_MediGuy_Anim06)
216 Wait(10)
217 SetConst(LVar0, PRT_MAIN)
218 SetConst(LVar1, ANIM_MediGuy_Anim07)
220 Return
222 Call(SetActorPos, ACTOR_SELF, 20, 0, 0)
223 Call(HPBarToCurrent, ACTOR_SELF)
225 Call(SetActorSpeed, ACTOR_SELF, Float(6.0))
226 ExecWait(N(EVS_ReturnHome))
227 Call(HPBarToHome, ACTOR_SELF)
229 SetConst(LVar0, PRT_MAIN)
230 SetConst(LVar1, ANIM_MediGuy_Anim01)
233 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLYING, FALSE)
234 SetConst(LVar0, PRT_MAIN)
235 SetConst(LVar1, ANIM_MediGuy_Anim03)
236 SetConst(LVar2, ANIM_MediGuy_Anim0B)
238 Return
240 SetConst(LVar0, PRT_MAIN)
241 SetConst(LVar1, ANIM_MediGuy_Anim06)
244 SetConst(LVar0, PRT_MAIN)
245 SetConst(LVar1, ANIM_MediGuy_Anim06)
247 Return
250 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
251 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
252 Return
253 End
254};
255
256EvtScript N(EVS_Attack_Swoop) = {
257 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
258 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
259 Call(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
260 Call(UseBattleCamPreset, BTL_CAM_ENEMY_APPROACH)
261 Call(BattleCamTargetActor, ACTOR_SELF)
262 Call(SetBattleCamTargetingModes, BTL_CAM_YADJ_TARGET, BTL_CAM_XADJ_AVG, FALSE)
263 Thread
264 SetF(LVar0, Float(0.0))
265 Loop(15)
266 AddF(LVar0, Float(2.0))
267 Call(SetPartRotation, ACTOR_SELF, PRT_MAIN, 0, 0, LVar0)
268 Wait(1)
269 EndLoop
271 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_MediGuy_Anim03)
272 Call(SetGoalToTarget, ACTOR_SELF)
273 Call(AddGoalPos, ACTOR_SELF, 50, 0, 0)
274 Call(SetActorSpeed, ACTOR_SELF, Float(5.0))
275 Call(FlyToGoal, ACTOR_SELF, 0, -4, EASING_COS_IN)
276 Call(EnemyTestTarget, ACTOR_SELF, LVarA, 0, 0, 1, BS_FLAGS1_INCLUDE_POWER_UPS)
280 Wait(10)
281 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_GATHER_SMALL)
282 Call(SetActorSpeed, ACTOR_SELF, Float(5.0))
283 Call(SetActorJumpGravity, ACTOR_SELF, Float(1.8))
284 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_MediGuy_Anim05)
285 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
286 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
287 Call(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
289 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_TOSS)
290 Thread
291 Wait(5)
292 Set(LVar0, 0)
293 Loop(60)
294 Call(N(MediGuySpriteRotationFunc), LVar0, LVar1, 15, 60, Float(30.0))
295 Call(SetPartRotation, ACTOR_SELF, PRT_MAIN, 0, 0, LVar1)
296 Add(LVar0, 1)
297 Wait(1)
298 EndLoop
300 Call(SetGoalToTarget, ACTOR_SELF)
301 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
302 Sub(LVar0, 50)
303 Add(LVar2, 1)
304 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
305 Call(SetActorSpeed, ACTOR_SELF, Float(8.0))
306 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_MediGuy_Anim05)
307 Call(FlyToGoal, ACTOR_SELF, 0, -10, EASING_QUADRATIC_OUT)
309 Call(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
310 EndIf
311 Wait(30)
312 Call(ResetAllActorSounds, ACTOR_SELF)
313 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
314 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT)
315 Call(SetActorSpeed, ACTOR_SELF, Float(10.0))
316 ExecWait(N(EVS_ReturnHome))
317 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0)
318 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
319 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
320 Return
323 Wait(10)
324 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_GATHER_SMALL)
325 Call(SetActorSpeed, ACTOR_SELF, Float(5.0))
326 Call(SetActorJumpGravity, ACTOR_SELF, Float(1.8))
327 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_MediGuy_Anim05)
328 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
329 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
330 Call(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
331 Set(LVarA, LVar0)
332 Set(LVarB, LVar1)
333 Set(LVarC, LVar2)
335 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_TOSS)
336 Call(SetGoalToTarget, ACTOR_SELF)
337 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
338 Add(LVar2, 1)
339 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
340 Call(SetActorSpeed, ACTOR_SELF, Float(8.0))
341 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_MediGuy_Anim05)
342 Call(FlyToGoal, ACTOR_SELF, 0, -10, EASING_QUADRATIC_OUT)
343 Wait(2)
344 Call(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 0, 0, DMG_SWOOP, BS_FLAGS1_TRIGGER_EVENTS)
348 Call(ResetAllActorSounds, ACTOR_SELF)
349 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
350 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
351 Add(LVar0, 30)
352 Call(SetActorJumpGravity, ACTOR_SELF, Float(1.0))
353 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
354 Call(JumpWithBounce, ACTOR_SELF, 10, Float(2.0))
355 Wait(20)
356 Call(SetActorSpeed, ACTOR_SELF, Float(6.0))
357 ExecWait(N(EVS_ReturnHome))
360 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
361 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
362 Return
363 End
364};
365
366EvtScript N(EVS_Move_HealOne) = {
367 Set(LVarA, LVar0)
368 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
369 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
370 Call(UseBattleCamPreset, BTL_CAM_ENEMY_APPROACH)
371 Call(BattleCamTargetActor, ACTOR_SELF)
372 Call(GetOwnerID, LVar0)
373 Call(GetActorPos, LVar0, LVar1, LVar2, LVar3)
374 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_GATHER_SMALL)
375 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_HEART_BOUNCE)
376 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_NONE)
377 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_MediGuy_Anim05)
378 Add(LVar2, 50)
379 PlayEffect(EFFECT_SPARKLES, 1, LVar1, LVar2, LVar3, 10, 0)
380 PlayEffect(EFFECT_RECOVER, 2, LVar1, LVar2, LVar3, 0, 0)
381 Wait(30)
382 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_MediGuy_Anim01)
383 Wait(10)
384 Call(UseBattleCamPreset, BTL_CAM_ENEMY_APPROACH)
385 Call(BattleCamTargetActor, LVarA)
386 Call(GetEnemyMaxHP, LVarA, LVar4)
387 Mul(LVar4, 60)
388 Div(LVar4, 100)
389 Thread
390 Wait(5)
391 Call(PlaySoundAtActor, LVarA, SOUND_RECOVER_HEART)
392 Call(PlaySoundAtActor, LVarA, SOUND_HEART_BOUNCE)
393 Wait(30)
394 Call(PlaySoundAtActor, LVarA, SOUND_STAR_BOUNCE_A)
396 Thread
397 Call(FreezeBattleState, TRUE)
398 Call(HealActor, LVarA, LVar4, FALSE)
399 Call(FreezeBattleState, FALSE)
401 Call(WaitForBuffDone)
402 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
403 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
404 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
405 Return
406 End
407};
408
409EvtScript N(EVS_FindInjuredActor) = {
410 Call(CreateHomeTargetList, TARGET_FLAG_2)
411 Call(InitTargetIterator)
412 Label(0)
413 Call(GetOwnerTarget, LVar0, LVar1)
414 Call(GetActorHP, LVar0, LVar2)
415 Call(GetEnemyMaxHP, LVar0, LVar3)
417 Call(GetOwnerTarget, LVar0, LVar1)
418 Return
419 EndIf
420 Call(ChooseNextTarget, ITER_NEXT, LVar0)
422 Goto(0)
423 EndIf
424 Return
425 End
426};
427
428EvtScript N(EVS_TakeTurn) = {
429 ExecWait(N(EVS_FindInjuredActor))
430 IfEq(LVar0, -1)
431 ExecWait(N(EVS_Attack_Swoop))
432 Else
433 Call(RandInt, 1000, LVarA)
434 IfLt(LVarA, 600)
435 ExecWait(N(EVS_Move_HealOne))
436 Else
437 ExecWait(N(EVS_Attack_Swoop))
438 EndIf
439 EndIf
440 Return
441 End
442};
Bytecode EvtScript[]
@ BTL_CAM_XADJ_AVG
Definition enums.h:4900
@ ACTOR_SOUND_FLY
Definition enums.h:2035
@ BS_FLAGS1_TRIGGER_EVENTS
Definition enums.h:3575
@ BS_FLAGS1_INCLUDE_POWER_UPS
Definition enums.h:3571
@ ELEMENT_END
Definition enums.h:2114
@ ELEMENT_SHOCK
Definition enums.h:2125
@ ELEMENT_NORMAL
Definition enums.h:2115
@ ITER_NO_MORE
Definition enums.h:2030
@ ITER_NEXT
Definition enums.h:2025
@ ACTOR_EVENT_FLAGS_NONE
Definition enums.h:3370
@ 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
@ TARGET_FLAG_2
Definition enums.h:1850
@ EASING_COS_IN
Definition enums.h:522
@ EASING_QUADRATIC_OUT
Definition enums.h:514
@ EASING_LINEAR
Definition enums.h:510
@ IDLE_SCRIPT_ENABLE
Definition enums.h:6408
@ IDLE_SCRIPT_DISABLE
Definition enums.h:6407
@ STATUS_FLAG_SLEEP
Definition enums.h:2812
@ SOUND_GATHER_SMALL
Definition enums.h:1082
@ SOUND_STAR_BOUNCE_A
Definition enums.h:975
@ SOUND_NONE
Definition enums.h:547
@ SOUND_RECOVER_HEART
Definition enums.h:1406
@ SOUND_HEART_BOUNCE
Definition enums.h:925
@ SOUND_TOSS
Definition enums.h:1083
@ ACTOR_PLAYER
Definition enums.h:2085
@ ACTOR_SELF
Definition enums.h:2084
@ ACTOR_FLAG_FLYING
Quake Hammer can't hit.
Definition enums.h:3329
@ 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_BEGIN_FIRST_STRIKE
Definition enums.h:2173
@ EVENT_END_FIRST_STRIKE
Definition enums.h:2171
@ EVENT_IMMUNE
Definition enums.h:2146
@ EVENT_BURN_DEATH
Definition enums.h:2157
@ EVENT_ZERO_DAMAGE
Definition enums.h:2144
@ EVENT_SHOCK_DEATH
Definition enums.h:2159
@ EVENT_SPIN_SMASH_HIT
Definition enums.h:2133
@ EVENT_SPIN_SMASH_DEATH
Definition enums.h:2154
@ EVENT_HIT_COMBO
Definition enums.h:2131
@ EVENT_AIR_LIFT_FAILED
Definition enums.h:2152
@ EVENT_BEGIN_AIR_LIFT
Definition enums.h:2175
@ EVENT_DEATH
Definition enums.h:2153
@ EVENT_SHOCK_HIT
Definition enums.h:2165
@ EVENT_RECOVER_STATUS
Definition enums.h:2167
@ EVENT_BLOW_AWAY
Definition enums.h:2143
@ ACTOR_PART_FLAG_PRIMARY_TARGET
Definition enums.h:3362
@ DAMAGE_TYPE_TRIGGER_LUCKY
Definition enums.h:2881
EvtScript EVS_Enemy_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 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 Mul(VAR, INT_VALUE)
Definition macros.h:378
#define Set(VAR, INT_VALUE)
Sets the given variable to a given value casted to an integer.
Definition macros.h:365
#define AddF(VAR, FLOAT_VALUE)
Definition macros.h:383
#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 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 Add(VAR, INT_VALUE)
Definition macros.h:376
#define EndLoop
Marks the end of a loop.
Definition macros.h:248
#define EndCaseGroup
Marks the end of a switch case group (CaseOrEq and/or CaseAndEq), stopping fallthrough.
Definition macros.h:352
#define Goto(LABEL_ID)
Moves execution to the given label.
Definition macros.h:232
#define LVarC
Definition macros.h:160
#define ARRAY_COUNT(arr)
Definition macros.h:40
#define IfLt(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR < RVAR.
Definition macros.h:275
#define Float(DOUBLE)
Definition macros.h:51
#define Label(LABEL_ID)
Marks this point in the script as a Goto target.
Definition macros.h:227
#define CaseOrEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR.
Definition macros.h:341
#define EndIf
Marks the end of an if statement or an else block.
Definition macros.h:298
#define CaseDefault
Marks the start of a switch case that executes unconditionally. It also marks the end of any previous...
Definition macros.h:337
#define LVarB
Definition macros.h:159
#define ExecWait(EVT_SOURCE)
Launches a new child thread.
Definition macros.h:475
#define 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 SetF(VAR, FLOAT_VALUE)
Sets the given variable to a given value, but supports Floats.
Definition macros.h:373
#define Div(VAR, INT_VALUE)
Definition macros.h:379
#define IfFlag(LVAR, RVAR)
Marks the beginning of an if statement that only executes if the RVAR flag is set on LVAR,...
Definition macros.h:288
#define LVar2
Definition macros.h:150
#define LVar1
Definition macros.h:149
#define LVarA
Definition macros.h:158
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
Definition macros.h:254
#define PlayEffect(args...)
Definition macros.h:807
#define EndSwitch
Marks the end of a switch statement and any case.
Definition macros.h:362
#define IfEq(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR == RVAR.
Definition macros.h:269
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
Definition macros.h:576
#define Loop(TIMES)
Marks the beginning of a loop.
Definition macros.h:245
#define LVar4
Definition macros.h:152
#define LVar3
Definition macros.h:151
#define 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