Last active
March 26, 2021 16:05
-
-
Save FunctionDJ/c98c36451b0d700c5082800e5cc7ac14 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type GameAction = | |
"moveDirX" | |
| "aiming" | |
| "charge" | |
| "menuBack" | |
| "menuHotkeyHelp2" | |
| "questCircleLeft" | |
| "dashing" | |
| "guarding" | |
type Entity = | |
{ player: true } | |
| { party: string } | |
| { varName: string } | |
| { | |
global: true | |
name: string | |
} | |
interface Resource { | |
sheet: string | |
name: string | |
} | |
type ChangeType = "add" | "set" | "mul" | |
type Transition = "EASE_OUT" | "EASE_IN_OUT" | |
type Character = "main.lea" | "greenies.female-researcher" | "main.sergey-av" | "main.buggy" | "main.grumpy" | "main.guild-leader" | "main.luke" | "main.shizuka" | "main.schneider" | "antagonists.sidekick" | "antagonists.fancyguy" | "main.glasses" | "main.emilie" | "misc.radical-fish" | "main.schneider2" | "guests.sao" | "main.sergey" | |
type Expression = "NOD" | "DEFAULT" | "EXCITED" | "SMUG" | "PROUD" | "ANNOYED" | "JOKING" | "DOWN" | "EXHAUSTED" | "THINKING" | "SURPRISED" | "NOTIFYING" | "SERIOUS" | "EYES_CLOSED" | "GRIN" | "SHAKE" | "LAUGHING" | "NERVOUS" | "EMBARRASSED" | "SCARED" | "SMILE" | "SURPRISED_TOWARD" | "MOPING" | "SHOCKED" | "SHOUT" | "ANGRY" | "DETERMINED" | "UP" | "ASTONISHED" | "PRE_CRY2" | "PRE_CRY1" | "SAD" | "SHAKE_EYE_CLOSED" | "MASKED_GRIN" | "MASKED" | "SARCASTIC" | "AWAY" | "HOLD_HORNS_ANNOYED" | "TOWARDS" | "WORRIED" | "WHISTLING" | "WONDERING" | "LAUGH" | "WINK" | "CHARMED" | "COMPLAINING" | "PISSED" | "SKEPTICAL" | "PONDERING" | "NORM_SERIOUS" | "PONDERING_NORM" | "EVIL_GRIN" | "FUNNY_SMILE" | "BRIGHT" | "CONFLICTED" | "TOWARD" | "INNOCENT" | "SURPRISED_AWAY" | "AWWW" | "POINTING" | "LECTURING" | "CONTENT" | "SHOUTING" | "HAND_POINT" | "PANIC" | "THOUGHTFUL" | "SLEEP" | "CURIOUS" | "TAUNTING" | "WATCH_OUT_BADASS" | "SUSPICIOUS" | "UNCERTAIN" | "NOD_SAD" | "HAPPY" | "SWEATY_SMILE" | "SHRUG" | "CULTURE" | "PAIN" | "BLANK" | "DISGUSTED" | "BROKEN" | "DEAD_INSIDE" | "CONCERNED" | "DENYING" | "INSANE_DOWN" | "INSANE" | "DUMBFOUNDED" | "RAGING" | "DOWN_EYE_CLOSED" | |
interface Coordinates2D { | |
x: number | |
y: number | |
} | |
interface Translations { | |
en_US: string; | |
de_DE: string; | |
fr_FR?: string; | |
langUid: number | |
zh_CN: string; | |
ja_JP: string; | |
ko_KR: string; | |
zh_TW: string; | |
} | |
interface Person { | |
person: Character | |
expression: Expression | |
} | |
export interface ShowSideMessageAction { | |
type: "SHOW_SIDE_MSG"; | |
message: Translations | |
person: Person | |
} | |
interface IfActionBase { | |
type: "IF" | |
condition: string | |
thenStep: Action[] | |
} | |
interface IfAction extends IfActionBase { | |
withElse: false | |
} | |
interface IfWithElseAction extends IfActionBase { | |
withElse: true | |
elseStep: Action[] | |
} | |
export type Action = | |
| { type: "STOP_SKIP_MODE" } | |
| { type: "START_ARENA_ROUND" } | |
| { type: "TP_TO_CUR_ARENA_ROUND" } | |
| { type: "REMOVE_ALL_ENEMY_TARGET" } | |
| { type: "END_ARENA_ROUND", onDeath?: true } | |
| { type: "END_ARENA_CUP" } | |
| { type: "SET_PLAYER_SP_LEVEL", level: string } | |
| { type: "SET_PARTY_MEMBER_SP_LEVEL", level: string, member: string } | |
| { type: "REMOVE_ALL_PLAYER_CAMERAS" } | |
| { | |
type: "MANUAL_COMBATANT_REVIVE" | |
entity: Entity | |
} | |
| { | |
type: "ADD_PLAYER_CAMERA_TARGET"; | |
entity: Entity; | |
} | |
| { | |
type: "ADD_SLOW_MOTION" | |
name: string | |
factor: number | |
time: 0 | |
} | |
| { | |
type: "ADD_CP" | |
element: "NEUTRAL" | |
amount: 1 | |
} | |
| { | |
type: "SET_FINAL_DRAMATIC_EFFECT"; | |
effectType: string; | |
} | |
| { | |
type: "REMOVE_PROXIES"; | |
group: ""; | |
} | |
| { | |
type: "PAUSE_TIMER"; | |
name: string; | |
} | |
| { | |
type: "RESUME_BGM" | |
mode: "SLOW" | "MEDIUM" | |
} | |
| { | |
type: "SET_PLAYER_CORE" | |
core: string | |
value: boolean | |
} | |
| { | |
type: "REMOVE_PLAYER_CAMERA_TARGET"; | |
entity: Entity; | |
} | |
| { | |
type: "SHOW_ARENA_ROUND_GUI"; | |
wait: false; | |
} | |
| { | |
type: "SET_ALL_ENEMY_TARGET"; | |
target: Entity; | |
} | |
| { | |
type: "SET_FORCE_COMBAT"; | |
value: boolean; | |
} | |
| { | |
type: "CLEAR_EFFECTS"; | |
entity: Entity; | |
} | |
| { | |
type: "CLEAR_MSG" | |
side: "ALL" | |
} | |
| { | |
type: "CLEAR_SLOW_MOTION" | |
name: string | |
time: 1 | |
} | |
| { | |
type: "WAIT"; | |
time: number; | |
} | |
| { | |
type: "SET_FORCE_COMBAT"; | |
value: boolean; | |
} | |
| { | |
type: "CHANGE_VAR_STRING" | |
changeType: ChangeType | |
value: string | |
varName: string | |
} | |
| { | |
type: "RESET_SKILL_TREE" | |
element: string | |
} | |
| { | |
type: "WAIT"; | |
ignoreSlowDown: boolean; | |
time: number; | |
} | |
| { | |
type: "KILL_ENEMIES" | |
enemyType: "", | |
noRumble: true, | |
} | |
| { | |
type: "RUMBLE_SCREEN" | |
rumbleType: "RANDOM" | |
name: "" | |
duration: number | |
power: "STRONG" | "STRONGER" | |
speed: "FASTER" | |
fade: true | |
} | |
| { | |
type: "SET_FACE" | |
face: "SOUTH" | "EAST" | |
rotate: true | |
rotateSpeed: number | |
} | |
| { | |
type: "REMOVE_MSG_PERSON" | |
person: Character | |
} | |
| { | |
type: "SHOW_MSG" | |
message: Translations | |
autoContinue: boolean | |
person: Person | |
} | |
| { | |
type: "SET_LANDMARK_ACTIVE_STATE" | |
state: false | |
area: string | |
landmark?: string | |
} | |
| { | |
type: "SET_MSG_EXPRESSION" | |
person: Person | |
} | |
| { | |
type: "UNDO_OPENED_CHEST_TRACK" | |
area: string | |
chestId: number | |
map: string | |
variable?: string | |
} | |
| { | |
type: "SET_CAMERA_ZOOM" | |
zoom: number | |
duration: number | |
transition: Transition | |
} | |
| { | |
type: "SHOW_CENTER_MSG" | |
overMenu?: true | |
titleText: Translations | |
text: Translations | |
} | |
| { | |
type: "SHOW_TUTORIAL_MSG" | |
text: Translations | |
pos: Coordinates2D | |
size: Coordinates2D | |
direction: "BOTTOM_RIGHT" | "TOP_RIGHT" | "BOTTOM_LEFT" | "TOP_LEFT" | |
connectPos: number | |
stopTime: false | |
} | |
| { | |
type: "SHOW_EXTERN_ANIM" | |
wait: false | |
anim: Resource | |
} | |
| { | |
type: "JUMP"; | |
jumpHeight: "M"; | |
wait: true; | |
ignoreSounds: boolean; | |
} | |
| { | |
type: "SET_CONTACT_TYPE" | |
member: string | |
status: "UNKNOWN" | |
} | |
| { | |
type: "ADD_PARTY_MEMBER" | |
member: string | |
temporary?: false | |
skipEffect: boolean | |
} | |
| IfAction | IfWithElseAction | |
| { | |
type: "CHANGE_VAR_BOOL" | |
changeType: ChangeType | |
map?: string | |
varName: string | |
value: boolean | |
} | |
| { | |
type: "SHOW_TUTORIAL_PLAYER_MSG" | |
stopTime: true | |
text: Translations | |
targetType: "PLAYER" | "CROSSHAIR" | |
size: Coordinates2D | |
} | |
| { | |
type: "GOTO_LABEL" | |
name: "end" | "denied" | "tutorialStart" | "leave" | |
} | |
| { type: "START_AUTO_CTRL" } | |
| { | |
type: "LABEL" | |
name: string | |
} | |
| { | |
type: "TRIGGER_COMMON_EVENTS" | |
commonEventType: "MENU_LEAVE" | |
} | |
| { | |
type: "SHOW_TUTORIAL_START" | |
msgType: "TUTORIAL" | "GENERIC" | |
title: Translations | |
content: Translations | |
image?: string | |
acceptStep: Action[] | |
cancelStep: Action[] | |
} | |
| { | |
type: "RING_PRIVATE_MSG" | |
outgoing: true | |
} | |
| { | |
type: "START_PRIVATE_MSG" | |
} | |
| { | |
type: "END_PRIVATE_MSG" | |
skipSounds: false | |
} | |
| { | |
type: "SET_CAMERA_BETWEEN" | |
entity1: Entity | |
entity2: Entity | |
speed: "FAST" | |
transition: Transition | |
wait: true | |
waitSkip: number | |
zoom: 1 | |
} | |
| { | |
type: "HIDE_ENTITY" | |
entity: Entity | |
skipEffects: false | |
} | |
| { | |
type: "SET_FACE_TO_ENTITY"; | |
entity: Entity; | |
rotate: true; | |
rotateSpeed: number; | |
} | |
| { | |
type: "CHANGE_VAR_NUMBER"; | |
changeType: ChangeType | |
varName: string; | |
value: number | { varName: string }; | |
} | |
| { | |
type: "CHANGE_VAR_STRING" | |
varName: string | |
value: string | |
changeType: ChangeType | |
} | |
| { | |
type: "SET_OVERLAY"; | |
alpha: 0 | 1; | |
time: 0 | 1; | |
lighter: false; | |
color: "black"; | |
} | |
| { | |
type: "SET_OVERLAY_CORNER"; | |
alpha: number; | |
time: 0 | 1; | |
color: "BLACK"; | |
} | |
| { | |
type: "SHOW_BOARD_MSG" | |
text: Translations | |
center: boolean | |
autoContinue: false | |
} | |
| { | |
type: "SET_MOBILITY_BLOCK" | |
value: "TELEPORT" | |
} | |
| { | |
type: "TELEPORT" | |
map: string | |
marker: "checkpoint" | "east" | "start" | "quest-hub-2" | |
} | |
| { | |
type: "UNLOCK_TROPHY" | |
trophy: string | |
} | |
| { | |
type: "REMOVE_ITEM" | |
item: string | |
amount: number | |
unequip?: true | |
} | |
| { | |
type: "REMOVE_PARTY_MEMBER" | |
member: string | |
skipEffect: boolean | |
} | |
| { | |
type: "GIVE_ITEM" | |
item: string | |
amount: number | { varName: string } | |
skip: boolean | |
} | |
| { | |
type: "CLEAR_BOARD_MSG" | |
} | |
| { | |
type: "SHOW_GET_MSG" | |
msgType: "OBTAINED" | "EXTENDED" | "REMOVED" | |
object: Translations | |
} | |
| { | |
type: "SOLVE_QUEST_CONDITION" | |
quest: { | |
quest: string | |
label: string | |
} | |
} | |
| { | |
type: "PAUSE_BGM" | |
mode: "SLOW" | "FAST" | "MEDIUM_OUT" | |
} | |
| { | |
type: "ADD_MSG_PERSON" | |
name?: Translations | |
side: "LEFT" | "RIGHT" | |
order: number | |
clearSide: false | |
person: Person | |
} | |
| { | |
type: "SPAWN_ARENA_WAVE"; | |
focusPlayer: false; | |
silent: boolean; | |
increase: boolean; | |
} | |
| { | |
type: "SET_ZOOM_BLUR"; | |
zoomType: "MEDIUM" | "LIGHT"; | |
fadeIn: number; | |
duration: number; | |
fadeOut: number; | |
} | |
| { | |
type: "RESET_CAMERA"; | |
speed: "FAST" | "NORMAL"; | |
transition: Transition | |
wait: true; | |
waitSkip: number; | |
} | |
| { | |
type: "SHOW_ANIMATION"; | |
anim: string; | |
viaWalkConfig: false; | |
wait: false; | |
followUp?: string; | |
} | |
| { | |
type: "PLAY_SOUND"; | |
volume: number; | |
name: string; | |
loop: boolean; | |
offset: 0; | |
startTime: 0; | |
speed?: number | |
sound: string; | |
} | |
| { | |
type: "SET_AUTO_CTRL_STICK" | |
stick: "left" | "right" | |
value: Coordinates2D | |
duration: number | |
} | |
| { | |
type: "SET_AUTO_CTRL_ACTION" | |
action: GameAction | "menuConfirm" | "menuDown" | "menu" | "menuUp" | |
value: 1 | |
hold: boolean | |
deviceFilter: "" | "GAMEPAD" | |
} | |
| { | |
type: "NAVIGATE_ESCAPE_ENTITY"; | |
entity: Entity; | |
maxTime: number; | |
distance: number; | |
throwing: false; | |
planOnly: false; | |
} | |
| { | |
type: "RESET_SP" | |
target: Entity | |
sp: number | |
} | |
| { | |
type: "SELECT_FIRST" | |
options: string[] | |
"0": ShowSideMessageAction[] | |
"1": ShowSideMessageAction[] | |
"2": ShowSideMessageAction[] | |
"3": ShowSideMessageAction[] | |
} | |
| { | |
type: "DO_ACTION"; | |
entity: Entity; | |
action: Action[]; | |
repeating: false; | |
wait: boolean; | |
keepState: boolean; | |
immediately: false; | |
} | |
| { | |
type: "UNLOCK_LORE" | |
notify: true | |
lore: string | |
} | |
| { | |
type: "RESET_TRADER" | |
trader: string | |
} | |
| { | |
type: "SET_STAT_MAP_NUMBER" | |
map: string | |
stat: string | |
value: { | |
varName: string | |
} | |
} | |
| { | |
type: "SPAWN_ARENA_WAVE"; | |
focusPlayer: false; | |
silent: boolean; | |
increase: boolean; | |
} | |
| { | |
type: "SET_AUTO_CTRL_MOUSE" | |
pos: Coordinates2D | |
duration: number | |
} | |
| { | |
type: "SHOW_MODAL_CHOICE" | |
"0": Action[] | |
"1": Action[] | |
text: Translations | |
options: { | |
"0": " " | |
label: Translations | |
}[] | |
} | |
| { | |
type: "END_AUTO_CTRL" | |
} | |
| { | |
type: "WAIT_UNTIL_ACTION_DONE" | |
entity: Entity | |
} | |
| { | |
type: "CLEAR_AUTO_CTRL_ACTION" | |
action: GameAction | |
deviceFilter: "" | |
} | |
| { | |
type: "SET_VAR_COMBAT_ART_TYPE_WITH_MIN_LEVEL" | |
level: number | |
varName: string | |
} | |
| { | |
type: "SWITCH_TO_ELEMENT_WITH_COMBAT_ART" | |
artType?: "THROW" | "ATTACK" | "DASH" | "GUARD" | |
level: number | |
skipEffect: false | |
} | |
| { | |
type: "SHOW_EFFECT"; | |
actionDetached?: false | |
fixPos?: false | |
align: "BASE" | "BOTTOM" | "CENTER"; | |
entity?: Entity; | |
rotateFace?: number | |
duration: number; | |
group?: "" | "scale"; | |
wait: false; | |
flipLeftFace?: true | |
waitSkip: 0; | |
effect: Resource; | |
offset: { | |
x: number; | |
y: number; | |
z: number; | |
}; | |
} | |
| { type: "CLEAR_ANIMATION" } | |
| ShowSideMessageAction | |
| { | |
type: "SELECT_RANDOM"; | |
options: unknown[]; | |
"0_0"?: Action[]; | |
"1_0"?: Action[]; | |
"0_1"?: Action[]; | |
"1_1"?: Action[]; | |
"2_0"?: Action[]; | |
"0_2"?: Action[]; | |
"3_0"?: Action[]; | |
"0_3"?: Action[]; | |
"4_0"?: Action[]; | |
"5_0"?: Action[]; | |
"6_0"?: Action[]; | |
"7_0"?: Action[]; | |
"8_0"?: Action[]; | |
"9_0"?: Action[]; | |
} | |
| { | |
type: "SET_CAMERA_TARGET"; | |
zoom: number; | |
waitSkip: number; | |
wait: boolean; | |
transition: Transition | |
speed: "NORMAL" | "FAST" | "FASTER" | |
offsetX: 0; | |
offsetY: number; | |
lockZ?: true; | |
entity: Entity; | |
}; | |
type EventType = | |
{ | |
type: "CALL" | |
} | |
| { | |
type: "SOCIAL_ACTION" | |
member?: string | |
actionType: "PARTY_JOIN" | "PARTY_LEAVE" | "CONTACT" | |
} | |
| { | |
type: "ENEMY_ATTACKS" | |
enemies?: string[] | |
killCount?: 1 | |
rank?: 0 | |
battleStarted?: true | |
levelGap?: number | |
levelGapAbove?: number | |
levelGapBelow?: number | |
playerStarted?: boolean | |
} | |
| { | |
type: "BATTLE_OVER" | |
killCount: number | |
rank?: "S" | "D" | |
} | |
| { | |
type: "COOLDOWN_START" | |
enemies?: string[] | |
killCount: number | |
rank?: "D" | |
rankReached?: "S" | "A" | "B" | |
enemy?: string | string[] | |
} | |
| { | |
type: "MAP_ENTERED" | |
} | |
| { | |
type: "LEVEL_UP" | |
level: 0 | |
killCount: 1 | |
rank: 0 | |
} | |
| { | |
type: "TRIGGER_COMMON_EVENTS" | |
} | |
| { | |
type: "FORCE_UPDATE" | |
} | |
| { | |
type: "MENU_LEAVE" | |
} | |
| { | |
type: "QUEST_ACCEPTED" | |
} | |
| { | |
type: "PARTY_MEMBER_EVENT" | |
member: string | |
actionType?: "PARTY_JOIN" | |
eventType: "DIES" | "REVIVED" | "EQUIP_UPDATE" | |
} | |
| { | |
type: "DUNGEON_TRANSITION" | |
mapTransition: "" | |
areaTransition: "ENTER" | "LEAVE" | |
transitionType: "ENTER" | "LEAVE" | |
} | |
| { | |
type: "ENEMY_DEFEATED" | |
killCount: 1 | |
rank: 0 | |
enemy?: string | |
} | |
interface Event { | |
frequency: "ALWAYS" | "REGULAR" | "SOMETIMES"; | |
repeat: "ONCE" | "REPEAT"; | |
condition?: string | |
overrideSideMessage?: boolean; | |
runOnTrigger?: number[]; | |
type: EventType | |
loopCount?: number | |
event: Action[]; | |
eventType: "PARALLEL" | "CUTSCENE" | |
} | |
export interface CommonEvents { | |
[key: string]: Event | |
} | |
export interface Database { | |
commonEvents: CommonEvents; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment