4#define NAMESPACE action_command_break_free
17#define METER_FILL_RATE 100
19API_CALLABLE(N(
init)) {
39 acs->meterFillLevel = 0;
40 acs->escapeThreshold = 0;
41 acs->meterFillWidth = 0;
73API_CALLABLE(N(start)) {
92 acs->meterFillLevel = 0;
93 acs->escapeThreshold = 0;
94 acs->meterFillWidth = 0;
98 battleStatus->maxActionQuality =
acs->mashMeterCutoffs[
acs->mashMeterNumIntervals - 1];
101 acs->breakFree.dir = 0;
113 switch (
acs->state) {
146 if (
acs->hudPosX > 50) {
156 if (
acs->prepareTime != 0) {
162 acs->stateTimer =
acs->duration;
169 if (
acs->breakFree.dir == 0) {
170 acs->escapeThreshold++;
171 if (
acs->escapeThreshold >=
acs->escapeChance) {
172 acs->escapeThreshold =
acs->escapeChance;
173 acs->breakFree.dir = 1;
176 acs->escapeThreshold--;
177 if (
acs->escapeThreshold <= 0) {
178 acs->escapeThreshold = 0;
179 acs->breakFree.dir = 0;
185 if (!
acs->berserkerEnabled) {
190 acs->meterFillLevel = 0;
193 if (inputBufPos < 0) {
197 for (i = 0; i <
windowLen; i++, inputBufPos++) {
211 if (
acs->stateTimer != 0) {
216 if (
battleStatus->actionQuality >=
acs->mashMeterCutoffs[
acs->mashMeterNumIntervals] -
acs->escapeThreshold) {
225 acs->stateTimer = 20;
229 if (
acs->stateTimer != 0) {
252 if (!
acs->berserkerEnabled) {
BSS s32 PopupMenu_SelectedIndex
BSS ActionCommandStatus gActionCommandStatus
void draw_mash_meter_multicolor(s32 posX, s32 posY, s32 fillValue)
void action_command_free(void)
s32 adjust_action_command_difficulty(s32 difficultyLevel)
void action_command_init_status(void)
#define AC_QUALITY_FAILED
#define SCALE_BY_PCT(x, pct)
HudScript HES_MashAButton
HudScript HES_RunningAway
s32 actionCmdTableBreakFree[]
@ ACTION_COMMAND_BREAK_FREE
@ ACTION_RESULT_METER_NOT_ENOUGH
void btl_set_popup_duration(s32 duration)
s32 evt_get_variable(Evt *script, Bytecode var)
void hud_element_get_render_pos(s32 id, s32 *x, s32 *y)
void hud_element_set_alpha(s32 id, s32 opacity)
void hud_element_set_script(s32 id, HudScript *anim)
void hud_element_set_render_depth(s32 id, s32 z)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
s32 hud_element_create(HudScript *anim)
Creates a new HUD element and returns its ID.
void hud_element_set_flags(s32 id, s32 flags)
Turns on the given flags.
void hud_element_clear_flags(s32 id, s32 flags)
Turns off the given flags.
void hud_element_draw_clipped(s32 id)
void hud_element_free(s32 id)
@ HUD_ELEMENT_FLAG_DISABLED
BattleStatus gBattleStatus
void N init(Npc *bombette)