mirror of
https://github.com/pmret/papermario.git
synced 2025-05-23 21:46:32 +02:00
Add new EVT macros (#482)
* add tools and new macros * change EVT_OP enum names * first file * convert some files * stuff * EVT_PTR * src/battle/item * src/battle * tool changes * clouds.inc.c * src/evt * foliage.inc.c * bitwise ops * staticentitydata vars * add diff_evt.py * use evt macros in dro_01 * evt macro docs * whoops * fix some warnings
This commit is contained in:
parent
9631996e76
commit
ae00fea170
166
diff_evt.py
Executable file
166
diff_evt.py
Executable file
@ -0,0 +1,166 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import queue
|
||||
import time
|
||||
import subprocess
|
||||
|
||||
from diff import Display, debounced_fs_watch
|
||||
from colorama import Fore, Back, Style
|
||||
|
||||
from tools.update_evts import parse_symbol_addrs
|
||||
from tools.disasm_script import ScriptDisassembler, get_constants
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Diff EVT macros."
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"start",
|
||||
help="Symbol name or ROM address to start diffing from.",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-w",
|
||||
"--watch",
|
||||
action="store_true",
|
||||
help="Watch for file changes and update the diff automatically."
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-m",
|
||||
"--make",
|
||||
action="store_true",
|
||||
help="Run ninja automatically."
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-o",
|
||||
action="store_true",
|
||||
help="Ignored for compatibility with diff.py."
|
||||
)
|
||||
|
||||
class EvtDisplay(Display):
|
||||
def __init__(self, start):
|
||||
self.config = None
|
||||
self.base_lines = None
|
||||
self.mydump = None
|
||||
self.emsg = None
|
||||
self.last_refresh_key = None
|
||||
self.last_diff_output = None
|
||||
|
||||
self.start = start
|
||||
|
||||
def run_diff(self):
|
||||
if self.emsg is not None:
|
||||
return (self.emsg, self.emsg)
|
||||
|
||||
symbols = parse_symbol_addrs()
|
||||
|
||||
if self.start in symbols:
|
||||
start = symbols[self.start].rom_addr
|
||||
else:
|
||||
try:
|
||||
start = int(self.start, base=0)
|
||||
except ValueError:
|
||||
print("Start symbol name is not known or is an invalid address.")
|
||||
exit(2)
|
||||
|
||||
with open("ver/current/build/papermario.z64", "rb") as f:
|
||||
f.seek(start)
|
||||
current = ScriptDisassembler(f, romstart=start, prelude=False).disassemble()
|
||||
|
||||
with open("ver/current/baserom.z64", "rb") as f:
|
||||
f.seek(start)
|
||||
target = ScriptDisassembler(f, romstart=start, prelude=False).disassemble()
|
||||
|
||||
current = current.splitlines()
|
||||
target = target.splitlines()
|
||||
|
||||
score = 0
|
||||
output = ""
|
||||
|
||||
for i in range(max(len(current), len(target))):
|
||||
if i >= len(current):
|
||||
current.append("")
|
||||
if i >= len(target):
|
||||
target.append("")
|
||||
|
||||
current_line = current[i][4:]
|
||||
target_line = target[i][4:]
|
||||
|
||||
output += Style.RESET_ALL
|
||||
|
||||
if current_line != target_line:
|
||||
output += Fore.RED
|
||||
score += 10
|
||||
else:
|
||||
output += Style.DIM
|
||||
|
||||
output += f"{target_line:<60} {current_line:<60}\n"
|
||||
|
||||
output = f"{'TARGET':<60} {f'CURRENT ({score})':<60}\n" + output
|
||||
|
||||
refresh_key = (current, target)
|
||||
return (output, refresh_key)
|
||||
|
||||
class FakeConfig():
|
||||
def __init__(self, args):
|
||||
self.make = args.make
|
||||
self.source_extensions = ["c", "h"]
|
||||
|
||||
def run_ninja():
|
||||
return subprocess.run(
|
||||
["ninja", "ver/current/build/papermario.z64"],
|
||||
stderr=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE,
|
||||
)
|
||||
|
||||
def main():
|
||||
args = parser.parse_args()
|
||||
get_constants()
|
||||
|
||||
display = EvtDisplay(args.start)
|
||||
|
||||
if args.watch:
|
||||
if not args.make:
|
||||
yn = input(
|
||||
"Warning: watch-mode (-w) enabled without auto-ninja (-m). "
|
||||
"You will have to run ninja manually. Ok? (Y/n) "
|
||||
)
|
||||
if yn.lower() == "n":
|
||||
return
|
||||
if args.make:
|
||||
watch_sources = ["src", "include"]
|
||||
else:
|
||||
watch_sources = ["ver/current/build/papermario.z64"]
|
||||
q = queue.Queue()
|
||||
debounced_fs_watch(watch_sources, q, FakeConfig(args), FakeConfig(args))
|
||||
display.run_async(q)
|
||||
last_build = 0.0
|
||||
try:
|
||||
while True:
|
||||
t = q.get()
|
||||
if t is None:
|
||||
break
|
||||
if t < last_build:
|
||||
continue
|
||||
last_build = time.time()
|
||||
if args.make:
|
||||
display.progress("Building...")
|
||||
ret = run_ninja()
|
||||
if ret.returncode != 0:
|
||||
display.update(
|
||||
ret.stderr.decode("utf-8-sig", "replace")
|
||||
or ret.stdout.decode("utf-8-sig", "replace"),
|
||||
error=True,
|
||||
)
|
||||
continue
|
||||
display.update(last_build, error=False)
|
||||
except KeyboardInterrupt:
|
||||
display.terminate()
|
||||
else:
|
||||
display.run_sync()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
109
include/evt.h
109
include/evt.h
@ -15,8 +15,8 @@ enum {
|
||||
EVT_OP_LOOP, ///< Args: number of repeats (0 = infinite)
|
||||
EVT_OP_END_LOOP,
|
||||
EVT_OP_BREAK_LOOP,
|
||||
EVT_OP_SLEEP_FRAMES,
|
||||
EVT_OP_SLEEP_SECS,
|
||||
EVT_OP_WAIT_FRAMES,
|
||||
EVT_OP_WAIT_SECS,
|
||||
EVT_OP_IF_EQ, ///< Args: a, b
|
||||
EVT_OP_IF_NE, ///< Args: a, b
|
||||
EVT_OP_IF_LT, ///< Args: a, b
|
||||
@ -27,60 +27,60 @@ enum {
|
||||
EVT_OP_IF_NOT_FLAG, ///< Args: a, b
|
||||
EVT_OP_ELSE,
|
||||
EVT_OP_END_IF,
|
||||
EVT_OP_MATCH, ///< Args: expression to test against
|
||||
EVT_OP_MATCH_CONST, ///< Args: value to test against
|
||||
EVT_OP_SWITCH, ///< Args: expression to test against
|
||||
EVT_OP_SWITCH_CONST, ///< Args: value to test against
|
||||
EVT_OP_CASE_EQ, ///< Args: expression to test for
|
||||
EVT_OP_CASE_NE, ///< Args: expression to test for
|
||||
EVT_OP_CASE_LT, ///< Args: expression to test for
|
||||
EVT_OP_CASE_GT, ///< Args: expression to test for
|
||||
EVT_OP_CASE_LE, ///< Args: expression to test for
|
||||
EVT_OP_CASE_GE, ///< Args: expression to test for
|
||||
EVT_OP_CASE_ELSE,
|
||||
EVT_OP_CASE_MULTI_OR_EQ, ///< Args: expression to test for
|
||||
EVT_OP_CASE_MULTI_AND_EQ, ///< Args: expression to test for
|
||||
EVT_OP_CASE_DEFAULT,
|
||||
EVT_OP_CASE_OR_EQ, ///< Args: expression to test for
|
||||
EVT_OP_CASE_AND_EQ, ///< Args: expression to test for
|
||||
EVT_OP_CASE_FLAG, ///< Args: expression to test for
|
||||
EVT_OP_END_CASE_MULTI, ///< Ends the case block of EVT_OP_CASE_MULTI_OR_EQ condition(s).
|
||||
EVT_OP_END_CASE_GROUP, ///< Ends the case block of EVT_OP_CASE_OR_EQ condition(s).
|
||||
EVT_OP_CASE_RANGE, ///< Args: from, to
|
||||
EVT_OP_BREAK_MATCH,
|
||||
EVT_OP_END_MATCH,
|
||||
EVT_OP_BREAK_SWITCH,
|
||||
EVT_OP_END_SWITCH,
|
||||
EVT_OP_SET, ///< Args: container, expression
|
||||
EVT_OP_SET_CONST, ///< Args: container, value
|
||||
EVT_OP_SET_F, ///< Args: container, expression
|
||||
EVT_OP_SETF, ///< Args: container, expression
|
||||
EVT_OP_ADD, ///< Args: container, expression to increment by
|
||||
EVT_OP_SUB, ///< Args: container, expression to decrement by
|
||||
EVT_OP_MUL, ///< Args: container, expression to multiply by
|
||||
EVT_OP_DIV, ///< Integer division. Args: container, expression to divide by
|
||||
EVT_OP_MOD, ///< Args: container, expression to divide by
|
||||
EVT_OP_ADD_F, ///< Args: container, expression to increment by
|
||||
EVT_OP_SUB_F, ///< Args: container, expression to decrement by
|
||||
EVT_OP_MUL_F, ///< Args: container, expression to multiply by
|
||||
EVT_OP_DIV_F, ///< Args: container, expression to divide by
|
||||
EVT_OP_USE_BUFFER, ///< Args: s32*
|
||||
EVT_OP_BUFFER_READ_1, /// Args: container
|
||||
EVT_OP_BUFFER_READ_2, /// Args: container, container
|
||||
EVT_OP_BUFFER_READ_3, /// Args: container, container, container
|
||||
EVT_OP_BUFFER_READ_4, /// Args: container, container, container, container
|
||||
EVT_OP_BUFFER_PEEK, ///< Args: index, container
|
||||
EVT_OP_USE_BUFFER_F, ///< Identical to USE_BUFFER. Args: f32*
|
||||
EVT_OP_BUFFER_READ_1_F, /// Args: container
|
||||
EVT_OP_BUFFER_READ_2_F, /// Args: container, container
|
||||
EVT_OP_BUFFER_READ_3_F, /// Args: container, container, container
|
||||
EVT_OP_BUFFER_READ_4_F, /// Args: container, container, container, container
|
||||
EVT_OP_BUFFER_PEEK_F, ///< Args: index, container
|
||||
EVT_OP_ADDF, ///< Args: container, expression to increment by
|
||||
EVT_OP_SUBF, ///< Args: container, expression to decrement by
|
||||
EVT_OP_MULF, ///< Args: container, expression to multiply by
|
||||
EVT_OP_DIVF, ///< Args: container, expression to divide by
|
||||
EVT_OP_USE_BUF, ///< Args: s32*
|
||||
EVT_OP_BUF_READ1, /// Args: container
|
||||
EVT_OP_BUF_READ2, /// Args: container, container
|
||||
EVT_OP_BUF_READ3, /// Args: container, container, container
|
||||
EVT_OP_BUF_READ4, /// Args: container, container, container, container
|
||||
EVT_OP_BUF_PEEK, ///< Args: index, container
|
||||
EVT_OP_USE_FBUF, ///< Identical to USE_BUFFER. Args: f32*
|
||||
EVT_OP_FBUF_READ1, /// Args: container
|
||||
EVT_OP_FBUF_READ2, /// Args: container, container
|
||||
EVT_OP_FBUF_READ3, /// Args: container, container, container
|
||||
EVT_OP_FBUF_READ4, /// Args: container, container, container, container
|
||||
EVT_OP_FBUF_PEEK, ///< Args: index, container
|
||||
EVT_OP_USE_ARRAY, ///< Args: *s32
|
||||
EVT_OP_USE_FLAGS, ///< Args: *s32
|
||||
EVT_OP_NEW_ARRAY, ///< Allocates a new array. Args: length, s32*
|
||||
EVT_OP_AND, ///< Args: container, expression to bitwise AND with
|
||||
EVT_OP_AND_CONST, ///< Args: container, value to bitwise AND with
|
||||
EVT_OP_OR, ///< Args: container, expression to bitwise OR with
|
||||
EVT_OP_OR_CONST, ///< Args: container, value to bitwise OR with
|
||||
EVT_OP_BITWISE_AND, ///< Args: container, expression to bitwise AND with
|
||||
EVT_OP_BITWISE_AND_CONST, ///< Args: container, value to bitwise AND with
|
||||
EVT_OP_BITWISE_OR, ///< Args: container, expression to bitwise OR with
|
||||
EVT_OP_BITWISE_OR_CONST, ///< Args: container, value to bitwise OR with
|
||||
EVT_OP_CALL, ///< Args: *function, ...
|
||||
EVT_OP_SPAWN_SCRIPT, ///< Args: EvtSource*
|
||||
EVT_OP_SPAWN_GET_ID, ///< Args: EvtSource*, container
|
||||
EVT_OP_AWAIT_SCRIPT, ///< Spawns a script and waits for it to return before continuing. Args: EvtSource*
|
||||
EVT_OP_EXEC, ///< Args: EvtSource*
|
||||
EVT_OP_EXEC_GET_TID, ///< Args: EvtSource*, container
|
||||
EVT_OP_EXEC_WAIT, ///< Spawns a script and waits for it to return before continuing. Args: EvtSource*
|
||||
EVT_OP_BIND_TRIGGER, ///< Args: EvtSource*, trigger flags, s32 target, 1, Trigger*
|
||||
EVT_OP_UNBIND, ///< Unbinds any triggers bound to this script.
|
||||
EVT_OP_KILL_SCRIPT, ///< Args: ScriptID
|
||||
EVT_OP_KILL_THREAD, ///< Args: ScriptID
|
||||
EVT_OP_JUMP, ///< Args: EvtSource*
|
||||
EVT_OP_SET_PRIORITY, ///< Args: priority
|
||||
EVT_OP_SET_TIMESCALE, ///< Args: timescale
|
||||
@ -90,13 +90,13 @@ enum {
|
||||
EVT_OP_RESUME_GROUP, ///< Args: group
|
||||
EVT_OP_SUSPEND_OTHERS, ///< Args: group
|
||||
EVT_OP_RESUME_OTHERS, ///< Args: group
|
||||
EVT_OP_SUSPEND_SCRIPT, ///< Args: ScriptID
|
||||
EVT_OP_RESUME_SCRIPT, ///< Args: ScriptID
|
||||
EVT_OP_DOES_SCRIPT_EXIST, ///< Args: ScriptID, container
|
||||
EVT_OP_SPAWN_THREAD,
|
||||
EVT_OP_END_SPAWN_THREAD,
|
||||
EVT_OP_PARALLEL_THREAD, ///< Parallel threads are killed as soon as the parent script returns.
|
||||
EVT_OP_END_PARALLEL_THREAD,
|
||||
EVT_OP_SUSPEND_THREAD, ///< Args: ScriptID
|
||||
EVT_OP_RESUME_THREAD, ///< Args: ScriptID
|
||||
EVT_OP_IS_THREAD_RUNNING, ///< Args: ScriptID, container
|
||||
EVT_OP_THREAD,
|
||||
EVT_OP_END_THREAD,
|
||||
EVT_OP_CHILD_THREAD, ///< Parallel threads are killed as soon as the parent script returns.
|
||||
EVT_OP_END_CHILD_THREAD,
|
||||
EVT_OP_90,
|
||||
EVT_OP_DEBUG_PRINT, ///< Args: expression
|
||||
EVT_OP_92,
|
||||
@ -104,6 +104,7 @@ enum {
|
||||
EVT_OP_94,
|
||||
};
|
||||
|
||||
// deprecated, use those in script_api/macros.h instead
|
||||
#define EVT_VAR(v) ((v - 30000000))
|
||||
#define EVT_MAP_VAR(v) ((v - 50000000))
|
||||
#define EVT_FLAG(v) ((v - 70000000))
|
||||
@ -114,17 +115,17 @@ enum {
|
||||
#define EVT_SAVE_VAR(v) ((v - 170000000))
|
||||
#define EVT_ARRAY(v) ((v - 190000000))
|
||||
#define EVT_ARRAY_FLAG(v) ((v - 210000000))
|
||||
#define EVT_FIXED(v) (((v * 1024.0f) + -230000000)) // See evt_float_to_fixed_var
|
||||
#define EVT_LIMIT -250000000 // TODO better name
|
||||
#define MAKE_ENTITY_END 0x80000000
|
||||
|
||||
#define EVT_FIXED(v) (((v * 1024.0f) + -230000000)) // See evt_float_to_fixed_var
|
||||
#define EVT_PTR(sym) (Bytecode) &sym
|
||||
#define EVT_LIMIT -250000000 // TODO better name
|
||||
#define MAKE_ENTITY_END 0x80000000
|
||||
|
||||
// deprecated, use enum GSW/GSWF
|
||||
#define EVT_STORY_PROGRESS EVT_SAVE_VAR(0)
|
||||
#define EVT_SAVE_FLAG_PLACES_VISITED EVT_SAVE_FLAG(0x7AA)
|
||||
#define EVT_SAVE_FLAG_TUTORIAL_GOT_STAR_PIECE EVT_SAVE_FLAG(101)
|
||||
#define EVT_WORLD_LOCATION EVT_SAVE_VAR(425)
|
||||
|
||||
|
||||
/* Return type of evt_execute_next_command */
|
||||
#define EVT_CONTINUE 0 /* Continue to next command */
|
||||
#define EVT_ABORT 1 /* Quit execution */
|
||||
@ -138,18 +139,4 @@ typedef s32 ApiStatus;
|
||||
#define ApiStatus_REPEAT 3 /* Call again immediately */
|
||||
#define ApiStatus_FINISH 255 /* Corresponds to EVT_FINISH */
|
||||
|
||||
#define EVT_CMD(opcode, argv...) \
|
||||
opcode, \
|
||||
/* argc */ (sizeof((Bytecode[]){argv})/sizeof(Bytecode)), \
|
||||
##argv
|
||||
|
||||
#define EXIT_WALK_SCRIPT(walkDistance, exitIdx, map, entryIdx) \
|
||||
SCRIPT({ \
|
||||
group 0x1B; \
|
||||
UseExitHeading(walkDistance, exitIdx); \
|
||||
spawn ExitWalk; \
|
||||
GotoMap(map, entryIdx); \
|
||||
sleep 100; \
|
||||
})
|
||||
|
||||
#endif
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define _SCRIPT_API_COMMON_H_
|
||||
|
||||
#include "common_structs.h"
|
||||
#include "evt.h"
|
||||
#include "macros.h"
|
||||
|
||||
ApiStatus FadeBackgroundToBlack(Evt* script, s32 isInitialCall);
|
||||
ApiStatus UnfadeBackgroundFromBlack(Evt* script, s32 isInitialCall);
|
||||
|
509
include/script_api/macros.h
Normal file
509
include/script_api/macros.h
Normal file
@ -0,0 +1,509 @@
|
||||
#ifndef _SCRIPT_API_MACROS_H_
|
||||
#define _SCRIPT_API_MACROS_H_
|
||||
|
||||
#include "evt.h"
|
||||
|
||||
/****** EXPRESSIONS ***************************************************************************************************/
|
||||
|
||||
/// Expressions in EVT instructions should be one of the following types:
|
||||
/// - Integer literals (as-is, s32)
|
||||
/// - Float literals (EVT_FLOAT) - cast to int where a float is not accepted
|
||||
/// - Pointers, string literals (EVT_ADDR)
|
||||
/// - Variables (LW, GW, LSW, GSW, UW)
|
||||
/// - Flags (LF, GF, LSWF, GSWF, UF)
|
||||
/// This is implemented in `evt_get_variable` and `evt_get_float_variable`.
|
||||
|
||||
/// Decimal constant.
|
||||
/// Despite the name, "floats" are actually stored as fixed-point values.
|
||||
#define EVT_FLOAT(DOUBLE) (((Bytecode)(DOUBLE * 1024.0f) + -230000000))
|
||||
|
||||
/// Address/pointer constant.
|
||||
#define EVT_ADDR(sym) (((Bytecode) &((sym))))
|
||||
|
||||
/// Local Word. A variable local to the current thread.
|
||||
/// LWs are copied to any threads created by this one (EVT_EXEC, EVT_EXEC_WAIT, EVT_THREAD, EVT_CHILD_THREAD).
|
||||
/// Additionally, EVT_EXEC_WAIT copies LWs back from the spawned thread when it completes.
|
||||
///
|
||||
/// Range: `0 <= v < 0x10`
|
||||
/// Star Rod equivalent: `*Var[v]`.
|
||||
#define LW(INDEX) ((((INDEX)) - 30000000))
|
||||
|
||||
/// Global Word. A variable global to all threads.
|
||||
/// Cleared upon entering a new map.
|
||||
///
|
||||
/// Range: `0 <= v < 0x10`
|
||||
/// Star Rod equivalent: `*MapVar[v]`.
|
||||
#define GW(INDEX) ((((INDEX)) - 50000000))
|
||||
|
||||
/// Local Flag. A boolean variable local to the current thread.
|
||||
/// LFs are copied to any threads created by this one (EVT_EXEC, EVT_EXEC_WAIT, EVT_THREAD, EVT_CHILD_THREAD).
|
||||
/// Additionally, EVT_EXEC_WAIT copies LFs back from the spawned thread when it completes.
|
||||
///
|
||||
/// Range: `0 <= v < 0x60`
|
||||
/// Star Rod equivalent: `*Flag[v]`.
|
||||
#define LF(INDEX) ((((INDEX)) - 70000000))
|
||||
|
||||
/// Global Flag. A boolean variable global to all threads.
|
||||
/// Cleared upon entering a new map.
|
||||
///
|
||||
/// Range: `0 <= v < 0x60`
|
||||
/// Star Rod equivalent: `*MapFlag[v]`.
|
||||
#define GF(INDEX) ((((INDEX)) - 90000000))
|
||||
|
||||
/// Local Save World Flag. A boolean variable local to the current world area, saved in the savefile.
|
||||
/// Cleared upon entering a new world area.
|
||||
///
|
||||
/// Used to track whether items that respawn, such as coins, Goomnuts, or Koopa Leaves, have been collected.
|
||||
///
|
||||
/// Range: `0 <= v < 0x100`
|
||||
/// Star Rod equivalent: `*AreaFlag[v]`.
|
||||
#define LSWF(INDEX) ((((INDEX)) - 110000000))
|
||||
|
||||
/// Global Save World Flag. A boolean variable saved in the savefile.
|
||||
///
|
||||
/// Used to track whether badges, items, etc. have been collected or whether NPCs have been interacted with.
|
||||
///
|
||||
/// Range: `0 <= v < 0x800`
|
||||
/// Star Rod equivalent: `*SaveFlag[v]`.
|
||||
#define GSWF(INDEX) ((((INDEX)) - 130000000))
|
||||
|
||||
/// Local Saved **Byte**. A variable local to the current world area, saved in the savefile.
|
||||
/// Cleared upon a new world area.
|
||||
///
|
||||
/// Rarely used. Most common use is for NPCs with dialogue that changes depending on the number of times you have
|
||||
/// interacted with them in their 'recent memory' (i.e. until you leave the area).
|
||||
///
|
||||
/// Range: `0 <= v < 0x10`
|
||||
/// Star Rod equivalent: `*AreaByte[v]`.
|
||||
#define LSW(INDEX) ((((INDEX)) - 150000000))
|
||||
|
||||
/// Global Saved **Byte**. A variable saved in the save file.
|
||||
///
|
||||
/// Used for almost all savefile state.
|
||||
#define GSW(INDEX) (((((INDEX)) - 170000000))
|
||||
|
||||
// TODO(docs): figure out what 'U' might stand for in UW and UF
|
||||
/// **Array** Word. A variable stored within the current thread's array.
|
||||
/// You can load an array with EVT_USE_ARRAY or temporarily allocate one with EVT_MALLOC_ARRAY, then get/set values with
|
||||
/// the `UW(index)` macro.
|
||||
///
|
||||
/// Range: `0 <= v`
|
||||
/// Star Rod equivalent: `*Array[v]`.
|
||||
#define UW(INDEX) ((((INDEX)) - 190000000))
|
||||
|
||||
/// **Array** Flag. A boolean variable stored within the current thread's flag array.
|
||||
/// The flag array is distinct from the word array (unlike EVT_USE_BUF and EVT_USE_FBUF).
|
||||
///
|
||||
/// Range: `0 <= v`
|
||||
/// Star Rod equivalent: `*Array[v]`.
|
||||
#define UF(INDEX) ((((v)) - 210000000))
|
||||
|
||||
/// An entity index. Entities are assigned indices in the order they are created with EVT_CALL(MakeEntity, ...).
|
||||
/// Supported in EVT_BIND_TRIGGER and EVT_BIND_PADLOCK only.
|
||||
#define EVT_ENTITY_INDEX(entityIndex) (((((entityIndex)) + 0x400)))
|
||||
|
||||
|
||||
/****** INSTRUCTIONS **************************************************************************************************/
|
||||
|
||||
/// On each frame, the EVT manager will continue executing commands in all threads until a blocking command is
|
||||
/// encountered. This means that if you have a thread that loops but does not block between iterations, the game will
|
||||
/// freeze! Avoid this by inserting a blocking command such as EVT_WAIT_FRAMES(1) in the loop body.
|
||||
///
|
||||
/// Also note that threads are never executed in parallel. If your EVT script lacks blocking commands, it will be
|
||||
/// executed all in one go, and race conditions cannot occur.
|
||||
///
|
||||
/// The following subset of EVT commands are blocking:
|
||||
/// - EVT_EXEC_WAIT
|
||||
/// - EVT_WAIT_FRAMES
|
||||
/// - EVT_WAIT_SECONDS
|
||||
/// - EVT_CALL (if function returns ApiStatus_BLOCK)
|
||||
|
||||
/// In EVT scripts, instructions are stored contiguously in the following structs:
|
||||
/// struct {
|
||||
/// Bytecode opcode;
|
||||
/// Bytecode argc;
|
||||
/// Bytecode argv[argc];
|
||||
/// }
|
||||
/// This macro expands to the given opcode and argv, with argc calculated automatically.
|
||||
#define EVT_CMD(opcode, argv...) \
|
||||
opcode, \
|
||||
(sizeof((Bytecode[]){argv})/sizeof(Bytecode)), \
|
||||
##argv
|
||||
|
||||
/// Signals the end of EVT script data. A script missing this will likely crash on load.
|
||||
#define EVT_END EVT_CMD(EVT_OP_END),
|
||||
|
||||
/// Kills the current EVT thread.
|
||||
/// A script missing a return will live - but do nothing - forever, or until something else kills it (e.g. leaving the map).
|
||||
#define EVT_RETURN EVT_CMD(EVT_OP_RETURN),
|
||||
|
||||
/// Jumps to a given instruction pointer and begins execution from there.
|
||||
/// You can jump to a different EVT source and labels etc. will be loaded as expected.
|
||||
/// The timescale for the current thread is also reset to the global default.
|
||||
#define EVT_JUMP(EVT_SOURCE) EVT_CMD(EVT_OP_JUMP, (Bytecode) EVT_SOURCE),
|
||||
|
||||
/// Marks this point in the script as a EVT_GOTO target.
|
||||
///
|
||||
/// Range: `0 <= LABEL_ID <= 0x16`
|
||||
#define EVT_LABEL(LABEL_ID) EVT_CMD(EVT_OP_LABEL, LABEL_ID),
|
||||
|
||||
/// Moves execution to the given label.
|
||||
///
|
||||
/// Range: `0 <= LABEL_ID <= 0x16`
|
||||
#define EVT_GOTO(LABEL_ID) EVT_CMD(EVT_OP_GOTO, LABEL_ID),
|
||||
|
||||
/// Marks the beginning of a loop.
|
||||
///
|
||||
/// EVT_LOOP(TIMES)
|
||||
/// ...
|
||||
/// EVT_END_LOOP
|
||||
///
|
||||
/// The variable or value given in `TIMES` is decremented upon each loop iteration.
|
||||
/// After the "1" iteration completes, the loop exits.
|
||||
/// Use EVT_LOOP(0) for an infinite loop; make sure it breaks or blocks to avoid a freeze.
|
||||
///
|
||||
/// Up to 8 loops may be nested within a single script.
|
||||
#define EVT_LOOP(TIMES) EVT_CMD(EVT_OP_LOOP, TIMES),
|
||||
|
||||
/// Marks the end of a loop.
|
||||
#define EVT_END_LOOP EVT_CMD(EVT_OP_END_LOOP),
|
||||
|
||||
/// Breaks out of the innermost loop.
|
||||
#define EVT_BREAK_LOOP EVT_CMD(EVT_OP_BREAK_LOOP),
|
||||
|
||||
/// Blocks for the given number of frames.
|
||||
#define EVT_WAIT_FRAMES(NUM_FRAMES) EVT_CMD(EVT_OP_WAIT_FRAMES, NUM_FRAMES),
|
||||
|
||||
/// Blocks for the given number of seconds.
|
||||
#define EVT_WAIT_SECS(NUM_SECONDS) EVT_CMD(EVT_OP_WAIT_SECS, NUM_SECONDS),
|
||||
|
||||
/// Marks the beginning of an if statement that only executes if `LVAR == RVAR`.
|
||||
///
|
||||
/// EVT_IF_EQ(LVAR, RVAR)
|
||||
/// ...
|
||||
/// EVT_ELSE
|
||||
/// ...
|
||||
/// EVT_END_IF
|
||||
///
|
||||
/// The EVT_ELSE block is optional.
|
||||
#define EVT_IF_EQ(LVAR, RVAR) EVT_CMD(EVT_OP_IF_EQ, LVAR, RVAR),
|
||||
|
||||
/// Marks the beginning of an if statement that only executes if `LVAR != RVAR`.
|
||||
#define EVT_IF_NE(LVAR, RVAR) EVT_CMD(EVT_OP_IF_NE, LVAR, RVAR),
|
||||
|
||||
/// Marks the beginning of an if statement that only executes if `LVAR < RVAR`.
|
||||
#define EVT_IF_LT(LVAR, RVAR) EVT_CMD(EVT_OP_IF_LT, LVAR, RVAR),
|
||||
|
||||
/// Marks the beginning of an if statement that only executes if `LVAR <= RVAR`.
|
||||
#define EVT_IF_GT(LVAR, RVAR) EVT_CMD(EVT_OP_IF_GT, LVAR, RVAR),
|
||||
|
||||
/// Marks the beginning of an if statement that only executes if `LVAR > RVAR`.
|
||||
#define EVT_IF_LE(LVAR, RVAR) EVT_CMD(EVT_OP_IF_LE, LVAR, RVAR),
|
||||
|
||||
/// Marks the beginning of an if statement that only executes if `LVAR >= RVAR`.
|
||||
#define EVT_IF_GE(LVAR, RVAR) EVT_CMD(EVT_OP_IF_GE, LVAR, RVAR),
|
||||
|
||||
/// Marks the beginning of an if statement that only executes if the RVAR flag is set on LVAR,
|
||||
/// i.e. `(LVAR & RVAR) != 1`.
|
||||
#define EVT_IF_FLAG(LVAR, RVAR) EVT_CMD(EVT_OP_IF_FLAG, LVAR, RVAR),
|
||||
|
||||
/// Marks the beginning of an if statement that only executes if the RVAR flag is unset on LVAR,
|
||||
/// i.e. `(LVAR & RVAR) == 0`.
|
||||
#define EVT_IF_NOT_FLAG(LVAR, RVAR) EVT_CMD(EVT_OP_IF_NOT_FLAG, LVAR, RVAR),
|
||||
|
||||
/// Marks the end of an if statement and the start of the else block.
|
||||
#define EVT_ELSE EVT_CMD(EVT_OP_ELSE),
|
||||
|
||||
/// Marks the end of an if statement or an else block.
|
||||
#define EVT_END_IF EVT_CMD(EVT_OP_END_IF),
|
||||
|
||||
/// Marks the start of a switch statement.
|
||||
///
|
||||
/// EVT_SWITCH(LVAR)
|
||||
/// EVT_CASE_EQ(RVAR)
|
||||
/// ...
|
||||
/// EVT_END_SWITCH
|
||||
///
|
||||
/// Unlike C, EVT switch statements do not have fallthrough by default.
|
||||
/// If you want to opt-in to fallthrough, use EVT_CASE_OR_EQ.
|
||||
///
|
||||
/// Up to 8 switch statements may be nested within a single script.
|
||||
#define EVT_SWITCH(LVAR) EVT_CMD(EVT_OP_SWITCH, LVAR),
|
||||
|
||||
/// Marks the start of a switch statement where the given value is treated as-is instead of using evt_get_variable.
|
||||
/// That is, `EVT_SWITCH_CONST(LW(0))` will switch over the value `0xFE363C80` instead of the value contained
|
||||
/// within `LW(0)`.
|
||||
#define EVT_SWITCH_CONST(LCONST) EVT_CMD(EVT_OP_SWITCH_CONST, LCONST),
|
||||
|
||||
/// Marks the start of a switch case that executes only if `LVAR == RVAR`. It also marks the end of any previous case.
|
||||
#define EVT_CASE_EQ(RVAR) EVT_CMD(EVT_OP_CASE_EQ, RVAR),
|
||||
|
||||
/// Marks the start of a switch case that executes only if `LVAR != RVAR`. It also marks the end of any previous case.
|
||||
#define EVT_CASE_NE(RVAR) EVT_CMD(EVT_OP_CASE_NE, RVAR),
|
||||
|
||||
/// Marks the start of a switch case that executes only if `LVAR < RVAR`. It also marks the end of any previous case.
|
||||
#define EVT_CASE_LT(RVAR) EVT_CMD(EVT_OP_CASE_LT, RVAR),
|
||||
|
||||
/// Marks the start of a switch case that executes only if `LVAR <= RVAR`. It also marks the end of any previous case.
|
||||
#define EVT_CASE_GT(RVAR) EVT_CMD(EVT_OP_CASE_GT, RVAR),
|
||||
|
||||
/// Marks the start of a switch case that executes only if `LVAR > RVAR`. It also marks the end of any previous case.
|
||||
#define EVT_CASE_LE(RVAR) EVT_CMD(EVT_OP_CASE_LE, RVAR),
|
||||
|
||||
/// Marks the start of a switch case that executes only if `LVAR >= RVAR`. It also marks the end of any previous case.
|
||||
#define EVT_CASE_GE(RVAR) EVT_CMD(EVT_OP_CASE_GE, RVAR),
|
||||
|
||||
/// Marks the start of a switch case that executes unconditionally. It also marks the end of any previous case.
|
||||
#define EVT_CASE_DEFAULT EVT_CMD(EVT_OP_CASE_DEFAULT),
|
||||
|
||||
/// Marks the start of a switch case that executes only if `LVAR == RVAR`. It also marks the end of any previous case.
|
||||
/// Unlike EVT_CASE_EQ, EVT_CASE_OR_EQ will fallthrough to the next case until EVT_END_CASE_GROUP is reached.
|
||||
#define EVT_CASE_OR_EQ(RVAR) EVT_CMD(EVT_OP_CASE_OR_EQ, RVAR),
|
||||
|
||||
/// Marks the start of a switch case that executes only if `LVAR == RVAR`. It also marks the end of any previous case.
|
||||
/// Similar to EVT_CASE_OR_EQ, EVT_CASE_AND_EQ has fallthrough. However, if `LVAR != RVAR`, fallthrough does not apply.
|
||||
#define EVT_CASE_AND_EQ(RVAR) EVT_CMD(EVT_OP_CASE_AND_EQ, RVAR),
|
||||
|
||||
/// Marks the start of a switch case that executes only if the `RVAR` flag is set on `LVAR`, i.e. `(LVAR & RVAR) != 1`.
|
||||
/// It also marks the end of any previous case.
|
||||
#define EVT_CASE_FLAG(RVAR) EVT_CMD(EVT_OP_CASE_FLAG, RVAR),
|
||||
|
||||
/// Marks the end of a switch case group (EVT_CASE_OR_EQ and/or EVT_CASE_AND_EQ), stopping fallthrough.
|
||||
#define EVT_END_CASE_GROUP EVT_CMD(EVT_OP_END_CASE_GROUP),
|
||||
|
||||
/// Marks the start of a switch case that executes only if `MIN <= LVAR <= MAX` (inclusive).
|
||||
/// It also marks the end of any previous case.
|
||||
#define EVT_CASE_RANGE(MIN, MAX) EVT_CMD(EVT_OP_CASE_RANGE, MIN, MAX),
|
||||
|
||||
/// Marks the end of a switch statement and any case.
|
||||
#define EVT_END_SWITCH EVT_CMD(EVT_OP_END_SWITCH),
|
||||
|
||||
/// Sets the given variable to a given value casted to an integer.
|
||||
#define EVT_SET(VAR, INT_VALUE) EVT_CMD(EVT_OP_SET, VAR, (Bytecode) INT_VALUE),
|
||||
|
||||
/// Sets the given variable to a given value, skipping the evt_get_variable call.
|
||||
/// That is, `EVT_SET_CONST(LW(0), LW(1))` will set `LW(0)` to `0xFE363C81` instead of copying the value of
|
||||
/// `LW(1)` into `LW(0)`.
|
||||
#define EVT_SET_CONST(VAR, CONST) EVT_CMD(EVT_OP_SET_CONST, VAR, (Bytecode) CONST),
|
||||
|
||||
/// Sets the given variable to a given value, but supports EVT_FLOATs.
|
||||
#define EVT_SETF(VAR, FLOAT_VALUE) EVT_CMD(EVT_OP_SETF, VAR, FLOAT_VALUE),
|
||||
|
||||
// Basic arithmetic operations.
|
||||
#define EVT_ADD(VAR, INT_VALUE) EVT_CMD(EVT_OP_ADD, VAR, INT_VALUE),
|
||||
#define EVT_SUB(VAR, INT_VALUE) EVT_CMD(EVT_OP_SUB, VAR, INT_VALUE),
|
||||
#define EVT_MUL(VAR, INT_VALUE) EVT_CMD(EVT_OP_MUL, VAR, INT_VALUE),
|
||||
#define EVT_DIV(VAR, INT_VALUE) EVT_CMD(EVT_OP_DIV, VAR, INT_VALUE),
|
||||
#define EVT_MOD(VAR, INT_VALUE) EVT_CMD(EVT_OP_MOD, VAR, INT_VALUE),
|
||||
|
||||
// Basic floating-point arithmetic operations.
|
||||
#define EVT_ADDF(VAR, FLOAT_VALUE) EVT_CMD(EVT_OP_ADDF, VAR, FLOAT_VALUE),
|
||||
#define EVT_SUBF(VAR, FLOAT_VALUE) EVT_CMD(EVT_OP_SUBF, VAR, FLOAT_VALUE),
|
||||
#define EVT_MULF(VAR, FLOAT_VALUE) EVT_CMD(EVT_OP_MULF, VAR, FLOAT_VALUE),
|
||||
#define EVT_DIVF(VAR, FLOAT_VALUE) EVT_CMD(EVT_OP_DIVF, VAR, FLOAT_VALUE),
|
||||
|
||||
/// Loads a s32 pointer for use with subsequent EVT_BUF_READ commands.
|
||||
#define EVT_USE_BUF(INT_PTR) EVT_CMD(EVT_OP_USE_BUF, (Bytecode) INT_PTR),
|
||||
|
||||
/// Consumes the next s32 from the buffer and stores it in the given variable.
|
||||
#define EVT_BUF_READ1(VAR) EVT_CMD(EVT_OP_BUF_READ1, VAR),
|
||||
|
||||
/// Consumes the next two s32s from the buffer and stores them in the given variables.
|
||||
#define EVT_BUF_READ2(VAR1, VAR2) EVT_CMD(EVT_OP_BUF_READ2, VAR1, VAR2),
|
||||
|
||||
/// Consumes the next three s32s from the buffer and stores them in the given variables.
|
||||
#define EVT_BUF_READ3(VAR1, VAR2, VAR3) EVT_CMD(EVT_OP_BUF_READ3, VAR1, VAR2, VAR3),
|
||||
|
||||
/// Consumes the next four s32s from the buffer and stores them in the given variables.
|
||||
#define EVT_BUF_READ4(VAR1, VAR2, VAR3, VAR4) EVT_CMD(EVT_OP_BUF_READ4, VAR1, VAR2, VAR3, VAR4),
|
||||
|
||||
/// Gets the s32 at the given offset of the buffer and stores it in the given variable, without consuming it.
|
||||
#define EVT_BUF_PEEK(OFFSET, VAR) EVT_CMD(EVT_OP_BUF_PEEK, OFFSET, VAR),
|
||||
|
||||
/// Identical to EVT_USE_BUF. Beware that the int buffer and the float buffer are not distinct.
|
||||
#define EVT_USE_FBUF(FLOAT_PTR) EVT_CMD(EVT_OP_USE_FBUF, (Bytecode) FLOAT_PTR),
|
||||
|
||||
/// Consumes the next f32 from the buffer and stores it in the given variable.
|
||||
#define EVT_FBUF_READ1(VAR) EVT_CMD(EVT_OP_FBUF_READ1, VAR),
|
||||
|
||||
/// Consumes the next two f32s from the buffer and stores them in the given variables.
|
||||
#define EVT_FBUF_READ2(VAR1, VAR2) EVT_CMD(EVT_OP_FBUF_READ2, VAR1, VAR2),
|
||||
|
||||
/// Consumes the next three f32s from the buffer and stores them in the given variables.
|
||||
#define EVT_FBUF_READ3(VAR1, VAR2, VAR3) EVT_CMD(EVT_OP_FBUF_READ3, VAR1, VAR2, VAR3),
|
||||
|
||||
/// Consumes the next four f32s from the buffer and stores them in the given variables.
|
||||
#define EVT_FBUF_READ4(VAR1, VAR2, VAR3, VAR4) EVT_CMD(EVT_OP_FBUF_READ4, VAR1, VAR2, VAR3, VAR4),
|
||||
|
||||
/// Gets the f32 at the given offset of the buffer and stores it in the given variable, without consuming it.
|
||||
#define EVT_FBUF_PEEK(OFFSET, VAR) EVT_CMD(EVT_OP_FBUF_PEEK, OFFSET, VAR),
|
||||
|
||||
/// Loads an s32 array pointer into the current thread for use with `UW(INDEX)`.
|
||||
#define EVT_USE_ARRAY(INT_PTR) EVT_CMD(EVT_OP_USE_ARRAY, (Bytecode) INT_PTR),
|
||||
|
||||
/// Loads an s32 array pointer into the current thread for use with `UF(INDEX)`.
|
||||
/// Flags are stored in a 'packed' structure where indices refer to bits.
|
||||
#define EVT_USE_FLAG_ARRAY(PACKED_FLAGS_PTR) EVT_CMD(EVT_OP_USE_FLAG_ARRAY, (Bytecode) PACKED_FLAGS_PTR),
|
||||
|
||||
/// Allocates a new array of the given size for use with `UW(INDEX)`.
|
||||
/// EVT scripts do not have to worry about freeing this array.
|
||||
#define EVT_MALLOC_ARRAY(SIZE, OUT_PTR_VAR) EVT_CMD(EVT_OP_MALLOC_ARRAY, SIZE, OUT_PTR_VAR),
|
||||
|
||||
/// `VAR &= VALUE`
|
||||
#define EVT_BITWISE_AND(VAR, VALUE) EVT_CMD(EVT_OP_BITWISE_AND, VAR, VALUE),
|
||||
|
||||
/// `VAR |= VALUE`
|
||||
#define EVT_BITWISE_OR(VAR, VALUE) EVT_CMD(EVT_OP_BITWISE_OR, VAR, VALUE),
|
||||
|
||||
/// `VAR &= CONST`, but CONST is treated as-is rather than dereferenced with evt_get_variable.
|
||||
#define EVT_BITWISE_AND_CONST(VAR, CONST) EVT_CMD(EVT_OP_BITWISE_AND_CONST, VAR, CONST),
|
||||
|
||||
/// `VAR |= CONST`, but CONST is treated as-is rather than dereferenced with evt_get_variable.
|
||||
#define EVT_BITWISE_OR_CONST(VAR, CONST) EVT_CMD(EVT_OP_BITWISE_OR_CONST, VAR, CONST),
|
||||
|
||||
/// Launches a new thread.
|
||||
/// The following values are copied from the current thread to the new thread:
|
||||
/// - LFs
|
||||
/// - LWs
|
||||
/// - Array pointer
|
||||
/// - Flag array pointer
|
||||
/// - Priority
|
||||
/// - Group
|
||||
#define EVT_EXEC(EVT_SOURCE) EVT_CMD(EVT_OP_EXEC, (Bytecode) EVT_SOURCE),
|
||||
|
||||
/// Identical to EVT_EXEC, but the newly-launched thread ID is stored in OUTVAR.
|
||||
/// The other thread may be interacted with using EVT_KILL_THREAD, EVT_SUSPEND_THREAD, EVT_RESUME_THREAD, and
|
||||
/// EVT_IS_THREAD_RUNNING.
|
||||
#define EVT_EXEC_GET_TID(EVT_SOURCE, OUTVAR) EVT_CMD(EVT_OP_EXEC_GET_TID, (Bytecode) EVT_SOURCE, OUTVAR),
|
||||
|
||||
/// Launches a new child thread.
|
||||
/// Blocks for at least one frame unless the child thread is made to have a higher priority than the parent.
|
||||
///
|
||||
/// The following values are inherited and then copied back to the parent thread upon completion:
|
||||
/// - LFs
|
||||
/// - LWs
|
||||
/// - Array pointer
|
||||
/// - Flag array pointer
|
||||
/// - Priority
|
||||
/// - Group
|
||||
///
|
||||
/// Child threads are killed, suspended, and resumed as their parents are, for example, a different thread using
|
||||
/// EVT_KILL_THREAD to kill a parent thread would also kill its child thread(s) launched by this command.
|
||||
#define EVT_EXEC_WAIT(EVT_SOURCE) EVT_CMD(EVT_OP_EXEC_WAIT, (Bytecode) EVT_SOURCE),
|
||||
|
||||
/// Sets up a script to launch when a particular event is triggered.
|
||||
///
|
||||
/// Valid triggers:
|
||||
/// - TRIGGER_WALL_PUSH
|
||||
/// - TRIGGER_FLOOR_TOUCH
|
||||
/// - TRIGGER_WALL_PRESS_A (displays "!" icon above player)
|
||||
/// - TRIGGER_FLOOR_JUMP
|
||||
/// - TRIGGER_WALL_TOUCH
|
||||
/// - TRIGGER_FLOOR_PRESS_A
|
||||
/// - TRIGGER_WALL_HAMMER
|
||||
/// - TRIGGER_GAME_FLAG_SET (TODO: rename)
|
||||
/// - TRIGGER_AREA_FLAG_SET (TODO: rename)
|
||||
/// - TRIGGER_CEILING_TOUCH
|
||||
/// - TRIGGER_FLOOR_ABOVE
|
||||
/// - TRIGGER_POINT_BOMB (takes Vec3f* instead of collider ID)
|
||||
///
|
||||
/// For the `COLLIDER_ID` param, the following values are accepted:
|
||||
/// - Collider ID
|
||||
/// - Entity ID (use EVT_ENTITY_INDEX)
|
||||
/// - Pointer to a Vec3f (for TRIGGER_POINT_BOMB only)
|
||||
///
|
||||
/// Only one thread will run for a trigger at once.
|
||||
#define EVT_BIND_TRIGGER(EVT_SOURCE, TRIGGER, COLLIDER_ID, UNK_A3, TRIGGER_PTR_OUTVAR) \
|
||||
EVT_CMD(EVT_OP_BIND_TRIGGER, (Bytecode) EVT_SOURCE, TRIGGER, (Bytecode) COLLIDER_ID, UNK_A3, TRIGGER_PTR_OUTVAR),
|
||||
|
||||
/// Similar to EVT_BIND_TRIGGER, but also takes arguments for the item list to show.
|
||||
#define EVT_BIND_PADLOCK(EVT_SOURCE, TRIGGER, COLLIDER_ID, ITEM_LIST, UNK_A3, TRIGGER_PTR_OUTVAR) \
|
||||
EVT_CMD(EVT_OP_BIND_PADLOCK, (Bytecode) EVT_SOURCE, TRIGGER, COLLIDER_ID, (Bytecode) ITEM_LIST, UNK_A3, TRIGGER_PTR_OUTVAR),
|
||||
|
||||
/// Unbinds the current thread from the trigger it was bound to, if any.
|
||||
#define EVT_UNBIND EVT_CMD(EVT_OP_UNBIND),
|
||||
|
||||
/// Kills a thread by its thread ID.
|
||||
#define EVT_KILL_THREAD(TID) EVT_CMD(EVT_OP_KILL_THREAD, TID),
|
||||
|
||||
/// Sets the current thread's priority. Higher-priority threads execute before lower-priority threads on each frame.
|
||||
#define EVT_SET_PRIORITY(PRIORITY) EVT_CMD(EVT_OP_SET_PRIORITY, PRIORITY),
|
||||
|
||||
/// Sets the current thread's timescale. This is a multiplier applied to EVT_WAIT_FRAMES and EVT_WAIT_SECONDS.
|
||||
#define EVT_SET_TIMESCALE(TIMESCALE) EVT_CMD(EVT_OP_SET_TIMESCALE, TIMESCALE),
|
||||
|
||||
/// Sets the current thread's group. Group value meanings are currently not known.
|
||||
#define EVT_SET_GROUP(GROUP) EVT_CMD(EVT_OP_SET_GROUP, GROUP),
|
||||
|
||||
/// Suspends all threads in a group.
|
||||
#define EVT_SUSPEND_GROUP(GROUP) EVT_CMD(EVT_OP_SUSPEND_GROUP, GROUP),
|
||||
|
||||
/// Resumes all threads in a group.
|
||||
#define EVT_RESUME_GROUP(GROUP) EVT_CMD(EVT_OP_RESUME_GROUP, GROUP),
|
||||
|
||||
/// Suspends all threads in a group, except the current thread.
|
||||
#define EVT_SUSPEND_OTHERS(GROUP) EVT_CMD(EVT_OP_SUSPEND_OTHERS, GROUP),
|
||||
|
||||
/// Resumes all threads in a group, except the current thread.
|
||||
#define EVT_RESUME_OTHERS(GROUP) EVT_CMD(EVT_OP_RESUME_OTHERS, GROUP),
|
||||
|
||||
/// Suspends all threads in a group, except the current thread.
|
||||
#define EVT_SUSPEND_THREAD(TID) EVT_CMD(EVT_OP_SUSPEND_THREAD, TID),
|
||||
|
||||
/// Resumes a thread by its thread ID.
|
||||
#define EVT_RESUME_THREAD(TID) EVT_CMD(EVT_OP_RESUME_THREAD, TID),
|
||||
|
||||
/// Sets OUTVAR to TRUE/FALSE depending on whether a thread with the given ID exists (i.e. has not been killed).
|
||||
#define EVT_IS_THREAD_RUNNING(TID, OUTVAR) EVT_CMD(EVT_OP_IS_THREAD_RUNNING, TID, OUTVAR),
|
||||
|
||||
/// Marks the start of a thread block. Commands between this and a matching EVT_END_THREAD
|
||||
/// will be executed on their own, new thread instead of on the current thread.
|
||||
#define EVT_THREAD EVT_CMD(EVT_OP_THREAD),
|
||||
|
||||
/// Marks the end of a thread block.
|
||||
#define EVT_END_THREAD EVT_CMD(EVT_OP_END_THREAD),
|
||||
|
||||
/// Marks the start of a child thread block. Commands between this and a matching EVT_END_CHILD_THREAD
|
||||
/// will be executed as a new child thread instead of on the current thread.
|
||||
///
|
||||
/// Child threads are killed if the parent thread dies, so the following script does NOT set the player's position:
|
||||
///
|
||||
/// EVT_CHILD_THREAD
|
||||
/// EVT_WAIT_SECONDS(1) // child thread will be killed whilst waiting
|
||||
/// EVT_CALL(SetPlayerPos, 0, -1000, 0) // will not be executed
|
||||
/// EVT_END_CHILD_THREAD
|
||||
/// EVT_RETURN // parent thread dies
|
||||
///
|
||||
#define EVT_CHILD_THREAD EVT_CMD(EVT_OP_CHILD_THREAD),
|
||||
|
||||
/// Marks the end of a child thread block.
|
||||
#define EVT_END_CHILD_THREAD EVT_CMD(EVT_OP_END_CHILD_THREAD),
|
||||
|
||||
/// Calls a given C EVT API function with any number of arguments.
|
||||
///
|
||||
/// An API function has the following signature:
|
||||
///
|
||||
/// ApiStatus ApiFunction(Evt* thread, s32 isInitialCall);
|
||||
///
|
||||
/// This function could then be called with the following command:
|
||||
///
|
||||
/// EVT_CALL(ApiFunction)
|
||||
///
|
||||
/// The given arguments can be accessed from the API function using `thread->ptrReadPos`.
|
||||
#define EVT_CALL(FUNC, ...) EVT_CMD(EVT_OP_CALL, (Bytecode) FUNC, ##__VA_ARGS__),
|
||||
|
||||
|
||||
/****** COMMON SCRIPTS ************************************************************************************************/
|
||||
|
||||
#define EXIT_WALK_SCRIPT(walkDistance, exitIdx, map, entryIdx) \
|
||||
{ \
|
||||
EVT_SET_GROUP(0x1B) \
|
||||
EVT_CALL(UseExitHeading, walkDistance, exitIdx) \
|
||||
EVT_EXEC(ExitWalk) \
|
||||
EVT_CALL(GotoMap, EVT_PTR(map), entryIdx) \
|
||||
EVT_WAIT_FRAMES(100) \
|
||||
EVT_RETURN \
|
||||
EVT_END \
|
||||
}
|
||||
|
||||
#endif
|
@ -398,5 +398,18 @@ extern s32 bMarioIdleAnims[];
|
||||
extern s32 bMarioDefendAnims[];
|
||||
extern s32 bPeachIdleAnims[];
|
||||
|
||||
// TODO: name these entity symbols
|
||||
extern StaticEntityData D_802E9A18; // entitySaveBlock
|
||||
extern StaticEntityData D_802E9BB0;
|
||||
extern StaticEntityData D_802E9BD4; // entityBlueSwitch
|
||||
extern StaticEntityData D_802E9BF8; // entityHugeBlueSwitch
|
||||
extern StaticEntityData D_802E9C1C;
|
||||
extern StaticEntityData D_802E9C8C;
|
||||
extern StaticEntityData D_802E9CB0;
|
||||
extern StaticEntityData D_802E9CD4;
|
||||
extern StaticEntityData D_802E9CF8;
|
||||
extern StaticEntityData D_802E9D1C;
|
||||
extern StaticEntityData D_802E9D40;
|
||||
extern StaticEntityData D_802E9D64;
|
||||
|
||||
#endif
|
||||
|
@ -1,3 +1,5 @@
|
||||
rm -rf ver/*/expected
|
||||
|
||||
mkdir -p ver/us/expected/ver/us
|
||||
cp -r ver/us/build ver/us/expected/ver/us
|
||||
|
||||
|
230
src/16c8e0.c
230
src/16c8e0.c
@ -22,123 +22,157 @@ extern f32 D_8029EFB0;
|
||||
extern f32 D_8029EFB4;
|
||||
extern f32 D_8029EFB8;
|
||||
|
||||
EvtSource BtlPutPartnerAway = SCRIPT({
|
||||
DispatchEvent(ACTOR_PARTNER, 62);
|
||||
parallel {
|
||||
EVT_VAR(0) = 1.0;
|
||||
loop 10 {
|
||||
SetActorScale(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(0), 1.0);
|
||||
EVT_VAR(0) -= 0.1005859375;
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
EnablePartnerBlur();
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_E);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
SetActorJumpGravity(ACTOR_PARTNER, 1.0);
|
||||
SetGoalPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
JumpToGoal(ACTOR_PARTNER, 10, 0, 0, 1);
|
||||
DisablePartnerBlur();
|
||||
});
|
||||
EvtSource BtlPutPartnerAway = {
|
||||
EVT_CALL(DispatchEvent, 256, 62)
|
||||
EVT_CHILD_THREAD
|
||||
EVT_SETF(EVT_VAR(0), EVT_FIXED(1.0))
|
||||
EVT_LOOP(10)
|
||||
EVT_CALL(SetActorScale, 256, EVT_VAR(0), EVT_VAR(0), EVT_FIXED(1.0))
|
||||
EVT_SUBF(EVT_VAR(0), EVT_FIXED(0.1005859375))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_CALL(EnablePartnerBlur)
|
||||
EVT_CALL(PlaySoundAtActor, 0, 14)
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(SetActorJumpGravity, 256, EVT_FIXED(1.0))
|
||||
EVT_CALL(SetGoalPos, 256, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(JumpToGoal, 256, 10, 0, 0, 1)
|
||||
EVT_CALL(DisablePartnerBlur)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource BtlBringPartnerOut = SCRIPT({
|
||||
parallel {
|
||||
EVT_VAR(0) = 0.1005859375;
|
||||
loop 20 {
|
||||
SetActorScale(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(0), 1.0);
|
||||
EVT_VAR(0) += 0.05078125;
|
||||
sleep 1;
|
||||
}
|
||||
SetActorScale(ACTOR_PARTNER, 1.0, 1.0, 1.0);
|
||||
}
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_D);
|
||||
GetGoalPos(256, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetActorJumpGravity(ACTOR_PARTNER, 1.0);
|
||||
if (EVT_VAR(1) == 0) {
|
||||
JumpToGoal(ACTOR_PARTNER, 20, 0, 0, 1);
|
||||
} else {
|
||||
JumpToGoal(ACTOR_PARTNER, 20, 0, 0, 1);
|
||||
}
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
ForceHomePos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
});
|
||||
EvtSource BtlBringPartnerOut = {
|
||||
EVT_CHILD_THREAD
|
||||
EVT_SETF(EVT_VAR(0), EVT_FIXED(0.1005859375))
|
||||
EVT_LOOP(20)
|
||||
EVT_CALL(SetActorScale, 256, EVT_VAR(0), EVT_VAR(0), EVT_FIXED(1.0))
|
||||
EVT_ADDF(EVT_VAR(0), EVT_FIXED(0.05078125))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(SetActorScale, 256, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_CALL(PlaySoundAtActor, 0, 13)
|
||||
EVT_CALL(GetGoalPos, 256, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetActorJumpGravity, 256, EVT_FIXED(1.0))
|
||||
EVT_IF_EQ(EVT_VAR(1), 0)
|
||||
EVT_CALL(JumpToGoal, 256, 20, 0, 0, 1)
|
||||
EVT_ELSE
|
||||
EVT_CALL(JumpToGoal, 256, 20, 0, 0, 1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetActorPos, 256, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(ForceHomePos, 256, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s8 D_80280CE0[] = { 0, 0, 0, 0 };
|
||||
s32 D_80280CE4 = -1;
|
||||
|
||||
EvtSource CamPreset_B = SCRIPT({
|
||||
func_80248DD0();
|
||||
});
|
||||
EvtSource CamPreset_B = {
|
||||
EVT_CALL(func_80248DD0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_F = SCRIPT({
|
||||
func_80248DE4();
|
||||
});
|
||||
EvtSource CamPreset_F = {
|
||||
EVT_CALL(func_80248DE4)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_M = SCRIPT({
|
||||
func_80249804();
|
||||
});
|
||||
EvtSource CamPreset_M = {
|
||||
EVT_CALL(func_80249804)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_G = SCRIPT({
|
||||
func_8024A214();
|
||||
});
|
||||
EvtSource CamPreset_G = {
|
||||
EVT_CALL(func_8024A214)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_I = SCRIPT({
|
||||
func_8024A990();
|
||||
});
|
||||
EvtSource CamPreset_I = {
|
||||
EVT_CALL(func_8024A990)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_H = SCRIPT({
|
||||
func_8024AFE4();
|
||||
});
|
||||
EvtSource CamPreset_H = {
|
||||
EVT_CALL(func_8024AFE4)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_N = SCRIPT({
|
||||
func_8024B5FC();
|
||||
});
|
||||
EvtSource CamPreset_N = {
|
||||
EVT_CALL(func_8024B5FC)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_C = SCRIPT({
|
||||
func_8024B9A0();
|
||||
});
|
||||
EvtSource CamPreset_C = {
|
||||
EVT_CALL(func_8024B9A0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_D = SCRIPT({
|
||||
func_8024BDA4();
|
||||
});
|
||||
EvtSource CamPreset_D = {
|
||||
EVT_CALL(func_8024BDA4)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_E = SCRIPT({
|
||||
func_8024C180();
|
||||
});
|
||||
EvtSource CamPreset_E = {
|
||||
EVT_CALL(func_8024C180)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_J = SCRIPT({
|
||||
func_8024C570();
|
||||
});
|
||||
EvtSource CamPreset_J = {
|
||||
EVT_CALL(func_8024C570)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_K = SCRIPT({
|
||||
func_8024C944();
|
||||
});
|
||||
EvtSource CamPreset_K = {
|
||||
EVT_CALL(func_8024C944)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_L = SCRIPT({
|
||||
func_8024CB68();
|
||||
});
|
||||
EvtSource CamPreset_L = {
|
||||
EVT_CALL(func_8024CB68)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource CamPreset_A = SCRIPT({
|
||||
func_8024E9B0(0, 15, 0);
|
||||
func_8024E748(2, 550);
|
||||
func_8024E748(3, 100);
|
||||
func_8024E748(4, 8);
|
||||
});
|
||||
EvtSource CamPreset_A = {
|
||||
EVT_CALL(func_8024E9B0, 0, 15, 0)
|
||||
EVT_CALL(func_8024E748, 2, 550)
|
||||
EVT_CALL(func_8024E748, 3, 100)
|
||||
EVT_CALL(func_8024E748, 4, 8)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource D_80280EB8 = SCRIPT({
|
||||
SetCamPerspective(CAM_BATTLE, 6, 25, 16, 1024);
|
||||
SetCamViewport(CAM_BATTLE, 12, 20, 296, 200);
|
||||
SetCamBGColor(CAM_BATTLE, 0, 0, 0);
|
||||
SetCamEnabled(CAM_BATTLE, TRUE);
|
||||
sleep 1;
|
||||
InitVirtualEntityList();
|
||||
InitAnimatedModels();
|
||||
func_802CABE8(CAM_BATTLE, 0, 240, 100, 8);
|
||||
func_802CAE50(CAM_BATTLE, -75, 35, 0);
|
||||
BattleCamTargetActor(ACTOR_PLAYER);
|
||||
func_8024CE9C();
|
||||
});
|
||||
EvtSource D_80280EB8 = {
|
||||
EVT_CALL(SetCamPerspective, 1, 6, 25, 16, 1024)
|
||||
EVT_CALL(SetCamViewport, 1, 12, 20, 296, 200)
|
||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||
EVT_CALL(SetCamEnabled, 1, 1)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(InitVirtualEntityList)
|
||||
EVT_CALL(InitAnimatedModels)
|
||||
EVT_CALL(func_802CABE8, 1, 0, 240, 100, 8)
|
||||
EVT_CALL(func_802CAE50, 1, -75, 35, 0)
|
||||
EVT_CALL(BattleCamTargetActor, 0)
|
||||
EVT_CALL(func_8024CE9C)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
void get_dpad_input_radial(f32* angle, f32* magnitude) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
|
@ -106,351 +106,351 @@ EvtSource N(takeTurn_8021A300);
|
||||
EvtSource N(idle_802197F8);
|
||||
EvtSource N(handleEvent_80219AD4);
|
||||
|
||||
EvtSource N(init_802197AC) = SCRIPT({
|
||||
BindTakeTurn(ACTOR_SELF, N(takeTurn_8021A300));
|
||||
BindIdle(ACTOR_SELF, N(idle_802197F8));
|
||||
BindHandleEvent(ACTOR_SELF, N(handleEvent_80219AD4));
|
||||
});
|
||||
EvtSource N(init_802197AC) = {
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(takeTurn_8021A300)))
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(idle_802197F8)))
|
||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(handleEvent_80219AD4)))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(idle_802197F8) = SCRIPT({
|
||||
10:
|
||||
RandInt(80, EVT_VAR(0));
|
||||
EVT_VAR(0) += 80;
|
||||
loop EVT_VAR(0) {
|
||||
0:
|
||||
GetStatusFlags(ACTOR_SELF, EVT_VAR(1));
|
||||
if (EVT_VAR(1) & 3526656) {
|
||||
sleep 1;
|
||||
goto 0;
|
||||
}
|
||||
sleep 1;
|
||||
}
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 5;
|
||||
SetActorIdleSpeed(ACTOR_SELF, 1.0);
|
||||
SetIdleAnimations(ACTOR_SELF, 1, N(idleAnimations_80219760));
|
||||
SetIdleGoal(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
IdleRunToGoal(ACTOR_SELF, 0);
|
||||
SetIdleAnimations(ACTOR_SELF, 1, N(idleAnimations_80219714));
|
||||
loop 20 {
|
||||
1:
|
||||
GetStatusFlags(ACTOR_SELF, EVT_VAR(1));
|
||||
if (EVT_VAR(1) & 3526656) {
|
||||
sleep 1;
|
||||
goto 1;
|
||||
}
|
||||
sleep 1;
|
||||
}
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) -= 5;
|
||||
SetActorIdleSpeed(ACTOR_SELF, 1.0);
|
||||
SetIdleAnimations(ACTOR_SELF, 1, N(idleAnimations_80219760));
|
||||
SetIdleGoal(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
IdleRunToGoal(ACTOR_SELF, 0);
|
||||
SetIdleAnimations(ACTOR_SELF, 1, N(idleAnimations_80219714));
|
||||
loop 80 {
|
||||
2:
|
||||
GetStatusFlags(ACTOR_SELF, EVT_VAR(1));
|
||||
if (EVT_VAR(1) & 3526656) {
|
||||
sleep 1;
|
||||
goto 2;
|
||||
}
|
||||
sleep 1;
|
||||
}
|
||||
goto 10;
|
||||
});
|
||||
EvtSource N(idle_802197F8) = {
|
||||
EVT_LABEL(10)
|
||||
EVT_CALL(RandInt, 80, EVT_VAR(0))
|
||||
EVT_ADD(EVT_VAR(0), 80)
|
||||
EVT_LOOP(EVT_VAR(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, EVT_VAR(1))
|
||||
EVT_IF_FLAG(EVT_VAR(1), 0x35D000)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 5)
|
||||
EVT_CALL(SetActorIdleSpeed, ACTOR_SELF, EVT_FIXED(1.0))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_80219760)))
|
||||
EVT_CALL(SetIdleGoal, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(IdleRunToGoal, -127, 0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_80219714)))
|
||||
EVT_LOOP(20)
|
||||
EVT_LABEL(1)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, EVT_VAR(1))
|
||||
EVT_IF_FLAG(EVT_VAR(1), 0x35D000)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SUB(EVT_VAR(0), 5)
|
||||
EVT_CALL(SetActorIdleSpeed, ACTOR_SELF, EVT_FIXED(1.0))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_80219760)))
|
||||
EVT_CALL(SetIdleGoal, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(IdleRunToGoal, -127, 0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_80219714)))
|
||||
EVT_LOOP(80)
|
||||
EVT_LABEL(2)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, EVT_VAR(1))
|
||||
EVT_IF_FLAG(EVT_VAR(1), 0x35D000)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(2)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_GOTO(10)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(handleEvent_80219AD4) = SCRIPT({
|
||||
UseIdleAnimation(ACTOR_SELF, FALSE);
|
||||
EnableIdleScript(ACTOR_SELF, FALSE);
|
||||
SetActorScale(ACTOR_SELF, 1.0, 1.0, 1.0);
|
||||
GetLastEvent(ACTOR_SELF, EVT_VAR(0));
|
||||
match EVT_VAR(0) {
|
||||
EVENT_HIT_COMBO, EVENT_HIT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_pain;
|
||||
await DoNormalHit;
|
||||
}
|
||||
== EVENT_BURN_HIT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_burn_pain;
|
||||
EVT_VAR(2) = (const) NPC_ANIM_goomba_normal_burn_dead;
|
||||
await DoBurnHit;
|
||||
}
|
||||
== EVENT_BURN_DEATH {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_burn_pain;
|
||||
EVT_VAR(2) = (const) NPC_ANIM_goomba_normal_burn_dead;
|
||||
await DoBurnHit;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_burn_dead;
|
||||
await DoDeath;
|
||||
return;
|
||||
}
|
||||
== EVENT_SPIN_SMASH_HIT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_pain;
|
||||
await DoSpinSmashHit;
|
||||
}
|
||||
== EVENT_SPIN_SMASH_DEATH {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_pain;
|
||||
await DoSpinSmashHit;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_dead;
|
||||
await DoDeath;
|
||||
return;
|
||||
}
|
||||
== EVENT_SHOCK_HIT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_electrocute;
|
||||
await DoShockHit;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_pain;
|
||||
await DoJumpBack;
|
||||
JumpToGoal(ACTOR_SELF, 5, FALSE, TRUE, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 2.0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_dizzy);
|
||||
SetGoalToHome(ACTOR_SELF);
|
||||
SetActorSpeed(ACTOR_SELF, 8.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 1.0);
|
||||
sleep 5;
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle);
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.6);
|
||||
JumpToGoal(ACTOR_SELF, 5, FALSE, TRUE, FALSE);
|
||||
}
|
||||
== EVENT_SHOCK_DEATH {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_electrocute;
|
||||
await DoShockHit;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_dead;
|
||||
await DoDeath;
|
||||
return;
|
||||
}
|
||||
== EVENT_STAR_BEAM, 23, EVENT_IMMUNE, EVENT_AIR_LIFT_FAILED {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_idle;
|
||||
await DoImmune;
|
||||
}
|
||||
== EVENT_DEATH {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_pain;
|
||||
await DoNormalHit;
|
||||
sleep 10;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_dead;
|
||||
await DoDeath;
|
||||
return;
|
||||
}
|
||||
== EVENT_END_FIRST_STRIKE {
|
||||
SetAnimationRate(ACTOR_SELF, 1, 2.0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_run);
|
||||
SetGoalToHome(ACTOR_SELF);
|
||||
SetActorSpeed(ACTOR_SELF, 4.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 1.0);
|
||||
HPBarToHome(ACTOR_SELF);
|
||||
}
|
||||
== EVENT_RECOVER_STATUS {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_idle;
|
||||
await DoRecover;
|
||||
}
|
||||
== EVENT_SCARE_AWAY {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_run;
|
||||
EVT_VAR(2) = (const) NPC_ANIM_goomba_normal_pain;
|
||||
await DoScareAway;
|
||||
return;
|
||||
}
|
||||
== EVENT_BEGIN_AIR_LIFT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_run;
|
||||
await DoAirLift;
|
||||
}
|
||||
== EVENT_BLOW_AWAY {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_goomba_normal_pain;
|
||||
await DoBlowAway;
|
||||
return;
|
||||
}
|
||||
else {
|
||||
}
|
||||
}
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle);
|
||||
EnableIdleScript(ACTOR_SELF, TRUE);
|
||||
UseIdleAnimation(ACTOR_SELF, TRUE);
|
||||
});
|
||||
EvtSource N(handleEvent_80219AD4) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_CALL(GetLastEvent, ACTOR_SELF, EVT_VAR(0))
|
||||
EVT_SWITCH(EVT_VAR(0))
|
||||
EVT_CASE_OR_EQ(9)
|
||||
EVT_CASE_OR_EQ(10)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_pain)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(14)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_burn_pain)
|
||||
EVT_SET_CONST(EVT_VAR(2), NPC_ANIM_goomba_normal_burn_dead)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_CASE_EQ(36)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_burn_pain)
|
||||
EVT_SET_CONST(EVT_VAR(2), NPC_ANIM_goomba_normal_burn_dead)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_burn_dead)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(11)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_pain)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_CASE_EQ(33)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_pain)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_dead)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(47)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_electrocute)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_pain)
|
||||
EVT_EXEC_WAIT(DoJumpBack)
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(2.0))
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_dizzy)
|
||||
EVT_CALL(SetGoalToHome, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(8.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.6))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CASE_EQ(38)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_electrocute)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_dead)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(19)
|
||||
EVT_CASE_OR_EQ(23)
|
||||
EVT_CASE_OR_EQ(25)
|
||||
EVT_CASE_OR_EQ(31)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_idle)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(32)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_pain)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_dead)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(53)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(2.0))
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_run)
|
||||
EVT_CALL(SetGoalToHome, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(4.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(1.0))
|
||||
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||
EVT_CASE_EQ(49)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_idle)
|
||||
EVT_EXEC_WAIT(DoRecover)
|
||||
EVT_CASE_EQ(57)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_run)
|
||||
EVT_SET_CONST(EVT_VAR(2), NPC_ANIM_goomba_normal_pain)
|
||||
EVT_EXEC_WAIT(DoScareAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(58)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_run)
|
||||
EVT_EXEC_WAIT(DoAirLift)
|
||||
EVT_CASE_EQ(22)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_goomba_normal_pain)
|
||||
EVT_EXEC_WAIT(DoBlowAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_DEFAULT
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
#include "anglestuff.inc.c"
|
||||
|
||||
EvtSource N(takeTurn_8021A300) = SCRIPT({
|
||||
UseIdleAnimation(ACTOR_SELF, FALSE);
|
||||
EnableIdleScript(ACTOR_SELF, FALSE);
|
||||
SetTargetActor(ACTOR_SELF, ACTOR_PLAYER);
|
||||
UseBattleCamPreset(63);
|
||||
BattleCamTargetActor(ACTOR_SELF);
|
||||
func_8024ECF8(-1, 1, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_run);
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
AddGoalPos(ACTOR_SELF, 50, 0, 0);
|
||||
SetActorSpeed(ACTOR_SELF, 6.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, -1, 0);
|
||||
sleep 1;
|
||||
SetActorDispOffset(ACTOR_SELF, 0, -2, 0);
|
||||
sleep 5;
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 0, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk);
|
||||
EnemyTestTarget(ACTOR_SELF, EVT_VAR(0), ((0)), 0, 1, 16);
|
||||
match EVT_VAR(0) {
|
||||
HIT_RESULT_MISS, HIT_RESULT_LUCKY {
|
||||
EVT_VAR(10) = EVT_VAR(0);
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) -= 10;
|
||||
EVT_VAR(1) = 10;
|
||||
EVT_VAR(2) += 3;
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.2);
|
||||
spawn {
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(1), EVT_VAR(2), EVT_VAR(0));
|
||||
EVT_VAR(0) = 0;
|
||||
loop 16 {
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(4), EVT_VAR(5), EVT_VAR(6));
|
||||
N(AngleCalculate)(EVT_VAR(1), EVT_VAR(2), EVT_VAR(4), EVT_VAR(5), EVT_VAR(0));
|
||||
SetActorRotation(ACTOR_SELF, 0, 0, EVT_VAR(0));
|
||||
EVT_VAR(1) = EVT_VAR(4);
|
||||
EVT_VAR(2) = EVT_VAR(5);
|
||||
EVT_VAR(3) = EVT_VAR(6);
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
spawn {
|
||||
sleep 6;
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk);
|
||||
}
|
||||
JumpToGoal(ACTOR_SELF, 16, FALSE, TRUE, FALSE);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_asleep);
|
||||
SetActorScale(ACTOR_SELF, 1.1, 0.8, 1.0);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 5, 0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.3, 0.5, 1.0);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, -2, 0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.0, 1.0, 1.0);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 7, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_pain);
|
||||
sleep 5;
|
||||
if (EVT_VAR(10) == 5) {
|
||||
EnemyTestTarget(ACTOR_SELF, EVT_VAR(0), ((0x80000000)), 0, 0, 0);
|
||||
}
|
||||
sleep 5;
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 0, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk);
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 20;
|
||||
EVT_VAR(1) = 0;
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetActorJumpGravity(ACTOR_SELF, 2.0);
|
||||
spawn {
|
||||
sleep 4;
|
||||
EVT_VAR(0) = 180;
|
||||
loop 4 {
|
||||
EVT_VAR(0) -= 45;
|
||||
SetActorRotation(ACTOR_SELF, 0, 0, EVT_VAR(0));
|
||||
sleep 1;
|
||||
}
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk);
|
||||
}
|
||||
JumpToGoal(ACTOR_SELF, 15, FALSE, TRUE, FALSE);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_dizzy);
|
||||
sleep 5;
|
||||
UseBattleCamPreset(2);
|
||||
YieldTurn();
|
||||
SetActorYaw(ACTOR_SELF, 180);
|
||||
AddActorDecoration(ACTOR_SELF, 1, 0, 2);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 2.0);
|
||||
SetGoalToHome(ACTOR_SELF);
|
||||
SetActorSpeed(ACTOR_SELF, 8.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 1.0);
|
||||
SetActorYaw(ACTOR_SELF, 0);
|
||||
sleep 5;
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle);
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.6);
|
||||
JumpToGoal(ACTOR_SELF, 5, FALSE, TRUE, FALSE);
|
||||
RemoveActorDecoration(ACTOR_SELF, 1, 0);
|
||||
EnableIdleScript(ACTOR_SELF, TRUE);
|
||||
UseIdleAnimation(ACTOR_SELF, TRUE);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.2);
|
||||
spawn {
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(1), EVT_VAR(2), EVT_VAR(0));
|
||||
EVT_VAR(0) = 0;
|
||||
loop 16 {
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(4), EVT_VAR(5), EVT_VAR(6));
|
||||
N(AngleCalculate)(EVT_VAR(1), EVT_VAR(2), EVT_VAR(4), EVT_VAR(5), EVT_VAR(0));
|
||||
SetActorRotation(ACTOR_SELF, 0, 0, EVT_VAR(0));
|
||||
EVT_VAR(1) = EVT_VAR(4);
|
||||
EVT_VAR(2) = EVT_VAR(5);
|
||||
EVT_VAR(3) = EVT_VAR(6);
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
spawn {
|
||||
sleep 6;
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk);
|
||||
}
|
||||
JumpToGoal(ACTOR_SELF, 16, FALSE, TRUE, FALSE);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_pre_headbonk);
|
||||
SetActorScale(ACTOR_SELF, 1.1, 0.8, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.3, 0.5, 1.0);
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
EnemyDamageTarget(ACTOR_SELF, EVT_VAR(0), ((0)), 0, 0, 1, 32);
|
||||
match EVT_VAR(0) {
|
||||
HIT_RESULT_HIT, 2 {
|
||||
UseBattleCamPreset(2);
|
||||
SetActorScale(ACTOR_SELF, 1.1, 0.8, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.0, 1.0, 1.0);
|
||||
sleep 1;
|
||||
SetActorRotation(ACTOR_SELF, 0, 0, 0);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 0, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 40;
|
||||
EVT_VAR(1) = 0;
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.8);
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
JumpToGoal(ACTOR_SELF, 10, FALSE, TRUE, FALSE);
|
||||
EVT_VAR(0) += 30;
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
JumpToGoal(ACTOR_SELF, 8, FALSE, TRUE, FALSE);
|
||||
EVT_VAR(0) += 20;
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
JumpToGoal(ACTOR_SELF, 6, FALSE, TRUE, FALSE);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle);
|
||||
sleep 3;
|
||||
YieldTurn();
|
||||
SetAnimationRate(ACTOR_SELF, 1, 2.0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_goomba_normal_run);
|
||||
SetGoalToHome(ACTOR_SELF);
|
||||
SetActorSpeed(ACTOR_SELF, 8.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 1.0);
|
||||
}
|
||||
}
|
||||
EnableIdleScript(ACTOR_SELF, TRUE);
|
||||
UseIdleAnimation(ACTOR_SELF, TRUE);
|
||||
});
|
||||
EvtSource N(takeTurn_8021A300) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(UseBattleCamPreset, 63)
|
||||
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_run)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(AddGoalPos, ACTOR_SELF, 50, 0, 0)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(6.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -2, 0)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, EVT_VAR(0), ((0)), 0, 1, 16)
|
||||
EVT_SWITCH(EVT_VAR(0))
|
||||
EVT_CASE_OR_EQ(6)
|
||||
EVT_CASE_OR_EQ(5)
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(0))
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SUB(EVT_VAR(0), 10)
|
||||
EVT_SET(EVT_VAR(1), 10)
|
||||
EVT_ADD(EVT_VAR(2), 3)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.2))
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(1), EVT_VAR(2), EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(16)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(4), EVT_VAR(5), EVT_VAR(6))
|
||||
EVT_CALL(N(AngleCalculate), EVT_VAR(1), EVT_VAR(2), EVT_VAR(4), EVT_VAR(5), EVT_VAR(0))
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(4))
|
||||
EVT_SET(EVT_VAR(2), EVT_VAR(5))
|
||||
EVT_SET(EVT_VAR(3), EVT_VAR(6))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(6)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 16, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_asleep)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.1), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 5, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.3), EVT_FIXED(0.5), EVT_FIXED(1.0))
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 7, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_pain)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_IF_EQ(EVT_VAR(10), 5)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, EVT_VAR(0), ((0x80000000)), 0, 0, 0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_SET(EVT_VAR(1), 0)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(2.0))
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(4)
|
||||
EVT_SET(EVT_VAR(0), 180)
|
||||
EVT_LOOP(4)
|
||||
EVT_SUB(EVT_VAR(0), 45)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 15, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_dizzy)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(2.0))
|
||||
EVT_CALL(SetGoalToHome, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(8.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(1.0))
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.6))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_DEFAULT
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.2))
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(1), EVT_VAR(2), EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(16)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(4), EVT_VAR(5), EVT_VAR(6))
|
||||
EVT_CALL(N(AngleCalculate), EVT_VAR(1), EVT_VAR(2), EVT_VAR(4), EVT_VAR(5), EVT_VAR(0))
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(4))
|
||||
EVT_SET(EVT_VAR(2), EVT_VAR(5))
|
||||
EVT_SET(EVT_VAR(3), EVT_VAR(6))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(6)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_headbonk)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 16, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_pre_headbonk)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.1), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.3), EVT_FIXED(0.5), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, EVT_VAR(0), ((0)), 0, 0, 1, 32)
|
||||
EVT_SWITCH(EVT_VAR(0))
|
||||
EVT_CASE_OR_EQ(0)
|
||||
EVT_CASE_OR_EQ(2)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.1), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 40)
|
||||
EVT_SET(EVT_VAR(1), 0)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.8))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(EVT_VAR(0), 30)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_idle)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(2.0))
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_goomba_normal_run)
|
||||
EVT_CALL(SetGoalToHome, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(8.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(1.0))
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -106,373 +106,372 @@ EvtSource N(takeTurn_8021BDDC);
|
||||
EvtSource N(idle_8021B1B8);
|
||||
EvtSource N(handleEvent_8021B494);
|
||||
|
||||
EvtSource N(init_8021B16C) = SCRIPT({
|
||||
BindTakeTurn(ACTOR_SELF, N(takeTurn_8021BDDC));
|
||||
BindIdle(ACTOR_SELF, N(idle_8021B1B8));
|
||||
BindHandleEvent(ACTOR_SELF, N(handleEvent_8021B494));
|
||||
});
|
||||
EvtSource N(init_8021B16C) = {
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(takeTurn_8021BDDC)))
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(idle_8021B1B8)))
|
||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(handleEvent_8021B494)))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(idle_8021B1B8) = SCRIPT({
|
||||
10:
|
||||
RandInt(80, EVT_VAR(0));
|
||||
EVT_VAR(0) += 80;
|
||||
loop EVT_VAR(0) {
|
||||
0:
|
||||
GetStatusFlags(ACTOR_SELF, EVT_VAR(1));
|
||||
if (EVT_VAR(1) & 3526656) {
|
||||
sleep 1;
|
||||
goto 0;
|
||||
}
|
||||
sleep 1;
|
||||
}
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 5;
|
||||
SetActorIdleSpeed(ACTOR_SELF, 1.0);
|
||||
SetIdleAnimations(ACTOR_SELF, 1, N(idleAnimations_8021B120));
|
||||
SetIdleGoal(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
IdleRunToGoal(ACTOR_SELF, 0);
|
||||
SetIdleAnimations(ACTOR_SELF, 1, N(idleAnimations_8021B0D4));
|
||||
loop 20 {
|
||||
1:
|
||||
GetStatusFlags(ACTOR_SELF, EVT_VAR(1));
|
||||
if (EVT_VAR(1) & 3526656) {
|
||||
sleep 1;
|
||||
goto 1;
|
||||
}
|
||||
sleep 1;
|
||||
}
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) -= 5;
|
||||
SetActorIdleSpeed(ACTOR_SELF, 1.0);
|
||||
SetIdleAnimations(ACTOR_SELF, 1, N(idleAnimations_8021B120));
|
||||
SetIdleGoal(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
IdleRunToGoal(ACTOR_SELF, 0);
|
||||
SetIdleAnimations(ACTOR_SELF, 1, N(idleAnimations_8021B0D4));
|
||||
loop 80 {
|
||||
2:
|
||||
GetStatusFlags(ACTOR_SELF, EVT_VAR(1));
|
||||
if (EVT_VAR(1) & 3526656) {
|
||||
sleep 1;
|
||||
goto 2;
|
||||
}
|
||||
sleep 1;
|
||||
}
|
||||
goto 10;
|
||||
});
|
||||
EvtSource N(idle_8021B1B8) = {
|
||||
EVT_LABEL(10)
|
||||
EVT_CALL(RandInt, 80, EVT_VAR(0))
|
||||
EVT_ADD(EVT_VAR(0), 80)
|
||||
EVT_LOOP(EVT_VAR(0))
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, EVT_VAR(1))
|
||||
EVT_IF_FLAG(EVT_VAR(1), 0x35D000)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 5)
|
||||
EVT_CALL(SetActorIdleSpeed, ACTOR_SELF, EVT_FIXED(1.0))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_8021B120)))
|
||||
EVT_CALL(SetIdleGoal, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(IdleRunToGoal, -127, 0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_8021B0D4)))
|
||||
EVT_LOOP(20)
|
||||
EVT_LABEL(1)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, EVT_VAR(1))
|
||||
EVT_IF_FLAG(EVT_VAR(1), 0x35D000)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SUB(EVT_VAR(0), 5)
|
||||
EVT_CALL(SetActorIdleSpeed, ACTOR_SELF, EVT_FIXED(1.0))
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_8021B120)))
|
||||
EVT_CALL(SetIdleGoal, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(IdleRunToGoal, -127, 0)
|
||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_8021B0D4)))
|
||||
EVT_LOOP(80)
|
||||
EVT_LABEL(2)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, EVT_VAR(1))
|
||||
EVT_IF_FLAG(EVT_VAR(1), 0x35D000)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(2)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_GOTO(10)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(handleEvent_8021B494) = SCRIPT({
|
||||
UseIdleAnimation(ACTOR_SELF, FALSE);
|
||||
EnableIdleScript(ACTOR_SELF, FALSE);
|
||||
SetActorScale(ACTOR_SELF, 1.0, 1.0, 1.0);
|
||||
GetLastEvent(ACTOR_SELF, EVT_VAR(0));
|
||||
match EVT_VAR(0) {
|
||||
EVENT_HIT_COMBO, EVENT_HIT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_pain;
|
||||
await DoNormalHit;
|
||||
}
|
||||
== EVENT_BURN_HIT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_burn_dead;
|
||||
EVT_VAR(2) = (const) NPC_ANIM_spiked_goomba_default_burn_pain;
|
||||
await DoBurnHit;
|
||||
}
|
||||
== EVENT_BURN_DEATH {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_burn_dead;
|
||||
EVT_VAR(2) = (const) NPC_ANIM_spiked_goomba_default_burn_pain;
|
||||
await DoBurnHit;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_burn_pain;
|
||||
await DoDeath;
|
||||
return;
|
||||
}
|
||||
== EVENT_SPIN_SMASH_HIT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_pain;
|
||||
await DoSpinSmashHit;
|
||||
}
|
||||
== EVENT_SPIN_SMASH_DEATH {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_pain;
|
||||
await DoSpinSmashHit;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_dead;
|
||||
await DoDeath;
|
||||
return;
|
||||
}
|
||||
== EVENT_SHOCK_HIT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_electrocute;
|
||||
await DoShockHit;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_pain;
|
||||
await DoJumpBack;
|
||||
JumpToGoal(ACTOR_SELF, 5, FALSE, TRUE, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 2.0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_dizzy);
|
||||
SetGoalToHome(ACTOR_SELF);
|
||||
SetActorSpeed(ACTOR_SELF, 8.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 1.0);
|
||||
sleep 5;
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle);
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.6);
|
||||
JumpToGoal(ACTOR_SELF, 5, FALSE, TRUE, FALSE);
|
||||
}
|
||||
== EVENT_SHOCK_DEATH {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_electrocute;
|
||||
await DoShockHit;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_dead;
|
||||
await DoDeath;
|
||||
return;
|
||||
}
|
||||
== EVENT_STAR_BEAM, 23, EVENT_IMMUNE, EVENT_AIR_LIFT_FAILED {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_idle;
|
||||
await DoImmune;
|
||||
}
|
||||
== EVENT_DEATH {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_pain;
|
||||
await DoNormalHit;
|
||||
sleep 10;
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_dead;
|
||||
await DoDeath;
|
||||
return;
|
||||
}
|
||||
== EVENT_END_FIRST_STRIKE {
|
||||
SetAnimationRate(ACTOR_SELF, 1, 2.0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_run);
|
||||
SetGoalToHome(ACTOR_SELF);
|
||||
SetActorSpeed(ACTOR_SELF, 4.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 1.0);
|
||||
HPBarToHome(ACTOR_SELF);
|
||||
}
|
||||
== EVENT_RECOVER_STATUS {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_idle;
|
||||
await DoRecover;
|
||||
}
|
||||
== EVENT_SCARE_AWAY {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_run;
|
||||
EVT_VAR(2) = (const) NPC_ANIM_spiked_goomba_default_pain;
|
||||
await DoScareAway;
|
||||
return;
|
||||
}
|
||||
== EVENT_BEGIN_AIR_LIFT {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_run;
|
||||
await DoAirLift;
|
||||
}
|
||||
== EVENT_BLOW_AWAY {
|
||||
EVT_VAR(0) = (const) 1;
|
||||
EVT_VAR(1) = (const) NPC_ANIM_spiked_goomba_default_pain;
|
||||
await DoBlowAway;
|
||||
return;
|
||||
}
|
||||
== EVENT_SPIKE_TAUNT {
|
||||
GetStatusFlags(ACTOR_SELF, EVT_VAR(0));
|
||||
if (EVT_VAR(0) !& 3526656) {
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_laugh);
|
||||
}
|
||||
sleep 10;
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
GetStatusFlags(ACTOR_SELF, EVT_VAR(3));
|
||||
if (EVT_VAR(3) & 524288) {
|
||||
EVT_VAR(1) += 10;
|
||||
} else {
|
||||
EVT_VAR(1) += 26;
|
||||
}
|
||||
PlayEffect(0x1A, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
sleep 20;
|
||||
}
|
||||
else {
|
||||
}
|
||||
}
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle);
|
||||
EnableIdleScript(ACTOR_SELF, TRUE);
|
||||
UseIdleAnimation(ACTOR_SELF, TRUE);
|
||||
});
|
||||
EvtSource N(handleEvent_8021B494) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_CALL(GetLastEvent, ACTOR_SELF, EVT_VAR(0))
|
||||
EVT_SWITCH(EVT_VAR(0))
|
||||
EVT_CASE_OR_EQ(9)
|
||||
EVT_CASE_OR_EQ(10)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_pain)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(14)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_burn_dead)
|
||||
EVT_SET_CONST(EVT_VAR(2), NPC_ANIM_spiked_goomba_default_burn_pain)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_CASE_EQ(36)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_burn_dead)
|
||||
EVT_SET_CONST(EVT_VAR(2), NPC_ANIM_spiked_goomba_default_burn_pain)
|
||||
EVT_EXEC_WAIT(DoBurnHit)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_burn_pain)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(11)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_pain)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_CASE_EQ(33)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_pain)
|
||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_dead)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(47)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_electrocute)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_pain)
|
||||
EVT_EXEC_WAIT(DoJumpBack)
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(2.0))
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_dizzy)
|
||||
EVT_CALL(SetGoalToHome, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(8.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.6))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CASE_EQ(38)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_electrocute)
|
||||
EVT_EXEC_WAIT(DoShockHit)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_dead)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(19)
|
||||
EVT_CASE_OR_EQ(23)
|
||||
EVT_CASE_OR_EQ(25)
|
||||
EVT_CASE_OR_EQ(31)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_idle)
|
||||
EVT_EXEC_WAIT(DoImmune)
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(32)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_pain)
|
||||
EVT_EXEC_WAIT(DoNormalHit)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_dead)
|
||||
EVT_EXEC_WAIT(DoDeath)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(53)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(2.0))
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_run)
|
||||
EVT_CALL(SetGoalToHome, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(4.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(1.0))
|
||||
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||
EVT_CASE_EQ(49)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_idle)
|
||||
EVT_EXEC_WAIT(DoRecover)
|
||||
EVT_CASE_EQ(57)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_run)
|
||||
EVT_SET_CONST(EVT_VAR(2), NPC_ANIM_spiked_goomba_default_pain)
|
||||
EVT_EXEC_WAIT(DoScareAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(58)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_run)
|
||||
EVT_EXEC_WAIT(DoAirLift)
|
||||
EVT_CASE_EQ(22)
|
||||
EVT_SET_CONST(EVT_VAR(0), 0x00000001)
|
||||
EVT_SET_CONST(EVT_VAR(1), NPC_ANIM_spiked_goomba_default_pain)
|
||||
EVT_EXEC_WAIT(DoBlowAway)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(27)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, EVT_VAR(0))
|
||||
EVT_IF_NOT_FLAG(EVT_VAR(0), 0x35D000)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_laugh)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, EVT_VAR(3))
|
||||
EVT_IF_FLAG(EVT_VAR(3), 0x80000)
|
||||
EVT_ADD(EVT_VAR(1), 10)
|
||||
EVT_ELSE
|
||||
EVT_ADD(EVT_VAR(1), 26)
|
||||
EVT_END_IF
|
||||
EVT_CALL(PlayEffect, 0x1A, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CASE_DEFAULT
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
#include "anglestuff.inc.c"
|
||||
|
||||
EvtSource N(takeTurn_8021BDDC) = SCRIPT({
|
||||
UseIdleAnimation(ACTOR_SELF, FALSE);
|
||||
EnableIdleScript(ACTOR_SELF, FALSE);
|
||||
SetTargetActor(ACTOR_SELF, ACTOR_PLAYER);
|
||||
UseBattleCamPreset(63);
|
||||
BattleCamTargetActor(ACTOR_SELF);
|
||||
func_8024ECF8(-1, 1, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_run);
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
AddGoalPos(ACTOR_SELF, 50, 0, 0);
|
||||
SetActorSpeed(ACTOR_SELF, 6.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, -1, 0);
|
||||
sleep 1;
|
||||
SetActorDispOffset(ACTOR_SELF, 0, -2, 0);
|
||||
sleep 5;
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 0, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk);
|
||||
EnemyTestTarget(ACTOR_SELF, EVT_VAR(0), ((0)), 0, 1, 16);
|
||||
match EVT_VAR(0) {
|
||||
HIT_RESULT_MISS, HIT_RESULT_LUCKY {
|
||||
EVT_VAR(10) = EVT_VAR(0);
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) -= 10;
|
||||
EVT_VAR(1) = 10;
|
||||
EVT_VAR(2) += 3;
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.2);
|
||||
spawn {
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(1), EVT_VAR(2), EVT_VAR(0));
|
||||
EVT_VAR(0) = 0;
|
||||
loop 16 {
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(4), EVT_VAR(5), EVT_VAR(6));
|
||||
N(AngleCalculate)(EVT_VAR(1), EVT_VAR(2), EVT_VAR(4), EVT_VAR(5), EVT_VAR(0));
|
||||
SetActorRotation(ACTOR_SELF, 0, 0, EVT_VAR(0));
|
||||
EVT_VAR(1) = EVT_VAR(4);
|
||||
EVT_VAR(2) = EVT_VAR(5);
|
||||
EVT_VAR(3) = EVT_VAR(6);
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
spawn {
|
||||
sleep 6;
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk);
|
||||
}
|
||||
JumpToGoal(ACTOR_SELF, 16, FALSE, TRUE, FALSE);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_sleep);
|
||||
SetActorScale(ACTOR_SELF, 1.1, 0.8, 1.0);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 5, 0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.3, 0.5, 1.0);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, -2, 0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.0, 1.0, 1.0);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 7, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_pain);
|
||||
sleep 5;
|
||||
if (EVT_VAR(10) == 5) {
|
||||
EnemyTestTarget(ACTOR_SELF, EVT_VAR(0), ((0x80000000)), 0, 0, 0);
|
||||
}
|
||||
sleep 5;
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 0, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk);
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 20;
|
||||
EVT_VAR(1) = 0;
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetActorJumpGravity(ACTOR_SELF, 2.0);
|
||||
spawn {
|
||||
sleep 4;
|
||||
EVT_VAR(0) = 180;
|
||||
loop 4 {
|
||||
EVT_VAR(0) -= 45;
|
||||
SetActorRotation(ACTOR_SELF, 0, 0, EVT_VAR(0));
|
||||
sleep 1;
|
||||
}
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk);
|
||||
}
|
||||
JumpToGoal(ACTOR_SELF, 15, FALSE, TRUE, FALSE);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_dizzy);
|
||||
sleep 5;
|
||||
UseBattleCamPreset(2);
|
||||
YieldTurn();
|
||||
SetActorYaw(ACTOR_SELF, 180);
|
||||
AddActorDecoration(ACTOR_SELF, 1, 0, 2);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 2.0);
|
||||
SetGoalToHome(ACTOR_SELF);
|
||||
SetActorSpeed(ACTOR_SELF, 8.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 1.0);
|
||||
SetActorYaw(ACTOR_SELF, 0);
|
||||
sleep 5;
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle);
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.6);
|
||||
JumpToGoal(ACTOR_SELF, 5, FALSE, TRUE, FALSE);
|
||||
RemoveActorDecoration(ACTOR_SELF, 1, 0);
|
||||
EnableIdleScript(ACTOR_SELF, TRUE);
|
||||
UseIdleAnimation(ACTOR_SELF, TRUE);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.2);
|
||||
spawn {
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(1), EVT_VAR(2), EVT_VAR(0));
|
||||
EVT_VAR(0) = 0;
|
||||
loop 16 {
|
||||
GetActorPos(ACTOR_SELF, EVT_VAR(4), EVT_VAR(5), EVT_VAR(6));
|
||||
N(AngleCalculate)(EVT_VAR(1), EVT_VAR(2), EVT_VAR(4), EVT_VAR(5), EVT_VAR(0));
|
||||
SetActorRotation(ACTOR_SELF, 0, 0, EVT_VAR(0));
|
||||
EVT_VAR(1) = EVT_VAR(4);
|
||||
EVT_VAR(2) = EVT_VAR(5);
|
||||
EVT_VAR(3) = EVT_VAR(6);
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
spawn {
|
||||
sleep 6;
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk);
|
||||
}
|
||||
JumpToGoal(ACTOR_SELF, 16, FALSE, TRUE, FALSE);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk);
|
||||
SetActorScale(ACTOR_SELF, 1.1, 0.8, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.3, 0.5, 1.0);
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
EnemyDamageTarget(ACTOR_SELF, EVT_VAR(0), ((0)), 0, 0, 2, 32);
|
||||
match EVT_VAR(0) {
|
||||
HIT_RESULT_HIT, 2 {
|
||||
UseBattleCamPreset(2);
|
||||
SetActorScale(ACTOR_SELF, 1.1, 0.8, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.0, 1.0, 1.0);
|
||||
sleep 1;
|
||||
SetActorRotation(ACTOR_SELF, 0, 0, 0);
|
||||
SetActorDispOffset(ACTOR_SELF, 0, 0, 0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 40;
|
||||
EVT_VAR(1) = 0;
|
||||
SetActorJumpGravity(ACTOR_SELF, 1.8);
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
JumpToGoal(ACTOR_SELF, 10, FALSE, TRUE, FALSE);
|
||||
EVT_VAR(0) += 30;
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
JumpToGoal(ACTOR_SELF, 8, FALSE, TRUE, FALSE);
|
||||
EVT_VAR(0) += 20;
|
||||
SetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
JumpToGoal(ACTOR_SELF, 6, FALSE, TRUE, FALSE);
|
||||
GetLastDamage(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) > 0) {
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_laugh);
|
||||
sleep 15;
|
||||
} else {
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle);
|
||||
sleep 3;
|
||||
}
|
||||
YieldTurn();
|
||||
SetAnimationRate(ACTOR_SELF, 1, 2.0);
|
||||
SetAnimation(ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_run);
|
||||
SetGoalToHome(ACTOR_SELF);
|
||||
SetActorSpeed(ACTOR_SELF, 8.0);
|
||||
RunToGoal(ACTOR_SELF, 0, FALSE);
|
||||
SetAnimationRate(ACTOR_SELF, 1, 1.0);
|
||||
}
|
||||
}
|
||||
EnableIdleScript(ACTOR_SELF, TRUE);
|
||||
UseIdleAnimation(ACTOR_SELF, TRUE);
|
||||
});
|
||||
EvtSource N(takeTurn_8021BDDC) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(UseBattleCamPreset, 63)
|
||||
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_run)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(AddGoalPos, ACTOR_SELF, 50, 0, 0)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(6.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -2, 0)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, EVT_VAR(0), ((0)), 0, 1, 16)
|
||||
EVT_SWITCH(EVT_VAR(0))
|
||||
EVT_CASE_OR_EQ(6)
|
||||
EVT_CASE_OR_EQ(5)
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(0))
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SUB(EVT_VAR(0), 10)
|
||||
EVT_SET(EVT_VAR(1), 10)
|
||||
EVT_ADD(EVT_VAR(2), 3)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.2))
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(1), EVT_VAR(2), EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(16)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(4), EVT_VAR(5), EVT_VAR(6))
|
||||
EVT_CALL(N(AngleCalculate), EVT_VAR(1), EVT_VAR(2), EVT_VAR(4), EVT_VAR(5), EVT_VAR(0))
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(4))
|
||||
EVT_SET(EVT_VAR(2), EVT_VAR(5))
|
||||
EVT_SET(EVT_VAR(3), EVT_VAR(6))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(6)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 16, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_sleep)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.1), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 5, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.3), EVT_FIXED(0.5), EVT_FIXED(1.0))
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, -2, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 7, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_pain)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_IF_EQ(EVT_VAR(10), 5)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, EVT_VAR(0), ((0x80000000)), 0, 0, 0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_SET(EVT_VAR(1), 0)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(2.0))
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(4)
|
||||
EVT_SET(EVT_VAR(0), 180)
|
||||
EVT_LOOP(4)
|
||||
EVT_SUB(EVT_VAR(0), 45)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 15, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_dizzy)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 2)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(2.0))
|
||||
EVT_CALL(SetGoalToHome, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(8.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(1.0))
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.6))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, 1, 0)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_DEFAULT
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.2))
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(1), EVT_VAR(2), EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(16)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, EVT_VAR(4), EVT_VAR(5), EVT_VAR(6))
|
||||
EVT_CALL(N(AngleCalculate), EVT_VAR(1), EVT_VAR(2), EVT_VAR(4), EVT_VAR(5), EVT_VAR(0))
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(4))
|
||||
EVT_SET(EVT_VAR(2), EVT_VAR(5))
|
||||
EVT_SET(EVT_VAR(3), EVT_VAR(6))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(6)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 16, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_headbonk)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.1), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.3), EVT_FIXED(0.5), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, EVT_VAR(0), ((0)), 0, 0, 2, 32)
|
||||
EVT_SWITCH(EVT_VAR(0))
|
||||
EVT_CASE_OR_EQ(0)
|
||||
EVT_CASE_OR_EQ(2)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.1), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorRotation, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 40)
|
||||
EVT_SET(EVT_VAR(1), 0)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FIXED(1.8))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(EVT_VAR(0), 30)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
|
||||
EVT_CALL(GetLastDamage, 0, EVT_VAR(0))
|
||||
EVT_IF_GT(EVT_VAR(0), 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_laugh)
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_ELSE
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_idle)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_END_IF
|
||||
EVT_CALL(YieldTurn)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(2.0))
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_spiked_goomba_default_run)
|
||||
EVT_CALL(SetGoalToHome, ACTOR_SELF)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FIXED(8.0))
|
||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||
EVT_CALL(SetAnimationRate, ACTOR_SELF, 1, EVT_FIXED(1.0))
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -1,59 +1,65 @@
|
||||
#include "common/UnkAngleFunc2.inc.c"
|
||||
|
||||
EvtSource N(clouds1) = SCRIPT({
|
||||
EVT_VAR(10) = EVT_VAR(0);
|
||||
EVT_VAR(7) = EVT_VAR(2);
|
||||
EVT_VAR(7) *= 10;
|
||||
0:
|
||||
EVT_VAR(7) += 4;
|
||||
if (EVT_VAR(7) > 3599) {
|
||||
EVT_VAR(7) -= 3600;
|
||||
}
|
||||
N(UnkAngleFunc2)(EVT_VAR(7), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
TranslateModel(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
RotateModel(EVT_VAR(10), EVT_VAR(3), 0, 1, 0);
|
||||
sleep 1;
|
||||
goto 0;
|
||||
});
|
||||
EvtSource N(clouds1) = {
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(7), EVT_VAR(2))
|
||||
EVT_MUL(EVT_VAR(7), 10)
|
||||
EVT_LABEL(0)
|
||||
EVT_ADD(EVT_VAR(7), 4)
|
||||
EVT_IF_GT(EVT_VAR(7), 3599)
|
||||
EVT_SUB(EVT_VAR(7), 3600)
|
||||
EVT_END_IF
|
||||
EVT_CALL(N(UnkAngleFunc2), EVT_VAR(7), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_CALL(TranslateModel, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(RotateModel, EVT_VAR(10), EVT_VAR(3), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(clouds2) = SCRIPT({
|
||||
EVT_VAR(10) = EVT_VAR(0);
|
||||
EVT_VAR(11) = EVT_VAR(3);
|
||||
EVT_VAR(12) = EVT_VAR(4);
|
||||
EVT_VAR(7) = EVT_VAR(2);
|
||||
EVT_VAR(7) *= 10;
|
||||
0:
|
||||
EVT_VAR(7) += 4;
|
||||
if (EVT_VAR(7) > 3599) {
|
||||
EVT_VAR(7) -= 3600;
|
||||
}
|
||||
N(UnkAngleFunc2)(EVT_VAR(7), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
EVT_VAR(1) += (float) EVT_VAR(11);
|
||||
EVT_VAR(2) += (float) EVT_VAR(12);
|
||||
TranslateModel(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
RotateModel(EVT_VAR(10), EVT_VAR(3), 0, 1, 0);
|
||||
sleep 1;
|
||||
goto 0;
|
||||
});
|
||||
EvtSource N(clouds2) = {
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(11), EVT_VAR(3))
|
||||
EVT_SET(EVT_VAR(12), EVT_VAR(4))
|
||||
EVT_SET(EVT_VAR(7), EVT_VAR(2))
|
||||
EVT_MUL(EVT_VAR(7), 10)
|
||||
EVT_LABEL(0)
|
||||
EVT_ADD(EVT_VAR(7), 4)
|
||||
EVT_IF_GT(EVT_VAR(7), 3599)
|
||||
EVT_SUB(EVT_VAR(7), 3600)
|
||||
EVT_END_IF
|
||||
EVT_CALL(N(UnkAngleFunc2), EVT_VAR(7), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_ADDF(EVT_VAR(1), EVT_VAR(11))
|
||||
EVT_ADDF(EVT_VAR(2), EVT_VAR(12))
|
||||
EVT_CALL(TranslateModel, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(RotateModel, EVT_VAR(10), EVT_VAR(3), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(clouds3) = SCRIPT({
|
||||
EVT_VAR(10) = EVT_VAR(0);
|
||||
EVT_VAR(11) = EVT_VAR(3);
|
||||
EVT_VAR(12) = EVT_VAR(4);
|
||||
EVT_VAR(13) = EVT_VAR(5);
|
||||
EVT_VAR(7) = EVT_VAR(2);
|
||||
EVT_VAR(7) *= 10;
|
||||
0:
|
||||
EVT_VAR(7) += 4;
|
||||
if (EVT_VAR(7) > 3599) {
|
||||
EVT_VAR(7) -= 3600;
|
||||
}
|
||||
N(UnkAngleFunc2)(EVT_VAR(7), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
EVT_VAR(0) += (float) EVT_VAR(11);
|
||||
EVT_VAR(1) += (float) EVT_VAR(12);
|
||||
EVT_VAR(2) += (float) EVT_VAR(13);
|
||||
TranslateModel(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
RotateModel(EVT_VAR(10), EVT_VAR(3), 0, 1, 0);
|
||||
sleep 1;
|
||||
goto 0;
|
||||
});
|
||||
EvtSource N(clouds3) = {
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(0))
|
||||
EVT_SET(EVT_VAR(11), EVT_VAR(3))
|
||||
EVT_SET(EVT_VAR(12), EVT_VAR(4))
|
||||
EVT_SET(EVT_VAR(13), EVT_VAR(5))
|
||||
EVT_SET(EVT_VAR(7), EVT_VAR(2))
|
||||
EVT_MUL(EVT_VAR(7), 10)
|
||||
EVT_LABEL(0)
|
||||
EVT_ADD(EVT_VAR(7), 4)
|
||||
EVT_IF_GT(EVT_VAR(7), 3599)
|
||||
EVT_SUB(EVT_VAR(7), 3600)
|
||||
EVT_END_IF
|
||||
EVT_CALL(N(UnkAngleFunc2), EVT_VAR(7), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_ADDF(EVT_VAR(0), EVT_VAR(11))
|
||||
EVT_ADDF(EVT_VAR(1), EVT_VAR(12))
|
||||
EVT_ADDF(EVT_VAR(2), EVT_VAR(13))
|
||||
EVT_CALL(TranslateModel, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(RotateModel, EVT_VAR(10), EVT_VAR(3), 0, 1, 0)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -3,12 +3,16 @@
|
||||
|
||||
#define NAMESPACE b_area_kmr_part_1_kmr_02
|
||||
|
||||
EvtSource N(beforeBattle_8021FDA0) = SCRIPT({
|
||||
SetSpriteShading(-1);
|
||||
});
|
||||
EvtSource N(beforeBattle_8021FDA0) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_8021FDC0) = SCRIPT({
|
||||
});
|
||||
EvtSource N(afterBattle_8021FDC0) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Stage NAMESPACE = {
|
||||
.texture = "kmr_tex",
|
||||
|
@ -5,20 +5,22 @@
|
||||
|
||||
#include "clouds.inc.c"
|
||||
|
||||
EvtSource N(beforeBattle_80220188) = SCRIPT({
|
||||
SetSpriteShading(-1);
|
||||
EvtSource N(beforeBattle_80220188) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_SET(EVT_VAR(0), 1)
|
||||
EVT_SET(EVT_VAR(2), 0)
|
||||
EVT_EXEC(N(clouds1))
|
||||
EVT_SET(EVT_VAR(0), 4)
|
||||
EVT_SET(EVT_VAR(2), 70)
|
||||
EVT_EXEC(N(clouds1))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EVT_VAR(0) = 1; // model
|
||||
EVT_VAR(2) = 0; // speed
|
||||
spawn N(clouds1);
|
||||
|
||||
EVT_VAR(0) = 4;
|
||||
EVT_VAR(2) = 70;
|
||||
spawn N(clouds1);
|
||||
});
|
||||
|
||||
EvtSource N(afterBattle_80220200) = SCRIPT({
|
||||
});
|
||||
EvtSource N(afterBattle_80220200) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80220210)[] = {
|
||||
0x00000027, 0x0000002B, 0x00000000,
|
||||
|
@ -5,21 +5,22 @@
|
||||
|
||||
#include "clouds.inc.c"
|
||||
|
||||
EvtSource N(beforeBattle_802205D8) = SCRIPT({
|
||||
SetSpriteShading(-1);
|
||||
EvtSource N(beforeBattle_802205D8) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_SET(EVT_VAR(0), 1)
|
||||
EVT_SET(EVT_VAR(2), 0)
|
||||
EVT_EXEC(N(clouds1))
|
||||
EVT_SET(EVT_VAR(0), 4)
|
||||
EVT_SET(EVT_VAR(2), 70)
|
||||
EVT_EXEC(N(clouds1))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EVT_VAR(0) = 1;
|
||||
EVT_VAR(2) = 0;
|
||||
spawn N(clouds1);
|
||||
|
||||
EVT_VAR(0) = 4;
|
||||
EVT_VAR(2) = 70;
|
||||
spawn N(clouds1);
|
||||
});
|
||||
|
||||
EvtSource N(afterBattle_80220650) = SCRIPT({
|
||||
|
||||
});
|
||||
EvtSource N(afterBattle_80220650) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80220660)[] = {
|
||||
0x00000024, 0x00000020, 0x00000000,
|
||||
|
@ -5,14 +5,17 @@
|
||||
|
||||
#include "clouds.inc.c"
|
||||
|
||||
EvtSource N(beforeBattle_80220A28) = SCRIPT({
|
||||
SetSpriteShading(-1);
|
||||
EnableModel(27, 0);
|
||||
});
|
||||
EvtSource N(beforeBattle_80220A28) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(EnableModel, 27, 0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(afterBattle_80220A5C) = SCRIPT({
|
||||
|
||||
});
|
||||
EvtSource N(afterBattle_80220A5C) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80220A6C)[] = {
|
||||
0x00000020, 0x00000024, 0x00000000,
|
||||
|
@ -6,23 +6,23 @@
|
||||
#include "clouds.inc.c"
|
||||
#include "common/UnkFogFunc.inc.c"
|
||||
|
||||
EvtSource N(beforeBattle_80220E28) = SCRIPT({
|
||||
SetSpriteShading(-1);
|
||||
EvtSource N(beforeBattle_80220E28) = {
|
||||
EVT_CALL(SetSpriteShading, -1)
|
||||
EVT_CALL(N(UnkFogFunc))
|
||||
EVT_SET(EVT_VAR(0), 1)
|
||||
EVT_SET(EVT_VAR(2), 0)
|
||||
EVT_EXEC(N(clouds1))
|
||||
EVT_SET(EVT_VAR(0), 4)
|
||||
EVT_SET(EVT_VAR(2), 70)
|
||||
EVT_EXEC(N(clouds1))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
N(UnkFogFunc)();
|
||||
|
||||
EVT_VAR(0) = 1;
|
||||
EVT_VAR(2) = 0;
|
||||
spawn N(clouds1);
|
||||
|
||||
EVT_VAR(0) = 4;
|
||||
EVT_VAR(2) = 70;
|
||||
spawn N(clouds1);
|
||||
});
|
||||
|
||||
EvtSource N(afterBattle_80220EAC) = SCRIPT({
|
||||
|
||||
});
|
||||
EvtSource N(afterBattle_80220EAC) = {
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 N(foregroundModelList_80220EBC)[] = {
|
||||
0x0000001D, 0x00000022, 0x00000021, 0x00000000,
|
||||
|
@ -1,107 +1,103 @@
|
||||
#include "common.h"
|
||||
|
||||
/// Provide arg `TRUE` on `EVT_VAR(1)` to disable refunding.
|
||||
EvtSource N(UseItemWithEffect) = SCRIPT({
|
||||
if (EVT_VAR(1) == 0) {
|
||||
UseBattleCamPreset(69); // Nice
|
||||
sleep 10;
|
||||
EvtSource N(UseItemWithEffect) = {
|
||||
EVT_IF_EQ(EVT_VAR(1), 0)
|
||||
EVT_CALL(UseBattleCamPreset, 69)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_208D)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_GOT_ITEM)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 18)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FIXED(4.0))
|
||||
EVT_CALL(SetGoalPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(PlayerRunToGoal, 0)
|
||||
EVT_ADD(EVT_VAR(1), 45)
|
||||
EVT_SET(EVT_VAR(3), EVT_VAR(1))
|
||||
EVT_ADD(EVT_VAR(3), 10)
|
||||
EVT_ADD(EVT_VAR(3), 2)
|
||||
EVT_CALL(PlayEffect, 0x33, 1, EVT_VAR(0), EVT_VAR(3), EVT_VAR(2), EVT_FIXED(1.0), 30, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(MakeItemEntity, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0)
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(0))
|
||||
EVT_CALL(N(GiveRefund))
|
||||
EVT_WAIT_FRAMES(EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_CALL(N(GiveRefundCleanup))
|
||||
EVT_CALL(RemoveItemEntity, EVT_VAR(10))
|
||||
EVT_ELSE
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_208D)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_GOT_ITEM)
|
||||
EVT_WAIT_FRAMES(4)
|
||||
EVT_ADD(EVT_VAR(1), 45)
|
||||
EVT_SET(EVT_VAR(3), EVT_VAR(1))
|
||||
EVT_ADD(EVT_VAR(3), 10)
|
||||
EVT_ADD(EVT_VAR(3), 2)
|
||||
EVT_CALL(PlayEffect, 0x33, 1, EVT_VAR(0), EVT_VAR(3), EVT_VAR(2), EVT_FIXED(1.0), 30, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(MakeItemEntity, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0)
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_CALL(RemoveItemEntity, EVT_VAR(10))
|
||||
EVT_END_IF
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_208D);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_GOT_ITEM);
|
||||
GetActorPos(ACTOR_PLAYER, $x, $y, $z);
|
||||
$x += 18;
|
||||
SetActorSpeed(ACTOR_PLAYER, 4.0);
|
||||
SetGoalPos(ACTOR_PLAYER, $x, $y, $z);
|
||||
PlayerRunToGoal(ACTOR_PLAYER);
|
||||
EvtSource N(UseItem) = {
|
||||
EVT_CALL(UseBattleCamPreset, 19)
|
||||
EVT_CALL(SetBattleCamTarget, -85, 1, 0)
|
||||
EVT_CALL(SetBattleCamOffsetZ, 41)
|
||||
EVT_CALL(SetBattleCamZoom, 248)
|
||||
EVT_CALL(MoveBattleCamOver, 30)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_GOT_ITEM)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 45)
|
||||
EVT_CALL(MakeItemEntity, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0)
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(0))
|
||||
EVT_CALL(N(GiveRefund))
|
||||
EVT_WAIT_FRAMES(EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_CALL(N(GiveRefundCleanup))
|
||||
EVT_CALL(RemoveItemEntity, EVT_VAR(14))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
$y += 45;
|
||||
$effectY = $y;
|
||||
$effectY += 10;
|
||||
$effectY += 2;
|
||||
PlayEffect(0x33, 1, $x, $effectY, $z, 1.0, 30, 0, 0, 0, 0, 0, 0, 0);
|
||||
MakeItemEntity(EVT_VAR(10), $x, $y, $z, 1, 0);
|
||||
EVT_VAR(10) = $x;
|
||||
EvtSource N(PlayerGoHome) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE)
|
||||
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FIXED(8.0))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
|
||||
EVT_CALL(PlayerRunToGoal, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
N(GiveRefund)();
|
||||
sleep $x;
|
||||
EvtSource N(EatItem) = {
|
||||
EVT_THREAD
|
||||
EVT_LOOP(4)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_2095)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_EAT)
|
||||
EVT_WAIT_FRAMES(45)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
sleep 15;
|
||||
|
||||
N(GiveRefundCleanup)();
|
||||
RemoveItemEntity(EVT_VAR(10));
|
||||
} else {
|
||||
// No refund.
|
||||
|
||||
GetActorPos(ACTOR_PLAYER, $x, $y, $z);
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_208D);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_GOT_ITEM);
|
||||
sleep 4;
|
||||
|
||||
$y += 45;
|
||||
$effectY = $y;
|
||||
$effectY += 10;
|
||||
$effectY += 2;
|
||||
PlayEffect(0x33, 1, $x, $effectY, $z, 1.0, 30, 0, 0, 0, 0, 0, 0, 0);
|
||||
MakeItemEntity(EVT_VAR(10), $x, $y, $z, 1, 0);
|
||||
EVT_VAR(10) = $x;
|
||||
|
||||
sleep 15;
|
||||
RemoveItemEntity(EVT_VAR(10));
|
||||
}
|
||||
});
|
||||
|
||||
EvtSource N(UseItem) = SCRIPT({
|
||||
UseBattleCamPreset(19);
|
||||
SetBattleCamTarget(-85, 1, 0);
|
||||
SetBattleCamOffsetZ(41);
|
||||
SetBattleCamZoom(248);
|
||||
MoveBattleCamOver(30);
|
||||
sleep 10;
|
||||
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_GOT_ITEM);
|
||||
GetActorPos(ACTOR_PLAYER, $x, $y, $z);
|
||||
$y += 45;
|
||||
MakeItemEntity(EVT_VAR(10), $x, $y, $z, 1, 0);
|
||||
EVT_VAR(14) = $x;
|
||||
|
||||
N(GiveRefund)();
|
||||
sleep $x;
|
||||
|
||||
sleep 15;
|
||||
|
||||
N(GiveRefundCleanup)();
|
||||
RemoveItemEntity(EVT_VAR(14));
|
||||
});
|
||||
|
||||
EvtSource N(PlayerGoHome) = SCRIPT({
|
||||
UseIdleAnimation(ACTOR_PLAYER, 0);
|
||||
SetGoalToHome(ACTOR_PLAYER);
|
||||
SetActorSpeed(ACTOR_PLAYER, 8.0);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_RUNNING);
|
||||
PlayerRunToGoal(ACTOR_PLAYER);
|
||||
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
UseIdleAnimation(ACTOR_PLAYER, 1);
|
||||
});
|
||||
|
||||
EvtSource N(EatItem) = SCRIPT({
|
||||
spawn {
|
||||
loop 4 {
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_2095);
|
||||
sleep 10;
|
||||
}
|
||||
}
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_EAT);
|
||||
sleep 45;
|
||||
});
|
||||
|
||||
EvtSource N(DrinkItem) = SCRIPT({
|
||||
spawn {
|
||||
loop 4 {
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_2095);
|
||||
sleep 10;
|
||||
}
|
||||
}
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_DRINK);
|
||||
sleep 45;
|
||||
});
|
||||
EvtSource N(DrinkItem) = {
|
||||
EVT_THREAD
|
||||
EVT_LOOP(4)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_2095)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_DRINK)
|
||||
EVT_WAIT_FRAMES(45)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -45,61 +45,49 @@ s32 N(modelCommandList)[] = {
|
||||
0x00000004, 0x0000000D, 0x00000001, sizeof(N(displayList)) / sizeof(s32), &N(displayList), 0x00000002, 0x00000000,
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_COCONUT;
|
||||
|
||||
await N(UseItemWithEffect);
|
||||
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(15);
|
||||
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THROW);
|
||||
PlaySound(SOUND_THROW);
|
||||
sleep 3;
|
||||
|
||||
CreateVirtualEntity(EVT_VAR(10), N(modelCommandList));
|
||||
|
||||
$x = 1.0;
|
||||
MultiplyByActorScale($x);
|
||||
SetVirtualEntityScale(EVT_VAR(10), $x, $x, $x);
|
||||
|
||||
GetActorPos(ACTOR_PLAYER, $x, $y, $z);
|
||||
EVT_VAR(3) = 20;
|
||||
EVT_VAR(4) = 42;
|
||||
EVT_VAR(5) = 5;
|
||||
MultiplyVec3ByActorScale(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
|
||||
$x += EVT_VAR(3);
|
||||
$y += EVT_VAR(4);
|
||||
$z += EVT_VAR(5);
|
||||
SetVirtualEntityPosition(EVT_VAR(10), $x, $y, $z);
|
||||
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, $x, $y, $z);
|
||||
|
||||
spawn {
|
||||
$x = 0;
|
||||
loop 18 {
|
||||
$x += -60;
|
||||
SetVirtualEntityRotation(EVT_VAR(10), 0, 0, $x);
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 0.8);
|
||||
$z += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), $x, $y, $z, 18);
|
||||
|
||||
GetItemPower(ITEM_COCONUT, $damage, EVT_VAR(4));
|
||||
ApplyShrinkFromOwner($damage);
|
||||
ItemDamageEnemy(EVT_VAR(9), 0x18000000, 0, $damage, 32);
|
||||
|
||||
// Bounce off
|
||||
$x += 60;
|
||||
$y += 0;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), $x, $y, $z, 16);
|
||||
|
||||
DeleteVirtualEntity(EVT_VAR(10));
|
||||
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x000000AC)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 15)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THROW)
|
||||
EVT_CALL(PlaySound, SOUND_THROW)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), EVT_PTR(N(modelCommandList)))
|
||||
EVT_SETF(EVT_VAR(0), EVT_FIXED(1.0))
|
||||
EVT_CALL(MultiplyByActorScale, EVT_VAR(0))
|
||||
EVT_CALL(SetVirtualEntityScale, EVT_VAR(10), EVT_VAR(0), EVT_VAR(0), EVT_VAR(0))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SET(EVT_VAR(3), 20)
|
||||
EVT_SET(EVT_VAR(4), 42)
|
||||
EVT_SET(EVT_VAR(5), 5)
|
||||
EVT_CALL(MultiplyVec3ByActorScale, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
|
||||
EVT_ADD(EVT_VAR(0), EVT_VAR(3))
|
||||
EVT_ADD(EVT_VAR(1), EVT_VAR(4))
|
||||
EVT_ADD(EVT_VAR(2), EVT_VAR(5))
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_THREAD
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(18)
|
||||
EVT_ADD(EVT_VAR(0), -60)
|
||||
EVT_CALL(SetVirtualEntityRotation, EVT_VAR(10), 0, 0, EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(0.8))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 18)
|
||||
EVT_CALL(GetItemPower, ITEM_COCONUT, EVT_VAR(3), EVT_VAR(4))
|
||||
EVT_CALL(ApplyShrinkFromOwner, EVT_VAR(3))
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(9), 402653184, 0, EVT_VAR(3), 32)
|
||||
EVT_ADD(EVT_VAR(0), 60)
|
||||
EVT_ADD(EVT_VAR(1), 0)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 16)
|
||||
EVT_CALL(DeleteVirtualEntity, EVT_VAR(10))
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -45,52 +45,54 @@ ApiStatus N(func_802A1270_727B80)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_DIZZY_DIAL;
|
||||
await N(UseItemWithEffect);
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
sleep 10;
|
||||
spawn {
|
||||
sleep 5;
|
||||
AddBattleCamZoom(0xFFFFFF06);
|
||||
MoveBattleCamOver(80);
|
||||
func_8024ECF8(0, 0, 1);
|
||||
sleep 80;
|
||||
AddBattleCamZoom(250);
|
||||
MoveBattleCamOver(3);
|
||||
func_8024ECF8(0, 0, 1);
|
||||
}
|
||||
N(func_802A1270_727B80)();
|
||||
spawn {
|
||||
StartRumble(8);
|
||||
ShakeCam(1, 0, 2, 1.0);
|
||||
ShakeCam(1, 0, 2, 4.0);
|
||||
ShakeCam(1, 0, 2, 3.0);
|
||||
ShakeCam(1, 0, 2, 2.0);
|
||||
ShakeCam(1, 0, 2, 1.0);
|
||||
ShakeCam(1, 0, 2, 0.5);
|
||||
sleep 10;
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(10);
|
||||
func_8024ECF8(0, 0, 0);
|
||||
}
|
||||
InitTargetIterator();
|
||||
0:
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
GetItemPower(ITEM_DIZZY_DIAL, EVT_VAR(0), EVT_VAR(1));
|
||||
MakeStatusField(EVT_VAR(0), 0x40000, 100, EVT_VAR(0));
|
||||
func_80252B3C(EVT_VAR(0), 0x50000000, EVT_VAR(0), 0, 32);
|
||||
1:
|
||||
sleep 5;
|
||||
ChooseNextTarget(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) != -1) {
|
||||
goto 0;
|
||||
}
|
||||
sleep 30;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x0000009A)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(AddBattleCamZoom, -250)
|
||||
EVT_CALL(MoveBattleCamOver, 80)
|
||||
EVT_CALL(func_8024ECF8, 0, 0, 1)
|
||||
EVT_WAIT_FRAMES(80)
|
||||
EVT_CALL(AddBattleCamZoom, 250)
|
||||
EVT_CALL(MoveBattleCamOver, 3)
|
||||
EVT_CALL(func_8024ECF8, 0, 0, 1)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(N(func_802A1270_727B80))
|
||||
EVT_THREAD
|
||||
EVT_CALL(StartRumble, 8)
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(1.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(4.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(3.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(2.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(1.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.5))
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 10)
|
||||
EVT_CALL(func_8024ECF8, 0, 0, 0)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetItemPower, ITEM_DIZZY_DIAL, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(MakeStatusField, EVT_VAR(0), 262144, 100, EVT_VAR(0))
|
||||
EVT_CALL(func_80252B3C, EVT_VAR(0), 1342177280, EVT_VAR(0), 0, 32)
|
||||
EVT_LABEL(1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(ChooseNextTarget, 0, EVT_VAR(0))
|
||||
EVT_IF_NE(EVT_VAR(0), -1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -27,25 +27,27 @@ ApiStatus N(func_802A12FC_71CFDC)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_DRIED_SHROOM;
|
||||
await N(UseItemWithEffect);
|
||||
await N(EatItem);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_STICK_OUT_TONGUE);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 35;
|
||||
N(func_802A123C_71CF1C)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1);
|
||||
N(func_802A12FC_71CFDC)();
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 20;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x0000008D)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_EXEC_WAIT(N(EatItem))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_STICK_OUT_TONGUE)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 35)
|
||||
EVT_CALL(N(func_802A123C_71CF1C), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1)
|
||||
EVT_CALL(N(func_802A12FC_71CFDC))
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -44,47 +44,49 @@ s32 N(modelCommandList)[] = {
|
||||
0x00000004, 0x0000000D, 0x00000001, sizeof(N(displayList)) / sizeof(s32), &N(displayList), 0x00000002, 0x00000000,
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) 0x86;
|
||||
await N(UseItemWithEffect);
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(15);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THROW);
|
||||
PlaySound(SOUND_THROW);
|
||||
sleep 3;
|
||||
CreateVirtualEntity(EVT_VAR(10), N(modelCommandList));
|
||||
EVT_VAR(0) = 1.0;
|
||||
MultiplyByActorScale(EVT_VAR(0));
|
||||
SetVirtualEntityScale(EVT_VAR(10), EVT_VAR(0), EVT_VAR(0), EVT_VAR(0));
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(3) = 20;
|
||||
EVT_VAR(4) = 42;
|
||||
EVT_VAR(5) = 5;
|
||||
MultiplyVec3ByActorScale(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
|
||||
EVT_VAR(0) += EVT_VAR(3);
|
||||
EVT_VAR(1) += EVT_VAR(4);
|
||||
EVT_VAR(2) += EVT_VAR(5);
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
spawn {
|
||||
EVT_VAR(0) = 0;
|
||||
loop 18 {
|
||||
EVT_VAR(0) += 0xFFFFFFC4;
|
||||
SetVirtualEntityRotation(EVT_VAR(10), 0, 0, EVT_VAR(0));
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 0.80078125);
|
||||
EVT_VAR(2) += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 18);
|
||||
GetItemPower(ITEM_DUSTY_HAMMER, EVT_VAR(3), EVT_VAR(4));
|
||||
ApplyShrinkFromOwner(EVT_VAR(3));
|
||||
ItemDamageEnemy(EVT_VAR(9), 0x18000000, 0, EVT_VAR(3), 32);
|
||||
EVT_VAR(0) += 40;
|
||||
EVT_VAR(1) += 10;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
|
||||
DeleteVirtualEntity(EVT_VAR(10));
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000086)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 15)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THROW)
|
||||
EVT_CALL(PlaySound, SOUND_THROW)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), EVT_PTR(N(modelCommandList)))
|
||||
EVT_SETF(EVT_VAR(0), EVT_FIXED(1.0))
|
||||
EVT_CALL(MultiplyByActorScale, EVT_VAR(0))
|
||||
EVT_CALL(SetVirtualEntityScale, EVT_VAR(10), EVT_VAR(0), EVT_VAR(0), EVT_VAR(0))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SET(EVT_VAR(3), 20)
|
||||
EVT_SET(EVT_VAR(4), 42)
|
||||
EVT_SET(EVT_VAR(5), 5)
|
||||
EVT_CALL(MultiplyVec3ByActorScale, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
|
||||
EVT_ADD(EVT_VAR(0), EVT_VAR(3))
|
||||
EVT_ADD(EVT_VAR(1), EVT_VAR(4))
|
||||
EVT_ADD(EVT_VAR(2), EVT_VAR(5))
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_THREAD
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(18)
|
||||
EVT_ADD(EVT_VAR(0), -60)
|
||||
EVT_CALL(SetVirtualEntityRotation, EVT_VAR(10), 0, 0, EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(0.8))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 18)
|
||||
EVT_CALL(GetItemPower, ITEM_DUSTY_HAMMER, EVT_VAR(3), EVT_VAR(4))
|
||||
EVT_CALL(ApplyShrinkFromOwner, EVT_VAR(3))
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(9), 402653184, 0, EVT_VAR(3), 32)
|
||||
EVT_ADD(EVT_VAR(0), 40)
|
||||
EVT_ADD(EVT_VAR(1), 10)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
|
||||
EVT_CALL(DeleteVirtualEntity, EVT_VAR(10))
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -139,45 +139,47 @@ s32 N(modelCommandList)[] = {
|
||||
0x00000002, 0x00000000,
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_EGG_MISSILE;
|
||||
await N(UseItemWithEffect);
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(15);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THROW);
|
||||
PlaySound(SOUND_THROW);
|
||||
sleep 3;
|
||||
CreateVirtualEntity(EVT_VAR(10), N(modelCommandList));
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 20;
|
||||
EVT_VAR(1) += 42;
|
||||
EVT_VAR(2) += 5;
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
spawn {
|
||||
EVT_VAR(0) = 0;
|
||||
loop 18 {
|
||||
EVT_VAR(0) += 60;
|
||||
SetVirtualEntityRotation(EVT_VAR(10), 0, 0, EVT_VAR(0));
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 1.0);
|
||||
EVT_VAR(2) += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 18);
|
||||
DeleteVirtualEntity(EVT_VAR(10));
|
||||
PlaySound(SOUND_UNKNOWN_2010);
|
||||
N(func_802A123C_71CF1C)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
spawn {
|
||||
StartRumble(5);
|
||||
ShakeCam(1, 0, 2, 0.75);
|
||||
ShakeCam(1, 0, 5, 1.5);
|
||||
ShakeCam(1, 0, 4, 1.2001953125);
|
||||
ShakeCam(1, 0, 2, 0.4501953125);
|
||||
}
|
||||
GetItemPower(ITEM_EGG_MISSILE, EVT_VAR(0), EVT_VAR(1));
|
||||
ItemDamageEnemy(EVT_VAR(0), 0x18000202, 0, EVT_VAR(0), 32);
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0xC8)
|
||||
EVT_EXEC_WAIT(battle_item_egg_missile_UseItemWithEffect)
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 15)
|
||||
EVT_CALL(SetAnimation, 0, 0, 65558)
|
||||
EVT_CALL(PlaySound, 1018)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), battle_item_egg_missile_modelCommandList)
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_ADD(EVT_VAR(1), 42)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, -127)
|
||||
EVT_CALL(GetGoalPos, -127, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_THREAD
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(18)
|
||||
EVT_ADD(EVT_VAR(0), 60)
|
||||
EVT_CALL(SetVirtualEntityRotation, EVT_VAR(10), 0, 0, EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(1.0))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 18)
|
||||
EVT_CALL(DeleteVirtualEntity, EVT_VAR(10))
|
||||
EVT_CALL(PlaySound, 8208)
|
||||
EVT_CALL(battle_item_egg_missile_func_802A123C_71CF1C, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_THREAD
|
||||
EVT_CALL(StartRumble, 5)
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.75))
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 4, EVT_FIXED(1.2001953125))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.4501953125))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(GetItemPower, 200, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(0), 402653698, 0, EVT_VAR(0), 32)
|
||||
EVT_EXEC_WAIT(battle_item_egg_missile_PlayerGoHome)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -84,34 +84,36 @@ ApiStatus N(func_802A14F0_730A90)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_ELECTRO_POP;
|
||||
await N(UseItemWithEffect);
|
||||
await N(EatItem);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 20;
|
||||
PlayEffect(0x57, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1.0, 30, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlaySound(SOUND_UNKNOWN_379);
|
||||
GetItemPower(ITEM_VOLT_SHROOM, EVT_VAR(0), EVT_VAR(1));
|
||||
N(func_802A123C_7307DC)();
|
||||
sleep 40;
|
||||
N(func_802A14F0_730A90)();
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 20;
|
||||
EVT_VAR(1) += 25;
|
||||
N(func_802A133C_7308DC)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
N(AddFP)(EVT_VAR(3));
|
||||
sleep 10;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THUMBS_UP);
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 20;
|
||||
ShowMessageBox(16, 60);
|
||||
WaitForMessageBoxDone();
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x000000CC)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_EXEC_WAIT(N(EatItem))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 20)
|
||||
EVT_CALL(PlayEffect, 0x57, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_FIXED(1.0), 30, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlaySound, SOUND_UNKNOWN_379)
|
||||
EVT_CALL(GetItemPower, ITEM_VOLT_SHROOM, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(N(func_802A123C_7307DC))
|
||||
EVT_WAIT_FRAMES(40)
|
||||
EVT_CALL(N(func_802A14F0_730A90))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(N(func_802A133C_7308DC), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_CALL(N(AddFP), EVT_VAR(3))
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THUMBS_UP)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(ShowMessageBox, 16, 60)
|
||||
EVT_CALL(WaitForMessageBoxDone)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -34,64 +34,66 @@ ApiStatus N(func_802A1378_716FD8)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_FIRE_FLOWER;
|
||||
await N(UseItemWithEffect);
|
||||
N(FadeBackgroundToBlack)();
|
||||
PlaySound(SOUND_UNKNOWN_377);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_PLANT);
|
||||
spawn {
|
||||
sleep 50;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
}
|
||||
sleep 35;
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
sleep 10;
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
|
||||
EVT_VAR(0) = 40;
|
||||
MultiplyByActorScale(EVT_VAR(0));
|
||||
EVT_VAR(3) += EVT_VAR(0);
|
||||
spawn {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) -= 10;
|
||||
SetActorSpeed(ACTOR_PLAYER, 2.0);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_RUNNING);
|
||||
SetGoalPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
PlayerRunToGoal(ACTOR_PLAYER);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
}
|
||||
spawn {
|
||||
N(func_802A123C_716E9C)(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
|
||||
sleep 25;
|
||||
loop 12 {
|
||||
sleep 1;
|
||||
PlaySound(SOUND_UNKNOWN_202C);
|
||||
sleep 2;
|
||||
PlaySound(SOUND_UNKNOWN_202D);
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
sleep 80;
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(20);
|
||||
InitTargetIterator();
|
||||
0:
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
GetItemPower(ITEM_FIRE_FLOWER, EVT_VAR(0), EVT_VAR(1));
|
||||
ItemDamageEnemy(EVT_VAR(0), 0x38000002, 0, EVT_VAR(0), 32);
|
||||
1:
|
||||
sleep 5;
|
||||
ChooseNextTarget(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) != -1) {
|
||||
goto 0;
|
||||
}
|
||||
N(func_802A1378_716FD8)();
|
||||
sleep 30;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000080)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(N(FadeBackgroundToBlack))
|
||||
EVT_CALL(PlaySound, SOUND_UNKNOWN_377)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_PLANT)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(50)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT_FRAMES(35)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
|
||||
EVT_SET(EVT_VAR(0), 40)
|
||||
EVT_CALL(MultiplyByActorScale, EVT_VAR(0))
|
||||
EVT_ADD(EVT_VAR(3), EVT_VAR(0))
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SUB(EVT_VAR(0), 10)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FIXED(2.0))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
|
||||
EVT_CALL(SetGoalPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(PlayerRunToGoal, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_END_THREAD
|
||||
EVT_THREAD
|
||||
EVT_CALL(N(func_802A123C_716E9C), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
|
||||
EVT_WAIT_FRAMES(25)
|
||||
EVT_LOOP(12)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(PlaySound, SOUND_UNKNOWN_202C)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(PlaySound, SOUND_UNKNOWN_202D)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT_FRAMES(80)
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(GetItemPower, ITEM_FIRE_FLOWER, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(0), 939524098, 0, EVT_VAR(0), 32)
|
||||
EVT_LABEL(1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(ChooseNextTarget, 0, EVT_VAR(0))
|
||||
EVT_IF_NE(EVT_VAR(0), -1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(N(func_802A1378_716FD8))
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -95,140 +95,144 @@ ApiStatus N(func_802A15A0_733670)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(script6) = SCRIPT({
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 180);
|
||||
sleep 10;
|
||||
EVT_VAR(1) = EVT_VAR(15);
|
||||
await N(UseItem);
|
||||
EVT_VAR(14) = EVT_VAR(10);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THROW);
|
||||
spawn {
|
||||
sleep 20;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
}
|
||||
CreateVirtualEntity(EVT_VAR(10), 0x80283EE8);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 30;
|
||||
EVT_VAR(2) += 5;
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetVirtualEntityFlags(EVT_VAR(10), 32);
|
||||
spawn {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 45;
|
||||
MakeItemEntity(EVT_VAR(14), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0);
|
||||
EVT_VAR(14) = EVT_VAR(0);
|
||||
loop 25 {
|
||||
GetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
N(func_802A123C_73330C)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
sleep 1;
|
||||
}
|
||||
RemoveItemEntity(EVT_VAR(14));
|
||||
}
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetBattleCamTarget(0xFFFFFF83, 1, 0);
|
||||
SetBattleCamOffsetZ(41);
|
||||
SetBattleCamZoom(248);
|
||||
MoveBattleCamOver(25);
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 0.400390625);
|
||||
EVT_VAR(2) += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 25);
|
||||
AddBattleCamZoom(100);
|
||||
MoveBattleCamOver(30);
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
if (EVT_VAR(11) > 0) {
|
||||
N(func_802A12EC_7333BC)(EVT_VAR(11));
|
||||
}
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
sleep 20;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 0);
|
||||
sleep 10;
|
||||
});
|
||||
EvtSource N(script6) = {
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 180)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(15))
|
||||
EVT_EXEC_WAIT(N(UseItem))
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(10))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THROW)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), 0x80283EE8)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 30)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetVirtualEntityFlags, EVT_VAR(10), 32)
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 45)
|
||||
EVT_CALL(MakeItemEntity, EVT_VAR(14), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0)
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(0))
|
||||
EVT_LOOP(25)
|
||||
EVT_CALL(GetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(N(func_802A123C_73330C), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(RemoveItemEntity, EVT_VAR(14))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetBattleCamTarget, -125, 1, 0)
|
||||
EVT_CALL(SetBattleCamOffsetZ, 41)
|
||||
EVT_CALL(SetBattleCamZoom, 248)
|
||||
EVT_CALL(MoveBattleCamOver, 25)
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(0.4))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 25)
|
||||
EVT_CALL(AddBattleCamZoom, 100)
|
||||
EVT_CALL(MoveBattleCamOver, 30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_IF_GT(EVT_VAR(11), 0)
|
||||
EVT_CALL(N(func_802A12EC_7333BC), EVT_VAR(11))
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 0)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(14) = EVT_VAR(1);
|
||||
GetMenuSelection(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(10) = EVT_VAR(1);
|
||||
N(func_802A15A0_733670)(EVT_VAR(10));
|
||||
InitTargetIterator();
|
||||
GetOwnerTarget(EVT_VAR(0), EVT_VAR(1));
|
||||
if (EVT_VAR(0) == ACTOR_PARTNER) {
|
||||
await N(script6);
|
||||
return;
|
||||
}
|
||||
EVT_VAR(1) = EVT_VAR(14);
|
||||
await N(UseItemWithEffect);
|
||||
if (EVT_VAR(13) == 0) {
|
||||
await N(EatItem);
|
||||
} else {
|
||||
await N(DrinkItem);
|
||||
}
|
||||
if (EVT_VAR(15) == 1) {
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_STICK_OUT_TONGUE);
|
||||
}
|
||||
if (EVT_VAR(11) > 0) {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 35;
|
||||
N(func_802A1378_733448)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
}
|
||||
if (EVT_VAR(11) < 0) {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 35;
|
||||
N(func_802A1378_733448)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
}
|
||||
if (EVT_VAR(12) > 0) {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 20;
|
||||
EVT_VAR(1) += 25;
|
||||
N(func_802A1438_733508)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(12));
|
||||
}
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
if (EVT_VAR(11) != 0) {
|
||||
N(AddHP)(EVT_VAR(11));
|
||||
}
|
||||
if (EVT_VAR(12) != 0) {
|
||||
N(AddFP)(EVT_VAR(12));
|
||||
}
|
||||
if (EVT_VAR(15) == 0) {
|
||||
sleep 10;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THUMBS_UP);
|
||||
sleep 30;
|
||||
} else {
|
||||
sleep 30;
|
||||
}
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 20;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(1))
|
||||
EVT_CALL(GetMenuSelection, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(1))
|
||||
EVT_CALL(N(func_802A15A0_733670), EVT_VAR(10))
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(GetOwnerTarget, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_IF_EQ(EVT_VAR(0), 256)
|
||||
EVT_EXEC_WAIT(N(script6))
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(14))
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_IF_EQ(EVT_VAR(13), 0)
|
||||
EVT_EXEC_WAIT(N(EatItem))
|
||||
EVT_ELSE
|
||||
EVT_EXEC_WAIT(N(DrinkItem))
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(EVT_VAR(15), 1)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_STICK_OUT_TONGUE)
|
||||
EVT_END_IF
|
||||
EVT_IF_GT(EVT_VAR(11), 0)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 35)
|
||||
EVT_CALL(N(func_802A1378_733448), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_END_IF
|
||||
EVT_IF_LT(EVT_VAR(11), 0)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 35)
|
||||
EVT_CALL(N(func_802A1378_733448), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_END_IF
|
||||
EVT_IF_GT(EVT_VAR(12), 0)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(N(func_802A1438_733508), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(12))
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_IF_NE(EVT_VAR(11), 0)
|
||||
EVT_CALL(N(AddHP), EVT_VAR(11))
|
||||
EVT_END_IF
|
||||
EVT_IF_NE(EVT_VAR(12), 0)
|
||||
EVT_CALL(N(AddFP), EVT_VAR(12))
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(EVT_VAR(15), 0)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THUMBS_UP)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_ELSE
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -22,56 +22,58 @@ ApiStatus N(func_802A12D4_72BBE4)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_FRIGHT_JAR;
|
||||
await N(UseItemWithEffect);
|
||||
N(FadeBackgroundToBlack)();
|
||||
spawn {
|
||||
sleep 5;
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(50);
|
||||
}
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_CROUCH);
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_367);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0xFFFFFFD8;
|
||||
EVT_VAR(1) += 5;
|
||||
EVT_VAR(3) = 0.7001953125;
|
||||
loop 5 {
|
||||
PlayEffect(0x61, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3), 25, 0, 0, 0, 0, 0, 0, 0);
|
||||
EVT_VAR(0) += 5;
|
||||
EVT_VAR(3) += 0.150390625;
|
||||
sleep 7;
|
||||
}
|
||||
PlayEffect(0x61, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1.5, 60, 0, 0, 0, 0, 0, 0, 0);
|
||||
sleep 20;
|
||||
loop 4 {
|
||||
AddBattleCamZoom(0xFFFFFF9C);
|
||||
MoveBattleCamOver(2);
|
||||
sleep 2;
|
||||
AddBattleCamZoom(100);
|
||||
MoveBattleCamOver(2);
|
||||
sleep 2;
|
||||
}
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(20);
|
||||
InitTargetIterator();
|
||||
0:
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
func_80269EAC(21);
|
||||
ItemAfflictEnemy(EVT_VAR(0), 0x70001000, 0, 100, 0, 32);
|
||||
1:
|
||||
ChooseNextTarget(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) != -1) {
|
||||
goto 0;
|
||||
}
|
||||
sleep 10;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_WALKING);
|
||||
N(func_802A12D4_72BBE4)();
|
||||
sleep 20;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000098)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(N(FadeBackgroundToBlack))
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 50)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_CROUCH)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_367)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), -40)
|
||||
EVT_ADD(EVT_VAR(1), 5)
|
||||
EVT_SETF(EVT_VAR(3), EVT_FIXED(0.7))
|
||||
EVT_LOOP(5)
|
||||
EVT_CALL(PlayEffect, 0x61, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3), 25, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_ADD(EVT_VAR(0), 5)
|
||||
EVT_ADDF(EVT_VAR(3), EVT_FIXED(0.15))
|
||||
EVT_WAIT_FRAMES(7)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(PlayEffect, 0x61, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_FIXED(1.5), 60, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_LOOP(4)
|
||||
EVT_CALL(AddBattleCamZoom, -100)
|
||||
EVT_CALL(MoveBattleCamOver, 2)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(AddBattleCamZoom, 100)
|
||||
EVT_CALL(MoveBattleCamOver, 2)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(func_80269EAC, 21)
|
||||
EVT_CALL(ItemAfflictEnemy, EVT_VAR(0), 1879052288, 0, 100, 0, 32)
|
||||
EVT_LABEL(1)
|
||||
EVT_CALL(ChooseNextTarget, 0, EVT_VAR(0))
|
||||
EVT_IF_NE(EVT_VAR(0), -1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_WALKING)
|
||||
EVT_CALL(N(func_802A12D4_72BBE4))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -36,80 +36,82 @@ ApiStatus N(func_802A12C4_726224)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_HUSTLE_DRINK;
|
||||
await N(UseItemWithEffect);
|
||||
await N(DrinkItem);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_SQUISH);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5);
|
||||
N(func_802A12C4_726224)();
|
||||
N(func_802A123C_72619C)();
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 20;
|
||||
UseBattleCamPreset(13);
|
||||
BattleCamTargetActor(ACTOR_SELF);
|
||||
MoveBattleCamOver(20);
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_369);
|
||||
spawn {
|
||||
loop 2 {
|
||||
SetActorScale(ACTOR_SELF, 1.0, 1.0, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.1005859375, 1.0, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.2001953125, 0.9501953125, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.30078125, 0.900390625, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.3505859375, 0.8505859375, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.380859375, 0.80078125, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.400390625, 0.80078125, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.30078125, 0.8505859375, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.2001953125, 0.900390625, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.1005859375, 0.9501953125, 1.0);
|
||||
sleep 1;
|
||||
}
|
||||
SetActorScale(ACTOR_SELF, 1.0, 1.0, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.1005859375, 1.0, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.2001953125, 0.9501953125, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.30078125, 0.900390625, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.3505859375, 0.8505859375, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.380859375, 0.80078125, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.400390625, 0.80078125, 1.0);
|
||||
sleep 1;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_208E);
|
||||
SetActorScale(ACTOR_SELF, 0.900390625, 1.30078125, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 0.900390625, 1.2001953125, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 0.9501953125, 1.1005859375, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_SELF, 1.0, 1.0, 1.0);
|
||||
sleep 1;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
}
|
||||
loop 10 {
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_369);
|
||||
PlayEffect(0x6, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x6, 1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
sleep 4;
|
||||
}
|
||||
sleep 10;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_RUNNING);
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
sleep 20;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000091)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_EXEC_WAIT(N(DrinkItem))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_SQUISH)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5)
|
||||
EVT_CALL(N(func_802A12C4_726224))
|
||||
EVT_CALL(N(func_802A123C_72619C))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 20)
|
||||
EVT_CALL(UseBattleCamPreset, 13)
|
||||
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_369)
|
||||
EVT_THREAD
|
||||
EVT_LOOP(2)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.1), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.2), EVT_FIXED(0.95), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.3), EVT_FIXED(0.9), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.35), EVT_FIXED(0.85), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.38), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.4), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.3), EVT_FIXED(0.85), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.2), EVT_FIXED(0.9), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.1), EVT_FIXED(0.95), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.1), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.2), EVT_FIXED(0.95), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.3), EVT_FIXED(0.9), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.35), EVT_FIXED(0.85), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.38), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.4), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_208E)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(0.9), EVT_FIXED(1.3), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(0.9), EVT_FIXED(1.2), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(0.95), EVT_FIXED(1.1), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_SELF, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_END_THREAD
|
||||
EVT_LOOP(10)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_369)
|
||||
EVT_CALL(PlayEffect, 0x6, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x6, 1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(4)
|
||||
EVT_END_LOOP
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -93,63 +93,65 @@ s32 N(modelCommandList)[] = {
|
||||
0x00000004, 0x0000000D, 0x00000001, sizeof(N(displayList)) / sizeof(s32), &N(displayList), 0x00000002, 0x00000000,
|
||||
};
|
||||
|
||||
EvtSource script = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_INSECTICIDE_HERB;
|
||||
await N(UseItemWithEffect);
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(15);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THROW);
|
||||
PlaySound(SOUND_THROW);
|
||||
sleep 3;
|
||||
CreateVirtualEntity(EVT_VAR(10), N(modelCommandList));
|
||||
EVT_VAR(0) = 1.0;
|
||||
MultiplyByActorScale(EVT_VAR(0));
|
||||
SetVirtualEntityScale(EVT_VAR(10), EVT_VAR(0), EVT_VAR(0), EVT_VAR(0));
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(3) = 20;
|
||||
EVT_VAR(4) = 42;
|
||||
EVT_VAR(5) = 5;
|
||||
MultiplyVec3ByActorScale(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
|
||||
EVT_VAR(0) += EVT_VAR(3);
|
||||
EVT_VAR(1) += EVT_VAR(4);
|
||||
EVT_VAR(2) += EVT_VAR(5);
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
spawn {
|
||||
EVT_VAR(0) = 0;
|
||||
loop 18 {
|
||||
EVT_VAR(0) += 0xFFFFFFC4;
|
||||
SetVirtualEntityRotation(EVT_VAR(10), 0, 0, EVT_VAR(0));
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 0.80078125);
|
||||
EVT_VAR(2) += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 18);
|
||||
PlayEffect(0x7, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
EVT_VAR(0) -= 10;
|
||||
PlayEffect(0x7, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
EVT_VAR(0) += 20;
|
||||
PlayEffect(0x7, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
spawn {
|
||||
N(func_802A12E0_72AA30)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
sleep 3;
|
||||
N(func_802A12E0_72AA30)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
sleep 3;
|
||||
N(func_802A12E0_72AA30)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
}
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
N(func_802A123C_72A98C)();
|
||||
DeleteVirtualEntity(EVT_VAR(10));
|
||||
if (EVT_VAR(9) == 0) {
|
||||
ItemDamageEnemy(EVT_VAR(0), 0, 0, 0, 32);
|
||||
} else {
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
N(func_802A1280_72A9D0)();
|
||||
}
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource script = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000087)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 15)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THROW)
|
||||
EVT_CALL(PlaySound, SOUND_THROW)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), EVT_PTR(N(modelCommandList)))
|
||||
EVT_SETF(EVT_VAR(0), EVT_FIXED(1.0))
|
||||
EVT_CALL(MultiplyByActorScale, EVT_VAR(0))
|
||||
EVT_CALL(SetVirtualEntityScale, EVT_VAR(10), EVT_VAR(0), EVT_VAR(0), EVT_VAR(0))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SET(EVT_VAR(3), 20)
|
||||
EVT_SET(EVT_VAR(4), 42)
|
||||
EVT_SET(EVT_VAR(5), 5)
|
||||
EVT_CALL(MultiplyVec3ByActorScale, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
|
||||
EVT_ADD(EVT_VAR(0), EVT_VAR(3))
|
||||
EVT_ADD(EVT_VAR(1), EVT_VAR(4))
|
||||
EVT_ADD(EVT_VAR(2), EVT_VAR(5))
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_THREAD
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(18)
|
||||
EVT_ADD(EVT_VAR(0), -60)
|
||||
EVT_CALL(SetVirtualEntityRotation, EVT_VAR(10), 0, 0, EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(0.8))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 18)
|
||||
EVT_CALL(PlayEffect, 0x7, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_SUB(EVT_VAR(0), 10)
|
||||
EVT_CALL(PlayEffect, 0x7, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_CALL(PlayEffect, 0x7, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_THREAD
|
||||
EVT_CALL(N(func_802A12E0_72AA30), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(N(func_802A12E0_72AA30), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(N(func_802A12E0_72AA30), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(N(func_802A123C_72A98C))
|
||||
EVT_CALL(DeleteVirtualEntity, EVT_VAR(10))
|
||||
EVT_IF_EQ(EVT_VAR(9), 0)
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(0), 0, 0, 0, 32)
|
||||
EVT_ELSE
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(N(func_802A1280_72A9D0))
|
||||
EVT_END_IF
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -84,111 +84,115 @@ ApiStatus N(func_802A1484_72E9B4)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(script6) = SCRIPT({
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 180);
|
||||
sleep 10;
|
||||
EVT_VAR(1) = EVT_VAR(15);
|
||||
await N(UseItem);
|
||||
EVT_VAR(14) = EVT_VAR(10);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THROW);
|
||||
spawn {
|
||||
sleep 20;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
}
|
||||
CreateVirtualEntity(EVT_VAR(10), 0x80283EE8);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 30;
|
||||
EVT_VAR(2) += 5;
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetVirtualEntityFlags(EVT_VAR(10), 32);
|
||||
spawn {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 45;
|
||||
MakeItemEntity(EVT_VAR(14), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0);
|
||||
EVT_VAR(14) = EVT_VAR(0);
|
||||
loop 25 {
|
||||
GetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
N(func_802A123C_72E76C)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
sleep 1;
|
||||
}
|
||||
RemoveItemEntity(EVT_VAR(14));
|
||||
}
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetBattleCamTarget(0xFFFFFF83, 1, 0);
|
||||
SetBattleCamOffsetZ(41);
|
||||
SetBattleCamZoom(248);
|
||||
MoveBattleCamOver(25);
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 0.400390625);
|
||||
EVT_VAR(2) += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 25);
|
||||
AddBattleCamZoom(100);
|
||||
MoveBattleCamOver(30);
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
if (EVT_VAR(11) > 0) {
|
||||
N(func_802A12EC_72E81C)(EVT_VAR(11));
|
||||
}
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
sleep 20;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 0);
|
||||
sleep 10;
|
||||
});
|
||||
EvtSource N(script6) = {
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 180)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(15))
|
||||
EVT_EXEC_WAIT(N(UseItem))
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(10))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THROW)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), 0x80283EE8)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 30)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetVirtualEntityFlags, EVT_VAR(10), 32)
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 45)
|
||||
EVT_CALL(MakeItemEntity, EVT_VAR(14), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0)
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(0))
|
||||
EVT_LOOP(25)
|
||||
EVT_CALL(GetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(N(func_802A123C_72E76C), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(RemoveItemEntity, EVT_VAR(14))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetBattleCamTarget, -125, 1, 0)
|
||||
EVT_CALL(SetBattleCamOffsetZ, 41)
|
||||
EVT_CALL(SetBattleCamZoom, 248)
|
||||
EVT_CALL(MoveBattleCamOver, 25)
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(0.4))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 25)
|
||||
EVT_CALL(AddBattleCamZoom, 100)
|
||||
EVT_CALL(MoveBattleCamOver, 30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_IF_GT(EVT_VAR(11), 0)
|
||||
EVT_CALL(N(func_802A12EC_72E81C), EVT_VAR(11))
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 0)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(15) = EVT_VAR(1);
|
||||
GetMenuSelection(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(10) = EVT_VAR(1);
|
||||
N(func_802A1484_72E9B4)(EVT_VAR(10));
|
||||
InitTargetIterator();
|
||||
GetOwnerTarget(EVT_VAR(0), EVT_VAR(1));
|
||||
if (EVT_VAR(0) == ACTOR_PARTNER) {
|
||||
await N(script6);
|
||||
return;
|
||||
}
|
||||
EVT_VAR(10) = (const) ITEM_LIFE_SHROOM;
|
||||
EVT_VAR(1) = EVT_VAR(15);
|
||||
await N(UseItemWithEffect);
|
||||
await N(EatItem);
|
||||
N(func_802A1438_72E968)();
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 35;
|
||||
N(func_802A1378_72E8A8)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
sleep 10;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THUMBS_UP);
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 20;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET(EVT_VAR(15), EVT_VAR(1))
|
||||
EVT_CALL(GetMenuSelection, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(1))
|
||||
EVT_CALL(N(func_802A1484_72E9B4), EVT_VAR(10))
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(GetOwnerTarget, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_IF_EQ(EVT_VAR(0), 256)
|
||||
EVT_EXEC_WAIT(N(script6))
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000095)
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(15))
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_EXEC_WAIT(N(EatItem))
|
||||
EVT_CALL(N(func_802A1438_72E968))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 35)
|
||||
EVT_CALL(N(func_802A1378_72E8A8), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THUMBS_UP)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -83,130 +83,134 @@ ApiStatus N(func_802A15A0_715DF0)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(script6) = SCRIPT({
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 180);
|
||||
sleep 10;
|
||||
EVT_VAR(1) = EVT_VAR(15);
|
||||
await N(UseItem);
|
||||
EVT_VAR(14) = EVT_VAR(10);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THROW);
|
||||
spawn {
|
||||
sleep 20;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
}
|
||||
CreateVirtualEntity(EVT_VAR(10), 0x80283EE8);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 30;
|
||||
EVT_VAR(2) += 5;
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetVirtualEntityFlags(EVT_VAR(10), 32);
|
||||
spawn {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 45;
|
||||
MakeItemEntity(EVT_VAR(14), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0);
|
||||
EVT_VAR(14) = EVT_VAR(0);
|
||||
loop 25 {
|
||||
GetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
N(func_802A123C_715A8C)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
sleep 1;
|
||||
}
|
||||
RemoveItemEntity(EVT_VAR(14));
|
||||
}
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetBattleCamTarget(0xFFFFFF83, 1, 0);
|
||||
SetBattleCamOffsetZ(41);
|
||||
SetBattleCamZoom(248);
|
||||
MoveBattleCamOver(25);
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 0.400390625);
|
||||
EVT_VAR(2) += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 25);
|
||||
AddBattleCamZoom(100);
|
||||
MoveBattleCamOver(30);
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
if (EVT_VAR(11) > 0) {
|
||||
N(func_802A12EC_715B3C)(EVT_VAR(11));
|
||||
}
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
sleep 20;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 0);
|
||||
sleep 10;
|
||||
});
|
||||
EvtSource N(script6) = {
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 180)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(15))
|
||||
EVT_EXEC_WAIT(N(UseItem))
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(10))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THROW)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), 0x80283EE8)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 30)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetVirtualEntityFlags, EVT_VAR(10), 32)
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 45)
|
||||
EVT_CALL(MakeItemEntity, EVT_VAR(14), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0)
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(0))
|
||||
EVT_LOOP(25)
|
||||
EVT_CALL(GetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(N(func_802A123C_715A8C), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(RemoveItemEntity, EVT_VAR(14))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetBattleCamTarget, -125, 1, 0)
|
||||
EVT_CALL(SetBattleCamOffsetZ, 41)
|
||||
EVT_CALL(SetBattleCamZoom, 248)
|
||||
EVT_CALL(MoveBattleCamOver, 25)
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(0.4))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 25)
|
||||
EVT_CALL(AddBattleCamZoom, 100)
|
||||
EVT_CALL(MoveBattleCamOver, 30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_IF_GT(EVT_VAR(11), 0)
|
||||
EVT_CALL(N(func_802A12EC_715B3C), EVT_VAR(11))
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 0)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(14) = EVT_VAR(1);
|
||||
GetMenuSelection(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(10) = EVT_VAR(1);
|
||||
N(func_802A15A0_715DF0)(EVT_VAR(10));
|
||||
InitTargetIterator();
|
||||
GetOwnerTarget(EVT_VAR(0), EVT_VAR(1));
|
||||
if (EVT_VAR(0) == ACTOR_PARTNER) {
|
||||
await N(script6);
|
||||
return;
|
||||
}
|
||||
EVT_VAR(1) = EVT_VAR(14);
|
||||
await N(UseItemWithEffect);
|
||||
await N(EatItem);
|
||||
if (EVT_VAR(15) == 1) {
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_STICK_OUT_TONGUE);
|
||||
}
|
||||
if (EVT_VAR(11) > 0) {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 35;
|
||||
N(func_802A1378_715BC8)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
}
|
||||
if (EVT_VAR(12) > 0) {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 20;
|
||||
EVT_VAR(1) += 25;
|
||||
N(func_802A1438_715C88)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(12));
|
||||
}
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
if (EVT_VAR(11) != 0) {
|
||||
N(AddHP)(EVT_VAR(11));
|
||||
}
|
||||
if (EVT_VAR(12) != 0) {
|
||||
N(AddFP)(EVT_VAR(12));
|
||||
}
|
||||
if (EVT_VAR(15) == 0) {
|
||||
sleep 10;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THUMBS_UP);
|
||||
sleep 30;
|
||||
} else {
|
||||
sleep 30;
|
||||
}
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 20;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(1))
|
||||
EVT_CALL(GetMenuSelection, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(1))
|
||||
EVT_CALL(N(func_802A15A0_715DF0), EVT_VAR(10))
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(GetOwnerTarget, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_IF_EQ(EVT_VAR(0), 256)
|
||||
EVT_EXEC_WAIT(N(script6))
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(14))
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_EXEC_WAIT(N(EatItem))
|
||||
EVT_IF_EQ(EVT_VAR(15), 1)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_STICK_OUT_TONGUE)
|
||||
EVT_END_IF
|
||||
EVT_IF_GT(EVT_VAR(11), 0)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 35)
|
||||
EVT_CALL(N(func_802A1378_715BC8), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_END_IF
|
||||
EVT_IF_GT(EVT_VAR(12), 0)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(N(func_802A1438_715C88), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(12))
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_IF_NE(EVT_VAR(11), 0)
|
||||
EVT_CALL(N(AddHP), EVT_VAR(11))
|
||||
EVT_END_IF
|
||||
EVT_IF_NE(EVT_VAR(12), 0)
|
||||
EVT_CALL(N(AddFP), EVT_VAR(12))
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(EVT_VAR(15), 0)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THUMBS_UP)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_ELSE
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -273,48 +273,50 @@ s32 N(D_802A229C_72D84C)[8] = {
|
||||
0x0000008A, 0x0000008C, 0x00000085, 0x0000008A
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_MYSTERY;
|
||||
await N(UseItemWithEffect);
|
||||
spawn {
|
||||
sleep 220;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_3F3);
|
||||
}
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_368);
|
||||
N(func_802A13E4_72C994)();
|
||||
sleep 2;
|
||||
if (EVT_VAR(0) != ITEM_PEBBLE) {
|
||||
jump UseMystery;
|
||||
return;
|
||||
}
|
||||
CreateVirtualEntity(EVT_VAR(10), N(modelCommandList));
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 150;
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetOwnerTarget(0, 0);
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
spawn {
|
||||
EVT_VAR(0) = 0;
|
||||
loop 18 {
|
||||
EVT_VAR(0) += 0xFFFFFFC4;
|
||||
SetVirtualEntityRotation(EVT_VAR(10), 0, 0, EVT_VAR(0));
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 0.6005859375);
|
||||
EVT_VAR(2) += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 12);
|
||||
spawn {
|
||||
EVT_VAR(0) += 60;
|
||||
EVT_VAR(1) += 0;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 16);
|
||||
DeleteVirtualEntity(EVT_VAR(10));
|
||||
}
|
||||
SetTargetActor(ACTOR_SELF, 0);
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
N(func_802A188C_72CE3C)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetBattleFlagBits(32, 1);
|
||||
DispatchDamagePlayerEvent(1, EVENT_HIT);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000096)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(220)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_3F3)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_368)
|
||||
EVT_CALL(N(func_802A13E4_72C994))
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_IF_NE(EVT_VAR(0), 133)
|
||||
EVT_JUMP(EVT_PTR(UseMystery))
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), EVT_PTR(N(modelCommandList)))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 150)
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetOwnerTarget, 0, 0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_THREAD
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(18)
|
||||
EVT_ADD(EVT_VAR(0), -60)
|
||||
EVT_CALL(SetVirtualEntityRotation, EVT_VAR(10), 0, 0, EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(0.6))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 12)
|
||||
EVT_THREAD
|
||||
EVT_ADD(EVT_VAR(0), 60)
|
||||
EVT_ADD(EVT_VAR(1), 0)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 16)
|
||||
EVT_CALL(DeleteVirtualEntity, EVT_VAR(10))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(N(func_802A188C_72CE3C), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetBattleFlagBits, 32, 1)
|
||||
EVT_CALL(DispatchDamagePlayerEvent, 1, EVENT_HIT)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -44,47 +44,49 @@ s32 N(modelCommandList)[] = {
|
||||
0x00000004, 0x0000000D, 0x00000001, sizeof(N(displayList)) / sizeof(s32), &N(displayList), 0x00000002, 0x00000000,
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_PEBBLE;
|
||||
await N(UseItemWithEffect);
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(15);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THROW);
|
||||
PlaySound(SOUND_THROW);
|
||||
sleep 3;
|
||||
CreateVirtualEntity(EVT_VAR(10), N(modelCommandList));
|
||||
EVT_VAR(0) = 1.0;
|
||||
MultiplyByActorScale(EVT_VAR(0));
|
||||
SetVirtualEntityScale(EVT_VAR(10), EVT_VAR(0), EVT_VAR(0), EVT_VAR(0));
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(3) = 20;
|
||||
EVT_VAR(4) = 42;
|
||||
EVT_VAR(5) = 5;
|
||||
MultiplyVec3ByActorScale(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
|
||||
EVT_VAR(0) += EVT_VAR(3);
|
||||
EVT_VAR(1) += EVT_VAR(4);
|
||||
EVT_VAR(2) += EVT_VAR(5);
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
spawn {
|
||||
EVT_VAR(0) = 0;
|
||||
loop 18 {
|
||||
EVT_VAR(0) += 0xFFFFFFC4;
|
||||
SetVirtualEntityRotation(EVT_VAR(10), 0, 0, EVT_VAR(0));
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 0.80078125);
|
||||
EVT_VAR(2) += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 18);
|
||||
GetItemPower(ITEM_PEBBLE, EVT_VAR(3), EVT_VAR(4));
|
||||
ApplyShrinkFromOwner(EVT_VAR(3));
|
||||
ItemDamageEnemy(EVT_VAR(9), 0x18000000, 0, EVT_VAR(3), 32);
|
||||
EVT_VAR(0) += 60;
|
||||
EVT_VAR(1) += 0;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 16);
|
||||
DeleteVirtualEntity(EVT_VAR(10));
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000085)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 15)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THROW)
|
||||
EVT_CALL(PlaySound, SOUND_THROW)
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), EVT_PTR(N(modelCommandList)))
|
||||
EVT_SETF(EVT_VAR(0), EVT_FIXED(1.0))
|
||||
EVT_CALL(MultiplyByActorScale, EVT_VAR(0))
|
||||
EVT_CALL(SetVirtualEntityScale, EVT_VAR(10), EVT_VAR(0), EVT_VAR(0), EVT_VAR(0))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SET(EVT_VAR(3), 20)
|
||||
EVT_SET(EVT_VAR(4), 42)
|
||||
EVT_SET(EVT_VAR(5), 5)
|
||||
EVT_CALL(MultiplyVec3ByActorScale, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
|
||||
EVT_ADD(EVT_VAR(0), EVT_VAR(3))
|
||||
EVT_ADD(EVT_VAR(1), EVT_VAR(4))
|
||||
EVT_ADD(EVT_VAR(2), EVT_VAR(5))
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_THREAD
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(18)
|
||||
EVT_ADD(EVT_VAR(0), -60)
|
||||
EVT_CALL(SetVirtualEntityRotation, EVT_VAR(10), 0, 0, EVT_VAR(0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(0.8))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 18)
|
||||
EVT_CALL(GetItemPower, ITEM_PEBBLE, EVT_VAR(3), EVT_VAR(4))
|
||||
EVT_CALL(ApplyShrinkFromOwner, EVT_VAR(3))
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(9), 402653184, 0, EVT_VAR(3), 32)
|
||||
EVT_ADD(EVT_VAR(0), 60)
|
||||
EVT_ADD(EVT_VAR(1), 0)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 16)
|
||||
EVT_CALL(DeleteVirtualEntity, EVT_VAR(10))
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -4,16 +4,18 @@
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_DIZZY_DIAL;
|
||||
await N(UseItemWithEffect);
|
||||
SetGoalToHome(ACTOR_PLAYER);
|
||||
SetJumpAnimations(ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009);
|
||||
SetActorSpeed(ACTOR_PLAYER, 4.0);
|
||||
SetActorJumpGravity(ACTOR_PLAYER, 1.80078125);
|
||||
func_80273444(4, 0, 0);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_8000B);
|
||||
sleep 8;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x0000009A)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(SetGoalToHome, ACTOR_PLAYER)
|
||||
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FIXED(4.0))
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FIXED(1.8))
|
||||
EVT_CALL(func_80273444, 4, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_8000B)
|
||||
EVT_WAIT_FRAMES(8)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
|
@ -47,77 +47,79 @@ ApiStatus N(func_802A1318_718B68)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_P_O_W_BLOCK;
|
||||
await N(UseItemWithEffect);
|
||||
sleep 10;
|
||||
MakeEntity(0x802EA2E0, -40, 60, 0, 0, MAKE_ENTITY_END);
|
||||
EVT_VAR(10) = EVT_VAR(0);
|
||||
N(func_802A1318_718B68)();
|
||||
PlayEffect(0x7, 2, -40, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x7, 2, -30, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x7, 2, -40, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x7, 2, -40, 55, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 20;
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
spawn {
|
||||
sleep 15;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_HIT_BLOCK);
|
||||
N(func_802A123C_718A8C)();
|
||||
PlayEffect(0x7, 2, -40, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x7, 2, -30, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x7, 2, -40, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x7, 2, -40, 55, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
StartRumble(4);
|
||||
ShakeCam(1, 0, 2, 1.0);
|
||||
ShakeCam(1, 0, 2, 3.0);
|
||||
ShakeCam(1, 0, 2, 6.0);
|
||||
ShakeCam(1, 0, 2, 5.0);
|
||||
ShakeCam(1, 0, 2, 4.0);
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_2030);
|
||||
ShakeCam(1, 0, 2, 3.0);
|
||||
ShakeCam(1, 0, 2, 2.0);
|
||||
ShakeCam(1, 0, 2, 1.0);
|
||||
ShakeCam(1, 0, 2, 0.5);
|
||||
ShakeCam(1, 0, 2, 0.2001953125);
|
||||
}
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 30;
|
||||
SetActorSpeed(ACTOR_PLAYER, 4.0);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_RUNNING);
|
||||
SetGoalPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
PlayerRunToGoal(ACTOR_PLAYER);
|
||||
sleep 5;
|
||||
SetJumpAnimations(ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009);
|
||||
SetActorJumpGravity(ACTOR_PLAYER, 0.6005859375);
|
||||
SetGoalPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_80273444(20, 0, 0);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(20);
|
||||
InitTargetIterator();
|
||||
0:
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
GetItemPower(ITEM_P_O_W_BLOCK, EVT_VAR(3), EVT_VAR(4));
|
||||
ApplyShrinkFromOwner(EVT_VAR(3));
|
||||
func_80269EAC(22);
|
||||
ItemDamageEnemy(EVT_VAR(0), 0x38000400, 0, EVT_VAR(3), 32);
|
||||
1:
|
||||
ChooseNextTarget(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) != -1) {
|
||||
goto 0;
|
||||
}
|
||||
PlayEffect(0x7, 2, -70, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x7, 2, -60, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x7, 2, -70, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlayEffect(0x7, 2, -70, 55, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
N(func_802A12E4_718B34)();
|
||||
sleep 30;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000090)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(MakeEntity, 0x802EA2E0, -40, 60, 0, 0, MAKE_ENTITY_END)
|
||||
EVT_SET(EVT_VAR(10), EVT_VAR(0))
|
||||
EVT_CALL(N(func_802A1318_718B68))
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -40, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -30, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -40, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -40, 55, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_HIT_BLOCK)
|
||||
EVT_CALL(N(func_802A123C_718A8C))
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -40, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -30, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -40, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -40, 55, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(StartRumble, 4)
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(1.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(3.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(6.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(5.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(4.0))
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_2030)
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(3.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(2.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(1.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.2))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 30)
|
||||
EVT_CALL(SetActorSpeed, ACTOR_PLAYER, EVT_FIXED(4.0))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_RUNNING)
|
||||
EVT_CALL(SetGoalPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(PlayerRunToGoal, 0)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FIXED(0.6))
|
||||
EVT_CALL(SetGoalPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_80273444, 20, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetItemPower, ITEM_P_O_W_BLOCK, EVT_VAR(3), EVT_VAR(4))
|
||||
EVT_CALL(ApplyShrinkFromOwner, EVT_VAR(3))
|
||||
EVT_CALL(func_80269EAC, 22)
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(0), 939525120, 0, EVT_VAR(3), 32)
|
||||
EVT_LABEL(1)
|
||||
EVT_CALL(ChooseNextTarget, 0, EVT_VAR(0))
|
||||
EVT_IF_NE(EVT_VAR(0), -1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -70, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -60, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -70, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlayEffect, 0x7, 2, -70, 55, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(N(func_802A12E4_718B34))
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -16,22 +16,24 @@ ApiStatus N(func_802A123C_72DDAC)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_REPEL_GEL;
|
||||
await N(UseItemWithEffect);
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_375);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_30008);
|
||||
sleep 45;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 20;
|
||||
PlayEffect(0x33, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1.0, 30, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_376);
|
||||
GetItemPower(ITEM_REPEL_GEL, EVT_VAR(0), EVT_VAR(1));
|
||||
N(func_802A123C_72DDAC)();
|
||||
sleep 20;
|
||||
ShowMessageBox(17, 60);
|
||||
WaitForMessageBoxDone();
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000097)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_375)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_30008)
|
||||
EVT_WAIT_FRAMES(45)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 20)
|
||||
EVT_CALL(PlayEffect, 0x33, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_FIXED(1.0), 30, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_376)
|
||||
EVT_CALL(GetItemPower, ITEM_REPEL_GEL, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(N(func_802A123C_72DDAC))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(ShowMessageBox, 17, 60)
|
||||
EVT_CALL(WaitForMessageBoxDone)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
|
@ -93,73 +93,75 @@ ApiStatus N(func_802A14D4_71DC44)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_SHOOTING_STAR;
|
||||
await N(UseItemWithEffect);
|
||||
spawn {
|
||||
sleep 5;
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
}
|
||||
N(func_802A1444_71DBB4)();
|
||||
spawn {
|
||||
EVT_VAR(0) = 0;
|
||||
loop 10 {
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_259);
|
||||
N(func_802A123C_71D9AC)();
|
||||
EVT_VAR(0) += 1;
|
||||
sleep 5;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_25A);
|
||||
N(func_802A123C_71D9AC)();
|
||||
EVT_VAR(0) += 1;
|
||||
sleep 5;
|
||||
}
|
||||
}
|
||||
spawn {
|
||||
EVT_VAR(0) = 0;
|
||||
sleep 50;
|
||||
loop 10 {
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_25C);
|
||||
EVT_VAR(0) += 1;
|
||||
sleep 5;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_25D);
|
||||
EVT_VAR(0) += 1;
|
||||
sleep 5;
|
||||
}
|
||||
}
|
||||
spawn {
|
||||
loop 5 {
|
||||
sleep 15;
|
||||
StartRumble(8);
|
||||
ShakeCam(1, 0, 5, 1.0);
|
||||
}
|
||||
}
|
||||
sleep 90;
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(20);
|
||||
InitTargetIterator();
|
||||
0:
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
N(func_802A1388_71DAF8)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
GetItemPower(ITEM_SHOOTING_STAR, EVT_VAR(0), EVT_VAR(1));
|
||||
ItemDamageEnemy(EVT_VAR(0), 0x38000100, 0, EVT_VAR(0), 32);
|
||||
1:
|
||||
sleep 10;
|
||||
ChooseNextTarget(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) != -1) {
|
||||
goto 0;
|
||||
}
|
||||
sleep 20;
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
await N(PlayerGoHome);
|
||||
spawn {
|
||||
N(func_802A14D4_71DC44)();
|
||||
}
|
||||
sleep 30;
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000083)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(N(func_802A1444_71DBB4))
|
||||
EVT_THREAD
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_LOOP(10)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_259)
|
||||
EVT_CALL(N(func_802A123C_71D9AC))
|
||||
EVT_ADD(EVT_VAR(0), 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_25A)
|
||||
EVT_CALL(N(func_802A123C_71D9AC))
|
||||
EVT_ADD(EVT_VAR(0), 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_THREAD
|
||||
EVT_SET(EVT_VAR(0), 0)
|
||||
EVT_WAIT_FRAMES(50)
|
||||
EVT_LOOP(10)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_25C)
|
||||
EVT_ADD(EVT_VAR(0), 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_25D)
|
||||
EVT_ADD(EVT_VAR(0), 1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_THREAD
|
||||
EVT_LOOP(5)
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_CALL(StartRumble, 8)
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.0))
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT_FRAMES(90)
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(N(func_802A1388_71DAF8), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(GetItemPower, ITEM_SHOOTING_STAR, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(0), 939524352, 0, EVT_VAR(0), 32)
|
||||
EVT_LABEL(1)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(ChooseNextTarget, 0, EVT_VAR(0))
|
||||
EVT_IF_NE(EVT_VAR(0), -1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_THREAD
|
||||
EVT_CALL(N(func_802A14D4_71DC44))
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -335,153 +335,155 @@ s32 N(modelCommandList)[] = {
|
||||
0x00000002, 0x00000000,
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_SLEEPY_SHEEP;
|
||||
await N(UseItemWithEffect);
|
||||
UseBattleCamPreset(19);
|
||||
SetBattleCamTarget(0xFFFFFFBD, 0xFFFFFFF1, 0xFFFFFFFB);
|
||||
SetBattleCamOffsetZ(45);
|
||||
SetBattleCamZoom(169);
|
||||
MoveBattleCamOver(50);
|
||||
spawn {
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_364);
|
||||
loop 7 {
|
||||
StartRumble(2);
|
||||
ShakeCam(1, 0, 2, 0.5);
|
||||
ShakeCam(1, 0, 2, 1.5);
|
||||
ShakeCam(1, 0, 2, 0.5);
|
||||
ShakeCam(1, 0, 2, 0.2001953125);
|
||||
ShakeCam(1, 0, 2, 0.5);
|
||||
ShakeCam(1, 0, 2, 2.0);
|
||||
ShakeCam(1, 0, 2, 1.5);
|
||||
ShakeCam(1, 0, 2, 1.0);
|
||||
ShakeCam(1, 0, 2, 0.5);
|
||||
ShakeCam(1, 0, 2, 0.25);
|
||||
sleep 2;
|
||||
ShakeCam(1, 0, 2, 0.5);
|
||||
ShakeCam(1, 0, 2, 1.5);
|
||||
ShakeCam(1, 0, 2, 0.5);
|
||||
ShakeCam(1, 0, 2, 0.2001953125);
|
||||
}
|
||||
}
|
||||
sleep 20;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 32;
|
||||
ShowEmote(0, EMOTE_QUESTION, -45, 20, 2, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
|
||||
sleep 30;
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 180);
|
||||
spawn {
|
||||
N(func_802A123C_71E88C)();
|
||||
}
|
||||
InitTargetIterator();
|
||||
spawn {
|
||||
sleep 40;
|
||||
N(func_802A1740_71ED90)();
|
||||
N(func_802A1848_71EE98)();
|
||||
}
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
sleep 8;
|
||||
SetJumpAnimations(ACTOR_PLAYER, 0, ANIM_1002B, ANIM_1002B, ANIM_MIDAIR);
|
||||
SetActorJumpGravity(ACTOR_PLAYER, 1.80078125);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetGoalPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_80273444(15, 0, 0);
|
||||
spawn {
|
||||
sleep 5;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 0);
|
||||
}
|
||||
sleep 40;
|
||||
CreateVirtualEntity(EVT_VAR(10), N(modelCommandList));
|
||||
EVT_VAR(7) = 0xFFFFFF38;
|
||||
EVT_VAR(8) = 0;
|
||||
EVT_VAR(9) = 0;
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(7), EVT_VAR(8), EVT_VAR(9));
|
||||
SetVirtualEntityScale(EVT_VAR(10), 0.7109375, 0.7109375, 0.7109375);
|
||||
SetVirtualEntityMoveSpeed(EVT_VAR(10), 7.0);
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 1.400390625);
|
||||
SetOwnerTarget(0, 0);
|
||||
SetGoalToTarget(ACTOR_PLAYER);
|
||||
GetGoalPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) -= 60;
|
||||
VirtualEntityMoveTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0);
|
||||
GetGoalPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0);
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_HIT_BLOCK);
|
||||
spawn {
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_SHOCK_STILL);
|
||||
SetActorScale(ACTOR_PLAYER, 1.2001953125, 0.900390625, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_PLAYER, 1.30078125, 0.80078125, 1.0);
|
||||
sleep 3;
|
||||
SetActorScale(ACTOR_PLAYER, 1.2001953125, 0.900390625, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(ACTOR_PLAYER, 1.0, 1.0, 1.0);
|
||||
}
|
||||
PlayEffect(0x6, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
sleep 2;
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 1.400390625);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 60;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0);
|
||||
PlayEffect(0x6, 2, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
EVT_VAR(0) += 20;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0);
|
||||
PlayEffect(0x6, 2, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
EVT_VAR(0) += 10;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0);
|
||||
PlayEffect(0x6, 2, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
sleep 5;
|
||||
spawn {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 270;
|
||||
VirtualEntityMoveTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0);
|
||||
DeleteVirtualEntity(EVT_VAR(10));
|
||||
}
|
||||
sleep 30;
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(20);
|
||||
InitTargetIterator();
|
||||
0:
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
GetItemPower(ITEM_SLEEPY_SHEEP, EVT_VAR(0), EVT_VAR(1));
|
||||
MakeStatusField(EVT_VAR(0), 4096, 100, EVT_VAR(0));
|
||||
func_80252B3C(EVT_VAR(0), 0x50000000, EVT_VAR(0), 0, 32);
|
||||
1:
|
||||
sleep 5;
|
||||
ChooseNextTarget(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) != -1) {
|
||||
goto 0;
|
||||
}
|
||||
sleep 30;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x0000008F)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(UseBattleCamPreset, 19)
|
||||
EVT_CALL(SetBattleCamTarget, -67, -15, -5)
|
||||
EVT_CALL(SetBattleCamOffsetZ, 45)
|
||||
EVT_CALL(SetBattleCamZoom, 169)
|
||||
EVT_CALL(MoveBattleCamOver, 50)
|
||||
EVT_THREAD
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_364)
|
||||
EVT_LOOP(7)
|
||||
EVT_CALL(StartRumble, 2)
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(1.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.2))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(2.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(1.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(1.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.25))
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(1.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.5))
|
||||
EVT_CALL(ShakeCam, 1, 0, 2, EVT_FIXED(0.2))
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 32)
|
||||
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 20, 2, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 180)
|
||||
EVT_THREAD
|
||||
EVT_CALL(N(func_802A123C_71E88C))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(40)
|
||||
EVT_CALL(N(func_802A1740_71ED90))
|
||||
EVT_CALL(N(func_802A1848_71EE98))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_WAIT_FRAMES(8)
|
||||
EVT_CALL(SetJumpAnimations, ACTOR_PLAYER, 0, ANIM_1002B, ANIM_1002B, ANIM_MIDAIR)
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_PLAYER, EVT_FIXED(1.8))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetGoalPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_80273444, 15, 0, 0)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 0)
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT_FRAMES(40)
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), EVT_PTR(N(modelCommandList)))
|
||||
EVT_SET(EVT_VAR(7), -200)
|
||||
EVT_SET(EVT_VAR(8), 0)
|
||||
EVT_SET(EVT_VAR(9), 0)
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(7), EVT_VAR(8), EVT_VAR(9))
|
||||
EVT_CALL(SetVirtualEntityScale, EVT_VAR(10), EVT_FIXED(0.71), EVT_FIXED(0.71), EVT_FIXED(0.71))
|
||||
EVT_CALL(SetVirtualEntityMoveSpeed, EVT_VAR(10), EVT_FIXED(7.0))
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(1.4))
|
||||
EVT_CALL(SetOwnerTarget, 0, 0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_PLAYER)
|
||||
EVT_CALL(GetGoalPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SUB(EVT_VAR(0), 60)
|
||||
EVT_CALL(VirtualEntityMoveTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0)
|
||||
EVT_CALL(GetGoalPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_HIT_BLOCK)
|
||||
EVT_THREAD
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_SHOCK_STILL)
|
||||
EVT_CALL(SetActorScale, ACTOR_PLAYER, EVT_FIXED(1.2), EVT_FIXED(0.9), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_PLAYER, EVT_FIXED(1.3), EVT_FIXED(0.8), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(3)
|
||||
EVT_CALL(SetActorScale, ACTOR_PLAYER, EVT_FIXED(1.2), EVT_FIXED(0.9), EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorScale, ACTOR_PLAYER, EVT_FIXED(1.0), EVT_FIXED(1.0), EVT_FIXED(1.0))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(PlayEffect, 0x6, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(1.4))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 60)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0)
|
||||
EVT_CALL(PlayEffect, 0x6, 2, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0)
|
||||
EVT_CALL(PlayEffect, 0x6, 2, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_ADD(EVT_VAR(0), 10)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0)
|
||||
EVT_CALL(PlayEffect, 0x6, 2, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 270)
|
||||
EVT_CALL(VirtualEntityMoveTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 0)
|
||||
EVT_CALL(DeleteVirtualEntity, EVT_VAR(10))
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetItemPower, ITEM_SLEEPY_SHEEP, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(MakeStatusField, EVT_VAR(0), 4096, 100, EVT_VAR(0))
|
||||
EVT_CALL(func_80252B3C, EVT_VAR(0), 1342177280, EVT_VAR(0), 0, 32)
|
||||
EVT_LABEL(1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(ChooseNextTarget, 0, EVT_VAR(0))
|
||||
EVT_IF_NE(EVT_VAR(0), -1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
s32 D_802A3E88_7214D8[] = {
|
||||
0, 0
|
||||
|
@ -35,70 +35,72 @@ ApiStatus N(func_802A13B8_71C1E8)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_SNOWMAN_DOLL;
|
||||
await N(UseItemWithEffect);
|
||||
N(FadeBackgroundToBlack)();
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_363);
|
||||
spawn {
|
||||
loop 45 {
|
||||
RandInt(300, EVT_VAR(0));
|
||||
EVT_VAR(0) -= 150;
|
||||
EVT_VAR(1) = 170;
|
||||
RandInt(50, EVT_VAR(2));
|
||||
EVT_VAR(2) -= 25;
|
||||
PlayEffect(0xE, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 60, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
sleep 2;
|
||||
}
|
||||
}
|
||||
sleep 10;
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(50);
|
||||
sleep 50;
|
||||
PlayEffect(0x60, 0, 0, 0, 20, 1.0, 160, 0, 0, 0, 0, 0, 0, 0);
|
||||
spawn {
|
||||
sleep 17;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_202E);
|
||||
StartRumble(9);
|
||||
ShakeCam(1, 0, 5, 1.0);
|
||||
sleep 46;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_202E);
|
||||
StartRumble(9);
|
||||
ShakeCam(1, 0, 5, 1.0);
|
||||
sleep 25;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_202E);
|
||||
StartRumble(9);
|
||||
ShakeCam(1, 0, 5, 1.0);
|
||||
sleep 25;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_202E);
|
||||
StartRumble(9);
|
||||
ShakeCam(1, 0, 5, 1.0);
|
||||
}
|
||||
sleep 15;
|
||||
StartRumble(10);
|
||||
ShakeCam(1, 0, 5, 1.0);
|
||||
ShakeCam(1, 0, 10, 2.0);
|
||||
ShakeCam(1, 0, 5, 1.0);
|
||||
sleep 110;
|
||||
InitTargetIterator();
|
||||
0:
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
N(func_802A123C_71C06C)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
GetItemPower(ITEM_SNOWMAN_DOLL, EVT_VAR(0), EVT_VAR(1));
|
||||
ItemDamageEnemy(EVT_VAR(0), 0x38000008, 0, EVT_VAR(0), 32);
|
||||
sleep 5;
|
||||
1:
|
||||
ChooseNextTarget(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) != -1) {
|
||||
goto 0;
|
||||
}
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 30;
|
||||
N(func_802A13B8_71C1E8)();
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000081)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(N(FadeBackgroundToBlack))
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_363)
|
||||
EVT_THREAD
|
||||
EVT_LOOP(45)
|
||||
EVT_CALL(RandInt, 300, EVT_VAR(0))
|
||||
EVT_SUB(EVT_VAR(0), 150)
|
||||
EVT_SET(EVT_VAR(1), 170)
|
||||
EVT_CALL(RandInt, 50, EVT_VAR(2))
|
||||
EVT_SUB(EVT_VAR(2), 25)
|
||||
EVT_CALL(PlayEffect, 0xE, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 60, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_END_LOOP
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 50)
|
||||
EVT_WAIT_FRAMES(50)
|
||||
EVT_CALL(PlayEffect, 0x60, 0, 0, 0, 20, EVT_FIXED(1.0), 160, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(17)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_202E)
|
||||
EVT_CALL(StartRumble, 9)
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(46)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_202E)
|
||||
EVT_CALL(StartRumble, 9)
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(25)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_202E)
|
||||
EVT_CALL(StartRumble, 9)
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(25)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_202E)
|
||||
EVT_CALL(StartRumble, 9)
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.0))
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT_FRAMES(15)
|
||||
EVT_CALL(StartRumble, 10)
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 10, EVT_FIXED(2.0))
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.0))
|
||||
EVT_WAIT_FRAMES(110)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(N(func_802A123C_71C06C), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(GetItemPower, ITEM_SNOWMAN_DOLL, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(0), 939524104, 0, EVT_VAR(0), 32)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_LABEL(1)
|
||||
EVT_CALL(ChooseNextTarget, 0, EVT_VAR(0))
|
||||
EVT_IF_NE(EVT_VAR(0), -1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(N(func_802A13B8_71C1E8))
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -47,16 +47,18 @@ ApiStatus N(func_802A123C_7217DC)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_STONE_CAP;
|
||||
await N(UseItemWithEffect);
|
||||
PlaySound(SOUND_UNKNOWN_361);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_30009);
|
||||
sleep 30;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_CROUCH);
|
||||
GetItemPower(ITEM_STONE_CAP, EVT_VAR(0), EVT_VAR(1));
|
||||
PlaySound(SOUND_UNKNOWN_362);
|
||||
N(func_802A123C_7217DC)();
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
sleep 20;
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000088)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(PlaySound, SOUND_UNKNOWN_361)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_30009)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_CROUCH)
|
||||
EVT_CALL(GetItemPower, ITEM_STONE_CAP, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(PlaySound, SOUND_UNKNOWN_362)
|
||||
EVT_CALL(N(func_802A123C_7217DC))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -22,36 +22,38 @@ ApiStatus N(func_802A12D4_7270A4)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_STOP_WATCH;
|
||||
await N(UseItemWithEffect);
|
||||
spawn {
|
||||
sleep 5;
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
}
|
||||
N(FadeBackgroundToBlack)();
|
||||
PlayEffect(0x62, 0, 0, 0, 0, 1.0, 200, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_246);
|
||||
sleep 200;
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(20);
|
||||
InitTargetIterator();
|
||||
0:
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
GetItemPower(ITEM_STOP_WATCH, EVT_VAR(0), EVT_VAR(1));
|
||||
MakeStatusField(EVT_VAR(0), 0x200000, 100, EVT_VAR(0));
|
||||
func_80252B3C(EVT_VAR(0), 0x50000000, EVT_VAR(0), 0, 32);
|
||||
1:
|
||||
sleep 5;
|
||||
ChooseNextTarget(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) != -1) {
|
||||
goto 0;
|
||||
}
|
||||
N(func_802A12D4_7270A4)();
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000092)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(N(FadeBackgroundToBlack))
|
||||
EVT_CALL(PlayEffect, 0x62, 0, 0, 0, 0, EVT_FIXED(1.0), 200, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_246)
|
||||
EVT_WAIT_FRAMES(200)
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetItemPower, ITEM_STOP_WATCH, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(MakeStatusField, EVT_VAR(0), 2097152, 100, EVT_VAR(0))
|
||||
EVT_CALL(func_80252B3C, EVT_VAR(0), 1342177280, EVT_VAR(0), 0, 32)
|
||||
EVT_LABEL(1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(ChooseNextTarget, 0, EVT_VAR(0))
|
||||
EVT_IF_NE(EVT_VAR(0), -1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(N(func_802A12D4_7270A4))
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -321,89 +321,94 @@ s32 N(D_802A2858_732B58)[] = {
|
||||
0x00000000, 0x00000001, 0x00000002, 0x00000000, 0x00000001, 0x000000000
|
||||
};
|
||||
|
||||
EvtSource N(script6) = SCRIPT({
|
||||
GetMenuSelection(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
if (EVT_VAR(1) == 211) {
|
||||
EVT_VAR(10) = (const) ITEM_KOOKY_COOKIE;
|
||||
EVT_VAR(1) = 0;
|
||||
await N(UseItemWithEffect);
|
||||
await N(EatItem);
|
||||
N(func_802A1A8C_731D8C)();
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 20;
|
||||
EVT_VAR(1) += 25;
|
||||
N(func_802A18D8_731BD8)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
N(AddFP)(EVT_VAR(3));
|
||||
sleep 10;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THUMBS_UP);
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 20;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_GOT_ITEM);
|
||||
} else {
|
||||
EVT_VAR(10) = (const) ITEM_STRANGE_CAKE;
|
||||
EVT_VAR(1) = 0;
|
||||
await N(UseItemWithEffect);
|
||||
await N(EatItem);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_GOT_ITEM);
|
||||
}
|
||||
sleep 10;
|
||||
spawn {
|
||||
sleep 220;
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_3F3);
|
||||
}
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_368);
|
||||
N(func_802A13E4_7316E4)();
|
||||
sleep 2;
|
||||
match EVT_VAR(0) {
|
||||
== 0 {
|
||||
await N(script7);
|
||||
}
|
||||
== 1 {
|
||||
await N(script8);
|
||||
}
|
||||
== 2 {
|
||||
await N(script9);
|
||||
}
|
||||
}
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(script6) = {
|
||||
EVT_CALL(GetMenuSelection, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_IF_EQ(EVT_VAR(1), 211)
|
||||
EVT_SET_CONST(EVT_VAR(10), 0xD3)
|
||||
EVT_SET(EVT_VAR(1), 0)
|
||||
EVT_EXEC_WAIT(battle_item_strange_cake_UseItemWithEffect)
|
||||
EVT_EXEC_WAIT(battle_item_strange_cake_EatItem)
|
||||
EVT_CALL(battle_item_strange_cake_func_802A1A8C_731D8C)
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 20)
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(battle_item_strange_cake_func_802A18D8_731BD8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_CALL(battle_item_strange_cake_AddFP, EVT_VAR(3))
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, 0, 0, 65586)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_CALL(SetAnimation, 0, 0, 65538)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetAnimation, 0, 0, 65567)
|
||||
EVT_ELSE
|
||||
EVT_SET_CONST(EVT_VAR(10), 0xD2)
|
||||
EVT_SET(EVT_VAR(1), 0)
|
||||
EVT_EXEC_WAIT(battle_item_strange_cake_UseItemWithEffect)
|
||||
EVT_EXEC_WAIT(battle_item_strange_cake_EatItem)
|
||||
EVT_CALL(SetAnimation, 0, 0, 65567)
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(220)
|
||||
EVT_CALL(PlaySoundAtActor, 0, 1011)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(PlaySoundAtActor, 0, 872)
|
||||
EVT_CALL(battle_item_strange_cake_func_802A13E4_7316E4)
|
||||
EVT_WAIT_FRAMES(2)
|
||||
EVT_SWITCH(EVT_VAR(0))
|
||||
EVT_CASE_EQ(0)
|
||||
EVT_EXEC_WAIT(battle_item_strange_cake_script7)
|
||||
EVT_CASE_EQ(1)
|
||||
EVT_EXEC_WAIT(battle_item_strange_cake_script8)
|
||||
EVT_CASE_EQ(2)
|
||||
EVT_EXEC_WAIT(battle_item_strange_cake_script9)
|
||||
EVT_END_SWITCH
|
||||
EVT_EXEC_WAIT(battle_item_strange_cake_PlayerGoHome)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(script7) = SCRIPT({
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 20;
|
||||
PlayEffect(0x57, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1.0, 30, 0, 0, 0, 0, 0, 0, 0);
|
||||
N(func_802A1AD8_731DD8)();
|
||||
sleep 20;
|
||||
ShowMessageBox(16, 60);
|
||||
WaitForMessageBoxDone();
|
||||
});
|
||||
EvtSource N(script7) = {
|
||||
EVT_CALL(SetAnimation, 0, 0, 65538)
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 20)
|
||||
EVT_CALL(PlayEffect, 87, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_FIXED(1.0), 30, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(battle_item_strange_cake_func_802A1AD8_731DD8)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(ShowMessageBox, 16, 60)
|
||||
EVT_CALL(WaitForMessageBoxDone)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(script8) = SCRIPT({
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 20;
|
||||
PlayEffect(0x33, 6, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1.0, 30, 0, 0, 0, 0, 0, 0, 0);
|
||||
N(func_802A1B14_731E14)();
|
||||
sleep 20;
|
||||
ShowMessageBox(17, 60);
|
||||
WaitForMessageBoxDone();
|
||||
});
|
||||
EvtSource N(script8) = {
|
||||
EVT_CALL(SetAnimation, 0, 0, 65538)
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 20)
|
||||
EVT_CALL(PlayEffect, 51, 6, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_FIXED(1.0), 30, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(battle_item_strange_cake_func_802A1B14_731E14)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(ShowMessageBox, 17, 60)
|
||||
EVT_CALL(WaitForMessageBoxDone)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(script9) = SCRIPT({
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_30004);
|
||||
SetGoalToTarget(ACTOR_PLAYER);
|
||||
GetGoalPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
spawn DoSleepHit;
|
||||
N(func_802A1B68_731E68)();
|
||||
sleep 20;
|
||||
ShowMessageBox(11, 60);
|
||||
WaitForMessageBoxDone();
|
||||
});
|
||||
EvtSource N(script9) = {
|
||||
EVT_CALL(SetAnimation, 0, 0, 196612)
|
||||
EVT_CALL(SetGoalToTarget, 0)
|
||||
EVT_CALL(GetGoalPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_EXEC(DoSleepHit)
|
||||
EVT_CALL(battle_item_strange_cake_func_802A1B68_731E68)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(ShowMessageBox, 11, 60)
|
||||
EVT_CALL(WaitForMessageBoxDone)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
|
@ -83,115 +83,119 @@ ApiStatus N(func_802A1418_7250F8)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(script6) = SCRIPT({
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 180);
|
||||
sleep 10;
|
||||
EVT_VAR(1) = EVT_VAR(15);
|
||||
await N(UseItem);
|
||||
EVT_VAR(14) = EVT_VAR(10);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THROW);
|
||||
spawn {
|
||||
sleep 20;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
}
|
||||
CreateVirtualEntity(EVT_VAR(10), 0x80283EE8);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 30;
|
||||
EVT_VAR(2) += 5;
|
||||
SetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetVirtualEntityFlags(EVT_VAR(10), 32);
|
||||
spawn {
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 45;
|
||||
MakeItemEntity(EVT_VAR(14), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0);
|
||||
EVT_VAR(14) = EVT_VAR(0);
|
||||
loop 25 {
|
||||
GetVirtualEntityPosition(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
N(func_802A123C_724F1C)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
sleep 1;
|
||||
}
|
||||
RemoveItemEntity(EVT_VAR(14));
|
||||
}
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetGoalPos(ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
SetBattleCamTarget(0xFFFFFF83, 1, 0);
|
||||
SetBattleCamOffsetZ(41);
|
||||
SetBattleCamZoom(248);
|
||||
MoveBattleCamOver(25);
|
||||
SetVirtualEntityJumpGravity(EVT_VAR(10), 0.400390625);
|
||||
EVT_VAR(2) += 5;
|
||||
VirtualEntityJumpTo(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 25);
|
||||
AddBattleCamZoom(100);
|
||||
MoveBattleCamOver(30);
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
if (EVT_VAR(11) > 0) {
|
||||
N(func_802A12EC_724FCC)(EVT_VAR(11));
|
||||
}
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11));
|
||||
sleep 20;
|
||||
SetActorYaw(ACTOR_PLAYER, 150);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 120);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 90);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 60);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 30);
|
||||
sleep 1;
|
||||
SetActorYaw(ACTOR_PLAYER, 0);
|
||||
sleep 10;
|
||||
});
|
||||
EvtSource N(script6) = {
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 180)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_SET(EVT_VAR(1), EVT_VAR(15))
|
||||
EVT_EXEC_WAIT(N(UseItem))
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(10))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THROW)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(CreateVirtualEntity, EVT_VAR(10), 0x80283EE8)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 30)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(SetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetVirtualEntityFlags, EVT_VAR(10), 32)
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 45)
|
||||
EVT_CALL(MakeItemEntity, EVT_VAR(14), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 0)
|
||||
EVT_SET(EVT_VAR(14), EVT_VAR(0))
|
||||
EVT_LOOP(25)
|
||||
EVT_CALL(GetVirtualEntityPosition, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(N(func_802A123C_724F1C), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(RemoveItemEntity, EVT_VAR(14))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(SetBattleCamTarget, -125, 1, 0)
|
||||
EVT_CALL(SetBattleCamOffsetZ, 41)
|
||||
EVT_CALL(SetBattleCamZoom, 248)
|
||||
EVT_CALL(MoveBattleCamOver, 25)
|
||||
EVT_CALL(SetVirtualEntityJumpGravity, EVT_VAR(10), EVT_FIXED(0.4))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(VirtualEntityJumpTo, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 25)
|
||||
EVT_CALL(AddBattleCamZoom, 100)
|
||||
EVT_CALL(MoveBattleCamOver, 30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_IF_GT(EVT_VAR(11), 0)
|
||||
EVT_CALL(N(func_802A12EC_724FCC), EVT_VAR(11))
|
||||
EVT_END_IF
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(11))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 150)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 120)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 90)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 60)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||
EVT_WAIT_FRAMES(1)
|
||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 0)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_SUPER_SODA;
|
||||
await N(UseItemWithEffect);
|
||||
InitTargetIterator();
|
||||
GetOwnerTarget(EVT_VAR(0), EVT_VAR(1));
|
||||
if (EVT_VAR(0) == ACTOR_PLAYER) {
|
||||
PlaySoundAtActor(ACTOR_PLAYER, SOUND_UNKNOWN_2095);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_DRINK);
|
||||
sleep 45;
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 35;
|
||||
N(func_802A1418_7250F8)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5);
|
||||
N(AddFP)(5);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 20;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THUMBS_UP);
|
||||
sleep 30;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5);
|
||||
InitTargetIterator();
|
||||
GetOwnerTarget(EVT_VAR(0), EVT_VAR(1));
|
||||
N(func_802A1378_725058)(ACTOR_PLAYER);
|
||||
sleep 20;
|
||||
} else {
|
||||
EVT_VAR(11) = 0;
|
||||
EVT_VAR(12) = 0;
|
||||
EVT_VAR(15) = 0;
|
||||
await N(script6);
|
||||
}
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x0000009B)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(GetOwnerTarget, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_IF_EQ(EVT_VAR(0), 0)
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_UNKNOWN_2095)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_DRINK)
|
||||
EVT_WAIT_FRAMES(45)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 35)
|
||||
EVT_CALL(N(func_802A1418_7250F8), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5)
|
||||
EVT_CALL(N(AddFP), 5)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 20)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THUMBS_UP)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(GetOwnerTarget, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(N(func_802A1378_725058), 0)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_ELSE
|
||||
EVT_SET(EVT_VAR(11), 0)
|
||||
EVT_SET(EVT_VAR(12), 0)
|
||||
EVT_SET(EVT_VAR(15), 0)
|
||||
EVT_EXEC_WAIT(N(script6))
|
||||
EVT_END_IF
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -29,40 +29,42 @@ ApiStatus N(func_802A123C_72223C)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_TASTY_TONIC;
|
||||
await N(UseItemWithEffect);
|
||||
InitTargetIterator();
|
||||
GetOwnerTarget(EVT_VAR(0), EVT_VAR(1));
|
||||
if (EVT_VAR(0) == 0) {
|
||||
await N(DrinkItem);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 20;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THUMBS_UP);
|
||||
sleep 30;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
|
||||
N(func_802A123C_72223C)(ACTOR_PLAYER);
|
||||
sleep 20;
|
||||
} else {
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5);
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 20;
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5);
|
||||
N(func_802A123C_72223C)(ACTOR_PARTNER);
|
||||
sleep 20;
|
||||
}
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x89)
|
||||
EVT_EXEC_WAIT(battle_item_tasty_tonic_UseItemWithEffect)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(GetOwnerTarget, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_IF_EQ(EVT_VAR(0), 0)
|
||||
EVT_EXEC_WAIT(battle_item_tasty_tonic_DrinkItem)
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 20)
|
||||
EVT_CALL(SetAnimation, 0, 0, 65586)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(SetAnimation, 0, 0, 65538)
|
||||
EVT_CALL(GetActorPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
|
||||
EVT_CALL(battle_item_tasty_tonic_func_802A123C_72223C, 0)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_ELSE
|
||||
EVT_CALL(GetActorPos, 256, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5)
|
||||
EVT_CALL(GetActorPos, 256, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 20)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, 256, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5)
|
||||
EVT_CALL(battle_item_tasty_tonic_func_802A123C_72223C, 256)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_END_IF
|
||||
EVT_EXEC_WAIT(battle_item_tasty_tonic_PlayerGoHome)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -51,35 +51,37 @@ ApiStatus N(func_802A1420_722F60)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_THUNDER_BOLT;
|
||||
await N(UseItemWithEffect);
|
||||
spawn {
|
||||
sleep 5;
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
}
|
||||
N(FadeBackgroundToBlack)();
|
||||
PlaySound(SOUND_UNKNOWN_365);
|
||||
sleep 10;
|
||||
InitTargetIterator();
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
N(func_802A123C_722D7C)();
|
||||
sleep 5;
|
||||
StartRumble(10);
|
||||
ShakeCam(1, 0, 5, 1.0);
|
||||
GetItemPower(ITEM_THUNDER_RAGE, EVT_VAR(0), EVT_VAR(1));
|
||||
ItemDamageEnemy(EVT_VAR(0), 0x38000020, 0, EVT_VAR(0), 32);
|
||||
1:
|
||||
sleep 5;
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(20);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 30;
|
||||
N(func_802A1420_722F60)();
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x84)
|
||||
EVT_EXEC_WAIT(battle_item_thunder_bolt_UseItemWithEffect)
|
||||
EVT_THREAD
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(battle_item_thunder_bolt_FadeBackgroundToBlack)
|
||||
EVT_CALL(PlaySound, 869)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_CALL(SetGoalToTarget, -127)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(battle_item_thunder_bolt_func_802A123C_722D7C)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(StartRumble, 10)
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.0))
|
||||
EVT_CALL(GetItemPower, 130, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(0), 939524128, 0, EVT_VAR(0), 32)
|
||||
EVT_LABEL(1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_CALL(SetAnimation, 0, 0, 65538)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(battle_item_thunder_bolt_func_802A1420_722F60)
|
||||
EVT_EXEC_WAIT(battle_item_thunder_bolt_PlayerGoHome)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -51,41 +51,43 @@ ApiStatus N(func_802A1354_71B4F4)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_THUNDER_RAGE;
|
||||
await N(UseItemWithEffect);
|
||||
parallel {
|
||||
sleep 5;
|
||||
UseBattleCamPreset(2);
|
||||
MoveBattleCamOver(20);
|
||||
}
|
||||
N(FadeBackgroundToBlack)();
|
||||
PlaySound(SOUND_UNKNOWN_365);
|
||||
sleep 10;
|
||||
InitTargetIterator();
|
||||
0:
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
ItemCheckHit(EVT_VAR(0), 0x10000000, 0, EVT_VAR(0), 0);
|
||||
if (EVT_VAR(0) == 6) {
|
||||
goto 1;
|
||||
}
|
||||
N(func_802A1354_71B4F4)();
|
||||
sleep 5;
|
||||
StartRumble(10);
|
||||
ShakeCam(1, 0, 5, 1.0);
|
||||
SetGoalToTarget(ACTOR_SELF);
|
||||
GetItemPower(ITEM_THUNDER_RAGE, EVT_VAR(0), EVT_VAR(1));
|
||||
ItemDamageEnemy(EVT_VAR(0), 0x38000020, 0, EVT_VAR(0), 32);
|
||||
1:
|
||||
sleep 5;
|
||||
ChooseNextTarget(0, EVT_VAR(0));
|
||||
if (EVT_VAR(0) != -1) {
|
||||
goto 0;
|
||||
}
|
||||
UseBattleCamPreset(3);
|
||||
MoveBattleCamOver(20);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 30;
|
||||
N(func_802A12D4_71B474)();
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x00000082)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CHILD_THREAD
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(UseBattleCamPreset, 2)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_CALL(N(FadeBackgroundToBlack))
|
||||
EVT_CALL(PlaySound, SOUND_UNKNOWN_365)
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(InitTargetIterator)
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(ItemCheckHit, EVT_VAR(0), 268435456, 0, EVT_VAR(0), 0)
|
||||
EVT_IF_EQ(EVT_VAR(0), 6)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(N(func_802A1354_71B4F4))
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(StartRumble, 10)
|
||||
EVT_CALL(ShakeCam, 1, 0, 5, EVT_FIXED(1.0))
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetItemPower, ITEM_THUNDER_RAGE, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(ItemDamageEnemy, EVT_VAR(0), 939524128, 0, EVT_VAR(0), 32)
|
||||
EVT_LABEL(1)
|
||||
EVT_WAIT_FRAMES(5)
|
||||
EVT_CALL(ChooseNextTarget, 0, EVT_VAR(0))
|
||||
EVT_IF_NE(EVT_VAR(0), -1)
|
||||
EVT_GOTO(0)
|
||||
EVT_END_IF
|
||||
EVT_CALL(UseBattleCamPreset, 3)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(N(func_802A12D4_71B474))
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -26,28 +26,30 @@ ApiStatus N(func_802A12FC_723A7C)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_SUPER_SHROOM;
|
||||
await N(UseItemWithEffect);
|
||||
AddBattleCamZoom(50);
|
||||
MoveBattleCamOver(20);
|
||||
await N(EatItem);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 35;
|
||||
N(func_802A123C_7239BC)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
|
||||
N(func_802A12FC_723A7C)();
|
||||
sleep 10;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THUMBS_UP);
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 20;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x0000008C)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_CALL(AddBattleCamZoom, 50)
|
||||
EVT_CALL(MoveBattleCamOver, 20)
|
||||
EVT_EXEC_WAIT(N(EatItem))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 35)
|
||||
EVT_CALL(N(func_802A123C_7239BC), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
|
||||
EVT_CALL(N(func_802A12FC_723A7C))
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THUMBS_UP)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -26,26 +26,28 @@ ApiStatus N(func_802A12FC_72453C)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_ULTRA_SHROOM;
|
||||
await N(UseItemWithEffect);
|
||||
await N(EatItem);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(0) += 0;
|
||||
EVT_VAR(1) += 35;
|
||||
N(func_802A123C_72447C)(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(1) += 25;
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D7520(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20);
|
||||
N(func_802A12FC_72453C)();
|
||||
sleep 10;
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_THUMBS_UP);
|
||||
sleep 30;
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(2) += 5;
|
||||
func_802D75D8(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
sleep 20;
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x0000008E)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_EXEC_WAIT(N(EatItem))
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(0), 0)
|
||||
EVT_ADD(EVT_VAR(1), 35)
|
||||
EVT_CALL(N(func_802A123C_72447C), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(1), 25)
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D7520, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20)
|
||||
EVT_CALL(N(func_802A12FC_72453C))
|
||||
EVT_WAIT_FRAMES(10)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_THUMBS_UP)
|
||||
EVT_WAIT_FRAMES(30)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_ADD(EVT_VAR(2), 5)
|
||||
EVT_CALL(func_802D75D8, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20)
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -13,23 +13,25 @@ ApiStatus N(func_802A123C_71AA2C)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
#include "UseItem.inc.c"
|
||||
|
||||
EvtSource N(main) = SCRIPT({
|
||||
EVT_VAR(10) = (const) ITEM_VOLT_SHROOM;
|
||||
await N(UseItemWithEffect);
|
||||
await N(EatItem);
|
||||
SetAnimation(ACTOR_PLAYER, 0, ANIM_10002);
|
||||
GetActorPos(ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
|
||||
EVT_VAR(3) = 20;
|
||||
MultiplyByActorScale(EVT_VAR(3));
|
||||
EVT_VAR(1) += EVT_VAR(3);
|
||||
EVT_VAR(3) = 1.0;
|
||||
MultiplyByActorScale(EVT_VAR(3));
|
||||
PlayEffect(0x57, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3), 30, 0, 0, 0, 0, 0, 0, 0);
|
||||
PlaySound(SOUND_UNKNOWN_379);
|
||||
GetItemPower(ITEM_VOLT_SHROOM, EVT_VAR(0), EVT_VAR(1));
|
||||
N(func_802A123C_71AA2C)();
|
||||
sleep 20;
|
||||
ShowMessageBox(16, 60);
|
||||
WaitForMessageBoxDone();
|
||||
await N(PlayerGoHome);
|
||||
});
|
||||
EvtSource N(main) = {
|
||||
EVT_SET_CONST(EVT_VAR(10), 0x0000008B)
|
||||
EVT_EXEC_WAIT(N(UseItemWithEffect))
|
||||
EVT_EXEC_WAIT(N(EatItem))
|
||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_10002)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
|
||||
EVT_SET(EVT_VAR(3), 20)
|
||||
EVT_CALL(MultiplyByActorScale, EVT_VAR(3))
|
||||
EVT_ADD(EVT_VAR(1), EVT_VAR(3))
|
||||
EVT_SETF(EVT_VAR(3), EVT_FIXED(1.0))
|
||||
EVT_CALL(MultiplyByActorScale, EVT_VAR(3))
|
||||
EVT_CALL(PlayEffect, 0x57, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3), 30, 0, 0, 0, 0, 0, 0, 0)
|
||||
EVT_CALL(PlaySound, SOUND_UNKNOWN_379)
|
||||
EVT_CALL(GetItemPower, ITEM_VOLT_SHROOM, EVT_VAR(0), EVT_VAR(1))
|
||||
EVT_CALL(N(func_802A123C_71AA2C))
|
||||
EVT_WAIT_FRAMES(20)
|
||||
EVT_CALL(ShowMessageBox, 16, 60)
|
||||
EVT_CALL(WaitForMessageBoxDone)
|
||||
EVT_EXEC_WAIT(N(PlayerGoHome))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,15 +1,19 @@
|
||||
#include "common.h"
|
||||
#include "camera.h"
|
||||
|
||||
EvtSource ShakeCam1 = SCRIPT({
|
||||
group 0;
|
||||
ShakeCam(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1.0);
|
||||
});
|
||||
EvtSource ShakeCam1 = {
|
||||
EVT_SET_GROUP(0)
|
||||
EVT_CALL(ShakeCam, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_FIXED(1.0))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtSource ShakeCamX = SCRIPT({
|
||||
group 0;
|
||||
ShakeCam(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
|
||||
});
|
||||
EvtSource ShakeCamX = {
|
||||
EVT_SET_GROUP(0)
|
||||
EVT_CALL(ShakeCam, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
ApiStatus SetCamEnabled(Evt* script, s32 isInitialCall) {
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
|
102
src/evt/evt.c
102
src/evt/evt.c
@ -1152,7 +1152,7 @@ ApiStatus evt_handle_thread(Evt* script) {
|
||||
opcode = *endLine++;
|
||||
nargs = *endLine++;
|
||||
endLine += nargs;
|
||||
} while (opcode != EVT_OP_END_SPAWN_THREAD);
|
||||
} while (opcode != EVT_OP_END_THREAD);
|
||||
|
||||
script->ptrNextLine = endLine;
|
||||
newScript = start_script_in_group((EvtSource*)startLine, script->priority, 0x60, script->groupFlags);
|
||||
@ -1189,7 +1189,7 @@ ApiStatus evt_handle_child_thread(Evt* script) {
|
||||
opcode = *endLine++;
|
||||