4#include "sprite/player.h"
6#define BASIC_HAMMER_DMG_BAD 1
7#define BASIC_HAMMER_DMG_GOOD 2
8#define SUPER_HAMMER_DMG_BAD 2
9#define SUPER_HAMMER_DMG_GOOD 4
10#define ULTRA_HAMMER_DMG_BAD 3
11#define ULTRA_HAMMER_DMG_GOOD 6
13API_CALLABLE(N(IsBerserkerEquipped)) {
15 script->varTable[1] = 15;
19 script->varTable[1] = 40;
28EvtScript N(EVS_HammerSupport_SmashApproach) = {
29 Call(InitTargetIterator)
38 Call(PlayerRunToGoal, 0)
44EvtScript N(EVS_HammerSupport_QuakeApproach) = {
49 Call(PlayerRunToGoal, 0)
56EvtScript N(EVS_HammerSupport_BasicRaiseDelay) = {
89EvtScript N(EVS_HammerSupport_SuperRaiseDelay) = {
122EvtScript N(EVS_HammerSupport_UltraRaiseDelay) = {
155 Call(SetBattleCamOffsetY, 8)
156 Call(InitTargetIterator)
161 Call(SetActionProgress, 0)
192EvtScript N(EVS_HammerSupport_ReturnHome_SmashSuccess) = {
193 Call(PlayerYieldTurn)
195 Call(MoveBattleCamOver, 5)
204 Call(PlayerRunToGoal, 0)
210EvtScript N(EVS_HammerSupport_ReturnHome_Quake) = {
211 Call(PlayerYieldTurn)
220 Call(PlayerRunToGoal, 0)
226EvtScript N(EVS_HammerSupport_ReturnHome_SmashMiss) = {
227 Call(PlayerYieldTurn)
237 Call(PlayerRunToGoal, 0)
245 Call(action_command_hammer_init)
246 ExecWait(N(EVS_HammerSupport_SmashApproach))
249 ExecWait(N(EVS_HammerSupport_BasicRaiseDelay))
252 Call(SetBattleCamOffsetY, 8)
253 Call(InitTargetIterator)
257 Call(N(IsBerserkerEquipped))
262 Call(N(ShouldMovesAutoSucceed))
275 Call(SetActionProgress, 0)
302 Call(SetActionProgress, 0)
331 Call(action_command_hammer_init)
332 ExecWait(N(EVS_HammerSupport_SmashApproach))
335 ExecWait(N(EVS_HammerSupport_SuperRaiseDelay))
338 Call(SetBattleCamOffsetY, 8)
339 Call(InitTargetIterator)
343 Call(N(IsBerserkerEquipped))
346 Call(N(ShouldMovesAutoSucceed))
358 Call(SetActionProgress, 0)
382 Call(SetActionProgress, 0)
400 Call(action_command_hammer_init)
401 ExecWait(N(EVS_HammerSupport_SmashApproach))
404 ExecWait(N(EVS_HammerSupport_UltraRaiseDelay))
407 Call(SetBattleCamOffsetY, 8)
408 Call(InitTargetIterator)
412 Call(N(IsBerserkerEquipped))
415 Call(N(ShouldMovesAutoSucceed))
427 Call(SetActionProgress, 0)
451 Call(SetActionProgress, 0)
470 Call(action_command_hammer_init)
471 ExecWait(N(EVS_HammerSupport_QuakeApproach))
474 ExecWait(N(EVS_HammerSupport_BasicRaiseDelay))
476 Call(AddBattleCamDist, 80)
477 Call(InitTargetIterator)
482 Call(N(ShouldMovesAutoSucceed))
494 Call(SetActionProgress, 0)
528 Call(action_command_hammer_init)
529 ExecWait(N(EVS_HammerSupport_QuakeApproach))
532 ExecWait(N(EVS_HammerSupport_SuperRaiseDelay))
534 Call(AddBattleCamDist, 80)
535 Call(InitTargetIterator)
540 Call(N(ShouldMovesAutoSucceed))
577 Call(action_command_hammer_init)
578 ExecWait(N(EVS_HammerSupport_QuakeApproach))
581 ExecWait(N(EVS_HammerSupport_UltraRaiseDelay))
583 Call(AddBattleCamDist, 80)
584 Call(InitTargetIterator)
589 Call(N(ShouldMovesAutoSucceed))
@ AC_MODE_TUTORIAL_WAIT_INPUT
@ BS_FLAGS1_INCLUDE_POWER_UPS
@ BTL_CAM_PLAYER_AIM_HAMMER
@ BTL_CAM_PLAYER_HAMMER_STRIKE
@ BTL_CAM_PLAYER_ATTACK_APPROACH
s32 is_ability_active(s32 arg0)
#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 Set(VAR, INT_VALUE)
Sets the given variable to a given value casted to an integer.
#define Sub(VAR, INT_VALUE)
#define IfNe(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR != RVAR.
#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 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 EndIf
Marks the end of an if statement or an else block.
#define ExecWait(EVT_SOURCE)
Launches a new child thread.
#define BreakLoop
Breaks out of the innermost loop.
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
#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 Return
Kills the current EVT thread.
BattleStatus gBattleStatus