Skip to content

Instantly share code, notes, and snippets.

@FunctionDJ
Created March 25, 2021 19:48
Show Gist options
  • Save FunctionDJ/1a68b2572e600320999594083a9b3505 to your computer and use it in GitHub Desktop.
Save FunctionDJ/1a68b2572e600320999594083a9b3505 to your computer and use it in GitHub Desktop.
interface WaitEvent {
ignoreSlowDown: boolean
time: number
type: "WAIT"
}
interface ShowSideMsgEvent {
message: {
en_US: string
de_DE: string
fr_FR?: string
langUid: number
zh_CN: string
ja_JP: string
ko_KR: string
zh_TW: string
}
person: {
person: string
expression: string
}
type: "SHOW_SIDE_MSG"
}
interface ChangeVarNumberEvent {
type: "CHANGE_VAR_NUMBER"
changeType: "add"
varName: string
value: number
}
interface SelectRandomEvent {
type: "SELECT_RANDOM"
options: unknown[]
"0_0"?: ActualEvent[]
"1_0"?: ActualEvent[]
"2_0"?: ActualEvent[]
"3_0"?: ActualEvent[]
"4_0"?: ActualEvent[]
"5_0"?: ActualEvent[]
"6_0"?: ActualEvent[]
"7_0"?: ActualEvent[]
"8_0"?: ActualEvent[]
"9_0"?: ActualEvent[]
}
interface IfEvent {
withElse: false
type: "IF"
condition: string
thenStep: ActualEvent[]
}
interface SetForceCombatEvent {
type: "SET_FORCE_COMBAT"
value: boolean
}
interface SetOverlayEvent {
type: "SET_OVERLAY"
alpha: 0 | 1
time: 0 | 1
lighter: false
color: "black"
}
interface SetOverlayCornerEvent {
type: "SET_OVERLAY_CORNER"
alpha: number
time: 0 | 1
color: "BLACK"
}
interface SpawnArenaWaveEvent {
type: "SPAWN_ARENA_WAVE"
focusPlayer: false
silent: boolean
increase: boolean
}
interface SetAllEnemyTargetAction {
type: "SET_ALL_ENEMY_TARGET"
target: {
player: true
}
}
interface SetCameraTargetEvent {
type: "SET_CAMERA_TARGET"
zoom: number
waitSkip: number
wait: boolean
transition: "EASE_IN_OUT"
speed: "NORMAL" | "FAST"
offsetX: 0
offsetY: 0
lockZ?: true
entity: { varName: string } | { player: true }
}
interface ShowArenaRoundGUIAction {
type: "SHOW_ARENA_ROUND_GUI"
wait: false
}
interface PlaySoundAction {
type: "PLAY_SOUND"
volume: number
name: string
loop: boolean
offset: 0
startTime: 0
sound: string
}
interface StartArenaRoundAction {
type: "START_ARENA_ROUND"
}
interface AddPlayerCameraTargetAction {
type: "ADD_PLAYER_CAMERA_TARGET"
entity: {
varName: string
}
}
interface SetFinalDramaticEffectAction {
type: "SET_FINAL_DRAMATIC_EFFECT"
effectType: string
}
interface RemoveProxiesAction {
type: "REMOVE_PROXIES"
group: ""
}
interface PauseTimerAction {
type: "PAUSE_TIMER"
name: string
}
interface RemovePlayerCameraTargetAction {
entity: {
varName: string
}
type: "REMOVE_PLAYER_CAMERA_TARGET"
}
interface StopSkipModeAction {
"type": "STOP_SKIP_MODE"
}
type ActualEvent = (
WaitEvent
| ShowSideMsgEvent
| ChangeVarNumberEvent
| SelectRandomEvent
| IfEvent
| SetForceCombatEvent
| SetOverlayEvent
| SpawnArenaWaveEvent
| SetCameraTargetEvent
| ShowArenaRoundGUIAction
| PlaySoundAction
| StartArenaRoundAction
| AddPlayerCameraTargetAction
| SetFinalDramaticEffectAction
| SetAllEnemyTargetAction
| RemoveProxiesAction
| PauseTimerAction
| RemovePlayerCameraTargetAction
| StopSkipModeAction
| SetOverlayCornerEvent
| {
type: "RESET_CAMERA"
speed: "FAST"
transition: "EASE_IN_OUT"
wait: true
waitSkip: number
}
| {
type: "SET_ZOOM_BLUR"
zoomType: "MEDIUM"
fadeIn: number
duration: number
fadeOut: number
}
| {
type: "DO_ACTION"
entity: { player: true } | { party: string }
action: ActualEvent[]
repeating: false
wait: boolean
keepState: true
immediately: false
}
| {
type: "SHOW_ANIMATION"
anim: string
viaWalkConfig: false
wait: false
followUp?: string
}
| {
type: "JUMP"
jumpHeight: "M"
wait: true
ignoreSounds: true
}
| {
type: "WAIT"
time: number
}
| {
type: "NAVIGATE_ESCAPE_ENTITY"
entity: {
player: true
}
maxTime: number
distance: number
throwing: false
planOnly: false
}
| {
type: "SET_FACE_TO_ENTITY"
entity: { player: true }
rotate: true
rotateSpeed: number
}
| {
type: "END_ARENA_ROUND"
}
| {
type: "SHOW_EFFECT"
align: "BASE" | "BOTTOM"
entity: { player: true } | { party: string }
duration: number
group: ""
wait: false
waitSkip: 0
effect: {
sheet: string
name: string
}
offset: {
x: number
y: number
z: number
}
}
| {
type: "CLEAR_EFFECTS"
entity: { player: true }
}
| { type: "TP_TO_CUR_ARENA_ROUND" }
| { type: "REMOVE_ALL_ENEMY_TARGET" }
| { type: "END_ARENA_CUP" }
)
interface ParallelEventContainer {
frequency: "ALWAYS"
repeat: "ONCE" | "REPEAT"
eventType: "PARALLEL"
overrideSideMessage: boolean
condition?: string
runOnTrigger?: Number[]
event: ActualEvent[]
type: {
type: "CALL"
}
loopCount?: number
}
interface CutSceneEventContainer {
frequency: "ALWAYS"
repeat: "ONCE" | "REPEAT"
eventType: "CUTSCENE"
overrideSideMessage: boolean
runOnTrigger?: Number[]
event: ActualEvent[]
type: {
type: "CALL"
}
}
interface Database {
commonEvents: {
[key: string]: ParallelEventContainer | CutSceneEventContainer
}
}
export default Database;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment