5#include "sprite/npc/Bandit.h"
7#define NAMESPACE A(bandit)
15BSS s32 N(DropCoinScript)[1];
25 AVAR_Coin_NumCoins = 1,
32s32 N(DefaultAnims)[] = {
45s32 N(HoldingAnims)[] = {
63s32 N(DefenseTable)[] = {
68s32 N(StatusTable)[] = {
97 .posOffset = { 0, 0, 0 },
98 .targetOffset = { -2, 28 },
100 .idleAnimations = N(DefaultAnims),
101 .defenseTable = N(DefenseTable),
103 .elementImmunityFlags = 0,
104 .projectileTargetOffset = { 0, -12 },
109 .posOffset = { 0, 30, 0 },
110 .targetOffset = { 0, 0 },
112 .idleAnimations = N(CoinAnims),
113 .defenseTable = N(DefenseTable),
115 .elementImmunityFlags = 0,
116 .projectileTargetOffset = { 0, 0 },
124 .posOffset = { 0, 0, 0 },
125 .targetOffset = { 0, 0 },
127 .idleAnimations = N(CoinAnims),
128 .defenseTable = N(DefenseTable),
130 .elementImmunityFlags = 0,
131 .projectileTargetOffset = { 0, 0 },
137 .type = ACTOR_TYPE_BANDIT,
138 .level = ACTOR_LEVEL_BANDIT,
141 .partsData = N(ActorParts),
142 .initScript = &N(EVS_Init),
143 .statusTable = N(StatusTable),
146 .hurricaneChance = 90,
148 .upAndAwayChance = 95,
150 .powerBounceChance = 80,
153 .healthBarOffset = { 0, 0 },
154 .statusIconOffset = { -10, 25 },
155 .statusTextOffset = { 10, 25 },
160 .type = ACTOR_TYPE_BANDIT,
161 .level = ACTOR_LEVEL_BANDIT,
164 .partsData = N(CoinParts),
165 .initScript = &N(EVS_Init_Coin),
166 .statusTable = N(StatusTable),
169 .hurricaneChance = 90,
171 .upAndAwayChance = 95,
173 .powerBounceChance = 80,
176 .healthBarOffset = { 0, 0 },
177 .statusIconOffset = { -10, 25 },
178 .statusTextOffset = { 10, 25 },
223 Call(SummonEnemy,
Ref(N(CoinFormation)), FALSE)
238 Call(JumpToGoal,
LVarA, 20, FALSE, TRUE, FALSE)
242 Call(JumpToGoal,
LVarA, 10, FALSE, TRUE, FALSE)
246 Call(JumpToGoal,
LVarA, 5, FALSE, TRUE, FALSE)
274 Call(JumpToGoal,
LVarA, 5, FALSE, TRUE, FALSE)
280 Call(JumpToGoal,
LVarA, 0, FALSE, TRUE, FALSE)
288 Call(JumpToGoal,
LVarA, 5, FALSE, TRUE, FALSE)
293 Call(JumpToGoal,
LVarA, 0, FALSE, TRUE, FALSE)
302 Call(JumpToGoal,
LVarA, 15, FALSE, FALSE, FALSE)
@ BS_FLAGS1_PARTNER_ACTING
@ BS_FLAGS1_TRIGGER_EVENTS
@ BS_FLAGS1_INCLUDE_POWER_UPS
@ BS_FLAGS1_EXECUTING_MOVE
@ STATUS_TURN_MOD_DEFAULT
@ STATUS_TURN_MOD_PARALYZE
@ ACTOR_FLAG_NO_DMG_APPLY
Damage is not applied to actor HP.
@ ACTOR_FLAG_NO_ATTACK
Skip attack turn.
@ EVENT_SPIN_SMASH_LAUNCH_HIT
@ EVENT_SPIN_SMASH_LAUNCH_DEATH
@ ACTOR_PART_FLAG_PRIMARY_TARGET
@ ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION
@ ACTOR_PART_FLAG_NO_TARGET
Cannot be targeted.
@ ACTOR_PART_FLAG_INVISIBLE
@ DAMAGE_TYPE_TRIGGER_LUCKY
EvtScript EVS_Enemy_ReturnHome
EvtScript EVS_Enemy_Knockback
EvtScript EVS_Enemy_ScareAway
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 AddVectorPolar(Evt *script, b32 isInitialCall)
ApiStatus RandInt(Evt *script, b32 isInitialCall)
ApiStatus AddCoin(Evt *script, b32 isInitialCall)
#define ArrayVar(INDEX)
User Word.
#define Else
Marks the end of an if statement and the start of the else block.
#define Switch(LVAR)
Marks the start of a switch statement.
#define Ref(sym)
Address/pointer constant.
#define Mul(VAR, INT_VALUE)
#define Set(VAR, INT_VALUE)
Sets the given variable to a given value casted to an integer.
#define CaseEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR. It also marks the end of any pre...
#define Sub(VAR, INT_VALUE)
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
#define Add(VAR, INT_VALUE)
#define EndLoop
Marks the end of a loop.
#define EndCaseGroup
Marks the end of a switch case group (CaseOrEq and/or CaseAndEq), stopping fallthrough.
#define CaseGe(RVAR)
Marks the start of a switch case that executes only if LVAR >= RVAR. It also marks the end of any pre...
#define Goto(LABEL_ID)
Moves execution to the given label.
#define IfLt(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR < RVAR.
#define Label(LABEL_ID)
Marks this point in the script as a Goto target.
#define CaseOrEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR.
#define IsThreadRunning(TID, OUTVAR)
Sets OUTVAR to TRUE/FALSE depending on whether a thread with the given ID exists (i....
#define EndIf
Marks the end of an if statement or an else block.
#define CaseDefault
Marks the start of a switch case that executes unconditionally. It also marks the end of any previous...
#define ExecWait(EVT_SOURCE)
Launches a new child thread.
#define IfLe(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR > RVAR.
#define BreakLoop
Breaks out of the innermost loop.
#define Thread
Marks the start of a thread block.
#define EndThread
Marks the end of a thread block.
#define UseArray(INT_PTR)
Loads an s32 array pointer into the current thread for use with ArrayVar(INDEX).
#define IfFlag(LVAR, RVAR)
Marks the beginning of an if statement that only executes if the RVAR flag is set on LVAR,...
#define IfNotFlag(LVAR, RVAR)
Marks the beginning of an if statement that only executes if the RVAR flag is unset on LVAR,...
#define ExecGetTID(EVT_SOURCE, OUTVAR)
Identical to Exec, but the newly-launched thread ID is stored in OUTVAR.
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
#define NPC_DISPOSE_LOCATION
#define PlayEffect(args...)
#define EndSwitch
Marks the end of a switch statement and any case.
#define IfEq(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR == RVAR.
#define CaseLt(RVAR)
Marks the start of a switch case that executes only if LVAR < RVAR. It also marks the end of any prev...
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
#define Loop(TIMES)
Marks the beginning of a loop.
#define SetConst(VAR, CONST)
Sets the given variable to a given value, skipping the evt_get_variable call.
#define Return
Kills the current EVT thread.
#define ACTOR_BY_POS(_name, _pos, _priority, args...)