UNPKG

ygocore-interface

Version:

[WIP] ygocore interface (message definitions, constants, api signatures)

1,276 lines (1,275 loc) 31.1 kB
/// <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;