ygocore-interface
Version:
[WIP] ygocore interface (message definitions, constants, api signatures)
1,276 lines (1,275 loc) • 31.1 kB
TypeScript
/// <reference types="node" />
export declare type Optional<T> = T | undefined;
export interface MsgRetry {
msgtype: 'MSG_RETRY';
}
export interface MsgHint {
msgtype: 'MSG_HINT';
type: number;
player: number;
data: number;
}
export interface MsgWin {
msgtype: 'MSG_WIN';
player: number;
type: number;
}
export interface MsgWaiting {
msgtype: 'MSG_WAITING';
}
export interface MsgStart {
msgtype: 'MSG_START';
player_type: number;
start_lp: Array<number>;
deck_count: Array<{
main_deck: number;
extra_deck: number;
}>;
}
export interface MsgUpdateData {
msgtype: 'MSG_UPDATE_DATA';
player: number;
location: number;
cards: Array<{
query_flag: number;
code: Optional<number>;
info: Optional<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
alias: Optional<number>;
type: Optional<number>;
level: Optional<number>;
rank: Optional<number>;
attribute: Optional<number>;
race: Optional<number>;
attack: Optional<number>;
defense: Optional<number>;
base_attack: Optional<number>;
base_defense: Optional<number>;
reason: Optional<number>;
reason_card: Optional<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
equip_card: Optional<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
target_cards: Array<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
overlay_cards: Array<number>;
counters: Array<{
type: number;
count: number;
}>;
owner: Optional<number>;
status: Optional<number>;
lscale: Optional<number>;
rscale: Optional<number>;
link: Optional<number>;
link_marker: Optional<number>;
}>;
}
export interface MsgUpdateCard {
msgtype: 'MSG_UPDATE_CARD';
player: number;
location: number;
sequence: number;
query_flag: number;
code: Optional<number>;
alias: Optional<number>;
info: Optional<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
type: Optional<number>;
level: Optional<number>;
rank: Optional<number>;
attribute: Optional<number>;
race: Optional<number>;
attack: Optional<number>;
defense: Optional<number>;
base_attack: Optional<number>;
base_defense: Optional<number>;
reason: Optional<number>;
reason_card: Optional<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
equip_card: Optional<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
target_cards: Array<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
overlay_cards: Array<number>;
counters: Array<{
type: number;
count: number;
}>;
owner: Optional<number>;
status: Optional<number>;
lscale: Optional<number>;
rscale: Optional<number>;
link: Optional<number>;
link_marker: Optional<number>;
}
export interface MsgSelectBattleCmd {
msgtype: 'MSG_SELECT_BATTLECMD';
player: number;
activatable: Array<{
code_and_flags: number;
controller: number;
location: number;
sequence: number;
description: number;
}>;
attackable: Array<{
code: number;
controller: number;
location: number;
sequence: number;
directly: number;
}>;
to_main_phase2: number;
to_end_phase: number;
}
export interface MsgSelectIdleCmd {
msgtype: 'MSG_SELECT_IDLECMD';
player: number;
summonables: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
special_summonables: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
reposables: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
setable_monsters: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
setable_spells: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
activatables: Array<{
code: number;
controller: number;
location: number;
sequence: number;
description: number;
}>;
to_battle_phase: number;
to_end_phase: number;
shuffle_hand: number;
}
export interface MsgSelectEffectyn {
msgtype: 'MSG_SELECT_EFFECTYN';
player: number;
code: number;
controller: number;
location: number;
sequence: number;
ignore: number;
desc: number;
}
export interface MsgSelectYesno {
msgtype: 'MSG_SELECT_YESNO';
player: number;
desc: number;
}
export interface MsgSelectOption {
msgtype: 'MSG_SELECT_OPTION';
player: number;
options: Array<number>;
}
export interface MsgSelectCard {
msgtype: 'MSG_SELECT_CARD';
player: number;
non_cancelable: number;
range: {
minimal: number;
maximal: number;
};
selections: Array<{
code: number;
controller: number;
location: number;
sequence: number;
subsequence: number;
}>;
}
export interface MsgSelectUnselectCard {
msgtype: 'MSG_SELECT_UNSELECT_CARD';
player: number;
should_continue: number;
non_cancelable: number;
range: {
minimal: number;
maximal: number;
};
not_selected: Array<{
code: number;
controller: number;
location: number;
sequence: number;
subsequence: number;
}>;
selected: Array<{
code: number;
controller: number;
location: number;
sequence: number;
subsequence: number;
}>;
}
export interface MsgSelectChain {
msgtype: 'MSG_SELECT_CHAIN';
player: number;
c1: number;
spe_count: number;
forced: number;
hint0: number;
hint1: number;
activatables: Array<{
flag: number;
code: number;
controller: number;
location: number;
sequence: number;
subsequence: number;
desc: number;
}>;
}
export interface MsgSelectPlace {
msgtype: 'MSG_SELECT_PLACE';
player: number;
minimal_selection: number;
pattern: number;
}
export interface MsgSelectDisfield {
msgtype: 'MSG_SELECT_DISFIELD';
player: number;
minimal_selection: number;
pattern: number;
}
export interface MsgSelectPosition {
msgtype: 'MSG_SELECT_POSITION';
player: number;
code: number;
positions: number;
}
export interface MsgSelectTribute {
msgtype: 'MSG_SELECT_TRIBUTE';
player: number;
non_cancelable: number;
range: {
minimal: number;
maximal: number;
};
selections: Array<{
code: number;
controller: number;
location: number;
sequence: number;
operation_param: number;
}>;
}
export interface MsgSelectCounter {
msgtype: 'MSG_SELECT_COUNTER';
player: number;
type: number;
count: number;
selections: Array<{
code: number;
controller: number;
location: number;
sequence: number;
operation_param: number;
}>;
}
export interface MsgSelectSum {
msgtype: 'MSG_SELECT_SUM';
select_mode: number;
player: number;
sum_up_to: number;
range: {
minimal: number;
maximal: number;
};
includes: Array<{
code: number;
controller: number;
location: number;
sequence: number;
value: number;
}>;
optionals: Array<{
code: number;
controller: number;
location: number;
sequence: number;
value: number;
}>;
}
export interface MsgSortCard {
msgtype: 'MSG_SORT_CARD';
player: number;
selection: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
}
export interface MsgSortChain {
msgtype: 'MSG_SORT_CHAIN';
player: number;
selection: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
}
export interface MsgConfirmDeckTop {
msgtype: 'MSG_CONFIRM_DECKTOP';
player: number;
cards: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
}
export interface MsgConfirmExtratop {
msgtype: 'MSG_CONFIRM_EXTRATOP';
player: number;
cards: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
}
export interface MsgConfirmCards {
msgtype: 'MSG_CONFIRM_CARDS';
player: number;
cards: Array<{
code: number;
controller: number;
location: number;
sequence: number;
}>;
}
export interface MsgShuffleDeck {
msgtype: 'MSG_SHUFFLE_DECK';
player: number;
}
export interface MsgRefreshDeck {
msgtype: 'MSG_REFRESH_DECK';
player: number;
}
export interface MsgSwapGraveDeck {
msgtype: 'MSG_SWAP_GRAVE_DECK';
player: number;
}
export interface MsgNewTurn {
msgtype: 'MSG_NEW_TURN';
player: number;
}
export interface MsgShuffleHand {
msgtype: 'MSG_SHUFFLE_HAND';
player: number;
cards: Array<number>;
}
export interface MsgShuffleExtra {
msgtype: 'MSG_SHUFFLE_EXTRA';
player: number;
cards: Array<number>;
}
export interface MsgDraw {
msgtype: 'MSG_DRAW';
player: number;
cards: Array<number>;
}
export interface MsgReverseDeck {
msgtype: 'MSG_REVERSE_DECK';
}
export interface MsgDeckTop {
msgtype: 'MSG_DECK_TOP';
player: number;
sequence: number;
code: number;
}
export interface MsgShuffleSetCard {
msgtype: 'MSG_SHUFFLE_SET_CARD';
location: number;
c1: number;
pass1: Array<{
controller: number;
location: number;
sequence: number;
ignore: number;
}>;
pass2: Array<{
controller: number;
location: number;
sequence: number;
ignore: number;
}>;
}
export interface MsgNewPhase {
msgtype: 'MSG_NEW_PHASE';
phase: number;
}
export interface MsgMove {
msgtype: 'MSG_MOVE';
code: number;
previous: {
controller: number;
location: number;
sequence: number;
position: number;
};
current: {
controller: number;
location: number;
sequence: number;
position: number;
};
reason: number;
}
export interface MsgPosChange {
msgtype: 'MSG_POS_CHANGE';
code: number;
current_controller: number;
current_location: number;
current_sequence: number;
previous_position: number;
current_position: number;
}
export interface MsgSet {
msgtype: 'MSG_SET';
code: number;
controller: number;
location: number;
sequence: number;
position: number;
}
export interface MsgSwap {
msgtype: 'MSG_SWAP';
first: {
code: number;
controller: number;
location: number;
sequence: number;
position: number;
};
second: {
code: number;
controller: number;
location: number;
sequence: number;
position: number;
};
}
export interface MsgFieldDisabled {
msgtype: 'MSG_FIELD_DISABLED';
pattern: number;
}
export interface MsgSummoning {
msgtype: 'MSG_SUMMONING';
code: number;
controller: number;
location: number;
sequence: number;
position: number;
}
export interface MsgSpsummoning {
msgtype: 'MSG_SPSUMMONING';
code: number;
controller: number;
location: number;
sequence: number;
position: number;
}
export interface MsgFlipsummoning {
msgtype: 'MSG_FLIPSUMMONING';
code: number;
controller: number;
location: number;
sequence: number;
position: number;
}
export interface MsgSummoned {
msgtype: 'MSG_SUMMONED';
}
export interface MsgSpsummoned {
msgtype: 'MSG_SPSUMMONED';
}
export interface MsgFlipsummoned {
msgtype: 'MSG_FLIPSUMMONED';
}
export interface MsgChaining {
msgtype: 'MSG_CHAINING';
code: number;
previous_controller: number;
previous_location: number;
previous_sequence: number;
subsequence: number;
controller: number;
location: number;
sequence: number;
desc: number;
param: number;
}
export interface MsgChained {
msgtype: 'MSG_CHAINED';
param: number;
}
export interface MsgChainSolving {
msgtype: 'MSG_CHAIN_SOLVING';
param: number;
}
export interface MsgChainSolved {
msgtype: 'MSG_CHAIN_SOLVED';
param: number;
}
export interface MsgChainNegated {
msgtype: 'MSG_CHAIN_NEGATED';
param: number;
}
export interface MsgChainDisabled {
msgtype: 'MSG_CHAIN_DISABLED';
param: number;
}
export interface MsgChainEnd {
msgtype: 'MSG_CHAIN_END';
}
export interface MsgCardSelected {
msgtype: 'MSG_CARD_SELECTED';
}
export interface MsgBecomeTarget {
msgtype: 'MSG_BECOME_TARGET';
cards: Array<{
controller: number;
location: number;
sequence: number;
subsequence: number;
}>;
}
export interface MsgRandomSelected {
msgtype: 'MSG_RANDOM_SELECTED';
player: number;
cards: Array<{
controller: number;
location: number;
sequence: number;
subsequence: number;
}>;
}
export interface MsgDamage {
msgtype: 'MSG_DAMAGE';
player: number;
value: number;
}
export interface MsgRecover {
msgtype: 'MSG_RECOVER';
player: number;
value: number;
}
export interface MsgLpUpdate {
msgtype: 'MSG_LPUPDATE';
player: number;
value: number;
}
export interface MsgPayLpCost {
msgtype: 'MSG_PAY_LPCOST';
player: number;
value: number;
}
export interface MsgEquip {
msgtype: 'MSG_EQUIP';
card: {
controller: number;
location: number;
sequence: number;
ignore: number;
};
target: {
controller: number;
location: number;
sequence: number;
ignore: number;
};
}
export interface MsgCardTarget {
msgtype: 'MSG_CARD_TARGET';
card: {
controller: number;
location: number;
sequence: number;
ignore: number;
};
target: {
controller: number;
location: number;
sequence: number;
ignore: number;
};
}
export interface MsgCancelTarget {
msgtype: 'MSG_CANCEL_TARGET';
card: {
controller: number;
location: number;
sequence: number;
ignore: number;
};
target: {
controller: number;
location: number;
sequence: number;
ignore: number;
};
}
export interface MsgUnequip {
msgtype: 'MSG_UNEQUIP';
controller: number;
location: number;
sequence: number;
ignore: number;
}
export interface MsgAddCounter {
msgtype: 'MSG_ADD_COUNTER';
type: number;
controller: number;
location: number;
sequence: number;
count: number;
}
export interface MsgRemoveCounter {
msgtype: 'MSG_REMOVE_COUNTER';
type: number;
controller: number;
location: number;
sequence: number;
count: number;
}
export interface MsgAttack {
msgtype: 'MSG_ATTACK';
attacker: {
controller: number;
location: number;
sequence: number;
ignore: number;
};
defender: {
controller: number;
location: number;
sequence: number;
ignore: number;
};
}
export interface MsgBattle {
msgtype: 'MSG_BATTLE';
attacker: {
controller: number;
location: number;
sequence: number;
subsequence: number;
atkvalue: number;
defvalue: number;
ignore: number;
};
defender: {
controller: number;
location: number;
sequence: number;
subsequence: number;
atkvalue: number;
defvalue: number;
ignore: number;
};
}
export interface MsgAttackDisabled {
msgtype: 'MSG_ATTACK_DISABLED';
}
export interface MsgDamageStepStart {
msgtype: 'MSG_DAMAGE_STEP_START';
}
export interface MsgDamageStepEnd {
msgtype: 'MSG_DAMAGE_STEP_END';
}
export interface MsgMissedEffect {
msgtype: 'MSG_MISSED_EFFECT';
controller: number;
location: number;
sequence: number;
subsequence: number;
code: number;
}
export interface MsgTossCoin {
msgtype: 'MSG_TOSS_COIN';
player: number;
tosses: Array<number>;
}
export interface MsgTossDice {
msgtype: 'MSG_TOSS_DICE';
player: number;
tosses: Array<number>;
}
export interface MsgRockPaperScissors {
msgtype: 'MSG_ROCK_PAPER_SCISSORS';
player: number;
}
export interface MsgHandRes {
msgtype: 'MSG_HAND_RES';
result: number;
}
export interface MsgAnnounceRace {
msgtype: 'MSG_ANNOUNCE_RACE';
player: number;
count: number;
available: number;
}
export interface MsgAnnounceAttrib {
msgtype: 'MSG_ANNOUNCE_ATTRIB';
player: number;
count: number;
available: number;
}
export interface MsgAnnounceCard {
msgtype: 'MSG_ANNOUNCE_CARD';
player: number;
declarable_type: number;
}
export interface MsgAnnounceNumber {
msgtype: 'MSG_ANNOUNCE_NUMBER';
player: number;
announcements: Array<number>;
}
export interface MsgAnnounceCardFilter {
msgtype: 'MSG_ANNOUNCE_CARD_FILTER';
player: number;
announcements: Array<number>;
}
export interface MsgCardHint {
msgtype: 'MSG_CARD_HINT';
controller: number;
location: number;
sequence: number;
ignore: number;
chtype: number;
value: number;
}
export interface MsgPlayerHint {
msgtype: 'MSG_PLAYER_HINT';
player: number;
chtype: number;
value: number;
}
export interface MsgMatchKill {
msgtype: 'MSG_MATCH_KILL';
match_kill: number;
}
export interface MsgTagSwap {
msgtype: 'MSG_TAG_SWAP';
player: number;
m: number;
e: number;
p: number;
h: number;
}
export interface MsgReloadField {
msgtype: 'MSG_RELOAD_FIELD';
duel_rule: number;
players: Array<{
lp: number;
mzone_cards: Array<Optional<{
position: number;
xyz_count: number;
}>>;
card_positions: Array<Optional<number>>;
deck_count: number;
hand_count: number;
grave_count: number;
banish_count: number;
extra_count: number;
extra_pendu_count: number;
chains: Array<{
code: number;
previous_controller: number;
previous_location: number;
previous_sequence: number;
previous_subsequence: number;
current_controller: number;
current_location: number;
current_sequence: number;
desc: number;
}>;
}>;
}
/**
* message type
*/
export declare type Message = MsgRetry | MsgHint | MsgWin | MsgWaiting | MsgStart | MsgUpdateData | MsgUpdateCard | MsgSelectBattleCmd | MsgSelectIdleCmd | MsgSelectEffectyn | MsgSelectYesno | MsgSelectOption | MsgSelectCard | MsgSelectUnselectCard | MsgSelectChain | MsgSelectPlace | MsgSelectDisfield | MsgSelectPosition | MsgSelectTribute | MsgSelectCounter | MsgSelectSum | MsgSortCard | MsgSortChain | MsgConfirmDeckTop | MsgConfirmExtratop | MsgConfirmCards | MsgShuffleDeck | MsgRefreshDeck | MsgSwapGraveDeck | MsgNewTurn | MsgShuffleHand | MsgShuffleExtra | MsgDraw | MsgReverseDeck | MsgDeckTop | MsgShuffleSetCard | MsgNewPhase | MsgMove | MsgPosChange | MsgSet | MsgSwap | MsgFieldDisabled | MsgSummoning | MsgSpsummoning | MsgFlipsummoning | MsgSummoned | MsgSpsummoned | MsgFlipsummoned | MsgChaining | MsgChained | MsgChainSolving | MsgChainSolved | MsgChainNegated | MsgChainDisabled | MsgChainEnd | MsgCardSelected | MsgBecomeTarget | MsgRandomSelected | MsgDamage | MsgRecover | MsgLpUpdate | MsgPayLpCost | MsgEquip | MsgCardTarget | MsgCancelTarget | MsgUnequip | MsgAddCounter | MsgRemoveCounter | MsgAttack | MsgBattle | MsgAttackDisabled | MsgDamageStepStart | MsgDamageStepEnd | MsgMissedEffect | MsgTossCoin | MsgTossDice | MsgRockPaperScissors | MsgHandRes | MsgAnnounceRace | MsgAnnounceAttrib | MsgAnnounceCard | MsgAnnounceNumber | MsgAnnounceCardFilter | MsgCardHint | MsgPlayerHint | MsgMatchKill | MsgTagSwap | MsgReloadField;
/**
* returned from `query_card()`
*/
export interface QueryCardChunk {
query_flag: number;
code: Optional<number>;
info: Optional<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
alias: Optional<number>;
type: Optional<number>;
level: Optional<number>;
rank: Optional<number>;
attribute: Optional<number>;
race: Optional<number>;
attack: Optional<number>;
defense: Optional<number>;
base_attack: Optional<number>;
base_defense: Optional<number>;
reason: Optional<number>;
reason_card: Optional<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
equip_card: Optional<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
target_cards: Array<{
controller: number;
location: number;
position: number;
sequence: number;
}>;
overlay_cards: Array<number>;
counters: Array<{
type: number;
count: number;
}>;
owner: Optional<number>;
status: Optional<number>;
lscale: Optional<number>;
rscale: Optional<number>;
link: Optional<number>;
link_marker: Optional<number>;
}
export declare function parseFieldCardQueryResult(buffer: Buffer): QueryCardChunk[];
export declare function parseCardQueryResult(buffer: Buffer): QueryCardChunk;
/**
* parse bytes into message
*/
export declare function parseMessage(from: Buffer): Message[];
export declare const OPERATION: {
SUCCESS: number;
FAIL: number;
};
export declare const TRUE = 1;
export declare const FALSE = 0;
export declare const NULL = 0;
export declare const LOCATION: {
DECK: number;
HAND: number;
MZONE: number;
SZONE: number;
GRAVE: number;
REMOVED: number;
EXTRA: number;
OVERLAY: number;
ONFIELD: number;
FZONE: number;
PZONE: number;
};
export declare const POS: {
FACEUP_ATTACK: number;
FACEDOWN_ATTACK: number;
FACEUP_DEFENSE: number;
FACEDOWN_DEFENSE: number;
FACEUP: number;
FACEDOWN: number;
ATTACK: number;
DEFENSE: number;
};
export declare const NO_FLIP_EFFECT = 65536;
export declare const FLIP_SET_AVAILABLE = 131072;
export declare const TYPE: {
MONSTER: number;
SPELL: number;
TRAP: number;
NORMAL: number;
EFFECT: number;
FUSION: number;
RITUAL: number;
TRAPMONSTER: number;
SPIRIT: number;
UNION: number;
DUAL: number;
TUNER: number;
SYNCHRO: number;
TOKEN: number;
QUICKPLAY: number;
CONTINUOUS: number;
EQUIP: number;
FIELD: number;
COUNTER: number;
FLIP: number;
TOON: number;
XYZ: number;
PENDULUM: number;
SPSUMMON: number;
LINK: number;
};
export declare const ATTRIBUTE: {
EARTH: number;
WATER: number;
FIRE: number;
WIND: number;
LIGHT: number;
DARK: number;
DEVINE: number;
};
export declare const RACE: {
WARRIOR: number;
SPELLCASTER: number;
FAIRY: number;
FIEND: number;
ZOMBIE: number;
MACHINE: number;
AQUA: number;
PYRO: number;
ROCK: number;
WINDBEAST: number;
PLANT: number;
INSECT: number;
THUNDER: number;
DRAGON: number;
BEAST: number;
BEASTWARRIOR: number;
DINOSAUR: number;
FISH: number;
SEASERPENT: number;
REPTILE: number;
PSYCHO: number;
DEVINE: number;
CREATORGOD: number;
WYRM: number;
CYBERSE: number;
};
export declare const REASON: {
DESTROY: number;
RELEASE: number;
TEMPORARY: number;
MATERIAL: number;
SUMMON: number;
BATTLE: number;
EFFECT: number;
COST: number;
ADJUST: number;
LOST_TARGET: number;
RULE: number;
SPSUMMON: number;
DISSUMMON: number;
FLIP: number;
DISCARD: number;
RDAMAGE: number;
RRECOVER: number;
RETURN: number;
FUSION: number;
SYNCHRO: number;
RITUAL: number;
XYZ: number;
REPLACE: number;
DRAW: number;
REDIRECT: number;
LINK: number;
};
export declare const STATUS: {
DISABLED: number;
TO_ENABLE: number;
TO_DISABLE: number;
PROC_COMPLETE: number;
SET_TURN: number;
NO_LEVEL: number;
BATTLE_RESULT: number;
SPSUMMON_STEP: number;
FORM_CHANGED: number;
SUMMONING: number;
EFFECT_ENABLED: number;
SUMMON_TURN: number;
DESTROY_CONFIRMED: number;
LEAVE_CONFIRMED: number;
BATTLE_DESTROYED: number;
COPYING_EFFECT: number;
CHAINING: number;
SUMMON_DISABLED: number;
ACTIVATE_DISABLED: number;
EFFECT_REPLACED: number;
FUTURE_FUSION: number;
ATTACK_CANCELED: number;
INITIALIZING: number;
JUST_POS: number;
CONTINUOUS_POS: number;
FORBIDDEN: number;
ACT_FROM_HAND: number;
OPPO_BATTLE: number;
FLIP_SUMMON_TURN: number;
SPSUMMON_TURN: number;
};
export declare const QUERY: {
CODE: number;
POSITION: number;
ALIAS: number;
TYPE: number;
LEVEL: number;
RANK: number;
ATTRIBUTE: number;
RACE: number;
ATTACK: number;
DEFENSE: number;
BASE_ATTACK: number;
BASE_DEFENSE: number;
REASON: number;
REASON_CARD: number;
EQUIP_CARD: number;
TARGET_CARD: number;
OVERLAY_CARD: number;
COUNTERS: number;
OWNER: number;
STATUS: number;
LSCALE: number;
RSCALE: number;
LINK: number;
};
export declare const LINK_MARKER: {
BOTTOM_LEFT: number;
BOTTOM: number;
BOTTOM_RIGHT: number;
LEFT: number;
RIGHT: number;
TOP_LEFT: number;
TOP: number;
TOP_RIGHT: number;
};
export declare const MSG: {
RETRY: number;
HINT: number;
WAITING: number;
START: number;
WIN: number;
UPDATE_DATA: number;
UPDATE_CARD: number;
REQUEST_DECK: number;
SELECT_BATTLECMD: number;
SELECT_IDLECMD: number;
SELECT_EFFECTYN: number;
SELECT_YESNO: number;
SELECT_OPTION: number;
SELECT_CARD: number;
SELECT_CHAIN: number;
SELECT_PLACE: number;
SELECT_POSITION: number;
SELECT_TRIBUTE: number;
SORT_CHAIN: number;
SELECT_COUNTER: number;
SELECT_SUM: number;
SELECT_DISFIELD: number;
SORT_CARD: number;
SELECT_UNSELECT_CARD: number;
CONFIRM_DECKTOP: number;
CONFIRM_CARDS: number;
SHUFFLE_DECK: number;
SHUFFLE_HAND: number;
REFRESH_DECK: number;
SWAP_GRAVE_DECK: number;
SHUFFLE_SET_CARD: number;
REVERSE_DECK: number;
DECK_TOP: number;
SHUFFLE_EXTRA: number;
NEW_TURN: number;
NEW_PHASE: number;
CONFIRM_EXTRATOP: number;
MOVE: number;
POS_CHANGE: number;
SET: number;
SWAP: number;
FIELD_DISABLED: number;
SUMMONING: number;
SUMMONED: number;
SPSUMMONING: number;
SPSUMMONED: number;
FLIPSUMMONING: number;
FLIPSUMMONED: number;
CHAINING: number;
CHAINED: number;
CHAIN_SOLVING: number;
CHAIN_SOLVED: number;
CHAIN_END: number;
CHAIN_NEGATED: number;
CHAIN_DISABLED: number;
CARD_SELECTED: number;
RANDOM_SELECTED: number;
BECOME_TARGET: number;
DRAW: number;
DAMAGE: number;
RECOVER: number;
EQUIP: number;
LPUPDATE: number;
UNEQUIP: number;
CARD_TARGET: number;
CANCEL_TARGET: number;
PAY_LPCOST: number;
ADD_COUNTER: number;
REMOVE_COUNTER: number;
ATTACK: number;
BATTLE: number;
ATTACK_DISABLED: number;
DAMAGE_STEP_START: number;
DAMAGE_STEP_END: number;
MISSED_EFFECT: number;
BE_CHAIN_TARGET: number;
CREATE_RELATION: number;
RELEASE_RELATION: number;
TOSS_COIN: number;
TOSS_DICE: number;
ROCK_PAPER_SCISSORS: number;
HAND_RES: number;
ANNOUNCE_RACE: number;
ANNOUNCE_ATTRIB: number;
ANNOUNCE_CARD: number;
ANNOUNCE_NUMBER: number;
ANNOUNCE_CARD_FILTER: number;
CARD_HINT: number;
TAG_SWAP: number;
RELOAD_FIELD: number;
AI_NAME: number;
SHOW_HINT: number;
PLAYER_HINT: number;
MATCH_KILL: number;
CUSTOM_MSG: number;
};
export declare const HINT: {
EVENT: number;
MESSAGE: number;
SELECTMSG: number;
OPSELECTED: number;
EFFECT: number;
RACE: number;
ATTRIB: number;
CODE: number;
NUMBER: number;
CARD: number;
};
export declare const CHINT: {
TURN: number;
CARD: number;
RACE: number;
ATTRIBUTE: number;
NUMBER: number;
DESC_ADD: number;
DESC_REMOVE: number;
};
export declare const PHINT_DESC: {
ADD: number;
REMOVE: number;
};
export declare const EDESC: {
OPERATION: number;
RESET: number;
};
export declare const OPCODE: {
ADD: number;
SUB: number;
MUL: number;
DIV: number;
AND: number;
OR: number;
NEG: number;
NOT: number;
ISCODE: number;
ISSETCARD: number;
ISTYPE: number;
ISRACE: number;
ISATTRIBUTE: number;
};
export declare const PLAYER: {
NONE: number;
ALL: number;
};
export declare const PHASE: {
DRAW: number;
STANDBY: number;
MAIN1: number;
BATTLE_START: number;
BATTLE_STEP: number;
DAMAGE: number;
DAMAGE_CAL: number;
BATTLE: number;
MAIN2: number;
END: number;
};
export declare const DUEL: {
TEST_MODE: number;
ATTACK_FIRST_TURN: number;
OBSOLETE_RULING: number;
PSEUDO_SHUFFLE: number;
TAG_MODE: number;
SIMPLE_AI: number;
};
/**
* questions to the players
*/
export declare type Question = MsgSelectBattleCmd | MsgSelectIdleCmd | MsgSelectEffectyn | MsgSelectYesno | MsgSelectOption | MsgSelectCard | MsgSelectUnselectCard | MsgSelectChain | MsgSelectPlace | MsgSelectDisfield | MsgSelectPosition | MsgSelectTribute | MsgSelectCounter | MsgSelectSum | MsgSortCard | MsgSortChain | MsgRockPaperScissors | MsgAnnounceRace | MsgAnnounceAttrib | MsgAnnounceCard | MsgAnnounceNumber | MsgAnnounceCardFilter;
/**
* check if a given message is a 'question'
*/
export declare function isQuestionMessage(message: Message): message is Question;