ygopro-msg-encode 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +4 -0
- package/.eslintrc.js +25 -0
- package/.prettierrc +4 -0
- package/AGENTS.md +12 -0
- package/CHANGES.md +270 -0
- package/CTOS_STOC_IMPLEMENTATION.md +279 -0
- package/FINAL_SUMMARY.md +357 -0
- package/FULL_PAYLOAD_SUMMARY.md +491 -0
- package/FULL_PAYLOAD_UPDATE.md +598 -0
- package/IMPLEMENTATION_SUMMARY.md +294 -0
- package/LICENSE +22 -0
- package/MSG_IMPLEMENTATION_SUMMARY.md +358 -0
- package/OPPONENT_VIEW_SUMMARY.md +387 -0
- package/PROJECT_COMPLETE.md +565 -0
- package/QUICK_REFERENCE.md +352 -0
- package/README.md +494 -0
- package/REAL_IP_STRING_UPDATE.md +289 -0
- package/TESTS_MIGRATION.md +342 -0
- package/VARIABLE_LENGTH_STRINGS.md +224 -0
- package/VARIABLE_LENGTH_UPDATE.md +229 -0
- package/dist/index.cjs +5131 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.mjs +5185 -0
- package/dist/index.mjs.map +7 -0
- package/dist/src/binary/binary-meta.d.ts +18 -0
- package/dist/src/binary/fill-binary-fields.d.ts +2 -0
- package/dist/src/metadata.d.ts +10 -0
- package/dist/src/proto-base/payload-base.d.ts +8 -0
- package/dist/src/proto-base/registry-base.d.ts +13 -0
- package/dist/src/protos/common/host-info.d.ts +12 -0
- package/dist/src/protos/common/index.d.ts +1 -0
- package/dist/src/protos/ctos/base.d.ts +17 -0
- package/dist/src/protos/ctos/index.d.ts +3 -0
- package/dist/src/protos/ctos/proto/chat.d.ts +9 -0
- package/dist/src/protos/ctos/proto/create-game.d.ts +8 -0
- package/dist/src/protos/ctos/proto/external-address.d.ts +12 -0
- package/dist/src/protos/ctos/proto/hand-result.d.ts +5 -0
- package/dist/src/protos/ctos/proto/hs-notready.d.ts +4 -0
- package/dist/src/protos/ctos/proto/hs-ready.d.ts +4 -0
- package/dist/src/protos/ctos/proto/hs-start.d.ts +4 -0
- package/dist/src/protos/ctos/proto/hs-toduelist.d.ts +4 -0
- package/dist/src/protos/ctos/proto/hs-toobserver.d.ts +4 -0
- package/dist/src/protos/ctos/proto/index.d.ts +19 -0
- package/dist/src/protos/ctos/proto/join-game.d.ts +7 -0
- package/dist/src/protos/ctos/proto/kick.d.ts +5 -0
- package/dist/src/protos/ctos/proto/leave-game.d.ts +4 -0
- package/dist/src/protos/ctos/proto/player-info.d.ts +5 -0
- package/dist/src/protos/ctos/proto/request-field.d.ts +4 -0
- package/dist/src/protos/ctos/proto/response.d.ts +7 -0
- package/dist/src/protos/ctos/proto/surrender.d.ts +4 -0
- package/dist/src/protos/ctos/proto/time-confirm.d.ts +4 -0
- package/dist/src/protos/ctos/proto/tp-result.d.ts +5 -0
- package/dist/src/protos/ctos/proto/update-deck.d.ts +11 -0
- package/dist/src/protos/ctos/registry.d.ts +3 -0
- package/dist/src/protos/msg/base.d.ts +9 -0
- package/dist/src/protos/msg/index.d.ts +3 -0
- package/dist/src/protos/msg/proto/add-counter.d.ts +9 -0
- package/dist/src/protos/msg/proto/announce-attrib.d.ts +7 -0
- package/dist/src/protos/msg/proto/announce-card.d.ts +7 -0
- package/dist/src/protos/msg/proto/announce-number.d.ts +7 -0
- package/dist/src/protos/msg/proto/announce-race.d.ts +7 -0
- package/dist/src/protos/msg/proto/attack-disabled.d.ts +4 -0
- package/dist/src/protos/msg/proto/attack.d.ts +12 -0
- package/dist/src/protos/msg/proto/battle.d.ts +18 -0
- package/dist/src/protos/msg/proto/become-target.d.ts +6 -0
- package/dist/src/protos/msg/proto/cancel-target.d.ts +11 -0
- package/dist/src/protos/msg/proto/card-hint.d.ts +10 -0
- package/dist/src/protos/msg/proto/card-query.d.ts +38 -0
- package/dist/src/protos/msg/proto/card-target.d.ts +11 -0
- package/dist/src/protos/msg/proto/chain-disabled.d.ts +5 -0
- package/dist/src/protos/msg/proto/chain-end.d.ts +4 -0
- package/dist/src/protos/msg/proto/chain-negated.d.ts +5 -0
- package/dist/src/protos/msg/proto/chain-solved.d.ts +5 -0
- package/dist/src/protos/msg/proto/chain-solving.d.ts +5 -0
- package/dist/src/protos/msg/proto/chained.d.ts +5 -0
- package/dist/src/protos/msg/proto/chaining.d.ts +12 -0
- package/dist/src/protos/msg/proto/confirm-cards.d.ts +16 -0
- package/dist/src/protos/msg/proto/confirm-decktop.d.ts +14 -0
- package/dist/src/protos/msg/proto/confirm-extratop.d.ts +14 -0
- package/dist/src/protos/msg/proto/damage-step-end.d.ts +4 -0
- package/dist/src/protos/msg/proto/damage-step-start.d.ts +4 -0
- package/dist/src/protos/msg/proto/damage.d.ts +6 -0
- package/dist/src/protos/msg/proto/deck-top.d.ts +8 -0
- package/dist/src/protos/msg/proto/draw.d.ts +8 -0
- package/dist/src/protos/msg/proto/equip.d.ts +12 -0
- package/dist/src/protos/msg/proto/field-disabled.d.ts +5 -0
- package/dist/src/protos/msg/proto/flipsummoned.d.ts +4 -0
- package/dist/src/protos/msg/proto/flipsummoning.d.ts +9 -0
- package/dist/src/protos/msg/proto/hand-res.d.ts +5 -0
- package/dist/src/protos/msg/proto/hint.d.ts +7 -0
- package/dist/src/protos/msg/proto/index.d.ts +85 -0
- package/dist/src/protos/msg/proto/lpupdate.d.ts +6 -0
- package/dist/src/protos/msg/proto/match-kill.d.ts +5 -0
- package/dist/src/protos/msg/proto/missed-effect.d.ts +7 -0
- package/dist/src/protos/msg/proto/move.d.ts +14 -0
- package/dist/src/protos/msg/proto/new-phase.d.ts +5 -0
- package/dist/src/protos/msg/proto/new-turn.d.ts +5 -0
- package/dist/src/protos/msg/proto/pay-lpcost.d.ts +6 -0
- package/dist/src/protos/msg/proto/player-hint.d.ts +7 -0
- package/dist/src/protos/msg/proto/pos-change.d.ts +12 -0
- package/dist/src/protos/msg/proto/random-selected.d.ts +7 -0
- package/dist/src/protos/msg/proto/recover.d.ts +6 -0
- package/dist/src/protos/msg/proto/reload-field.d.ts +36 -0
- package/dist/src/protos/msg/proto/remove-counter.d.ts +9 -0
- package/dist/src/protos/msg/proto/reset-time.d.ts +6 -0
- package/dist/src/protos/msg/proto/retry.d.ts +4 -0
- package/dist/src/protos/msg/proto/reverse-deck.d.ts +4 -0
- package/dist/src/protos/msg/proto/rock-paper-scissors.d.ts +5 -0
- package/dist/src/protos/msg/proto/select-battlecmd.d.ts +25 -0
- package/dist/src/protos/msg/proto/select-card.d.ts +17 -0
- package/dist/src/protos/msg/proto/select-chain.d.ts +19 -0
- package/dist/src/protos/msg/proto/select-counter.d.ts +17 -0
- package/dist/src/protos/msg/proto/select-disfield.d.ts +7 -0
- package/dist/src/protos/msg/proto/select-effectyn.d.ts +11 -0
- package/dist/src/protos/msg/proto/select-idlecmd.d.ts +37 -0
- package/dist/src/protos/msg/proto/select-option.d.ts +7 -0
- package/dist/src/protos/msg/proto/select-place.d.ts +7 -0
- package/dist/src/protos/msg/proto/select-position.d.ts +7 -0
- package/dist/src/protos/msg/proto/select-sum.d.ts +20 -0
- package/dist/src/protos/msg/proto/select-tribute.d.ts +18 -0
- package/dist/src/protos/msg/proto/select-unselect-card.d.ts +20 -0
- package/dist/src/protos/msg/proto/select-yesno.d.ts +6 -0
- package/dist/src/protos/msg/proto/set.d.ts +5 -0
- package/dist/src/protos/msg/proto/shuffle-deck.d.ts +5 -0
- package/dist/src/protos/msg/proto/shuffle-extra.d.ts +8 -0
- package/dist/src/protos/msg/proto/shuffle-hand.d.ts +8 -0
- package/dist/src/protos/msg/proto/shuffle-set-card.d.ts +17 -0
- package/dist/src/protos/msg/proto/sort-card.d.ts +13 -0
- package/dist/src/protos/msg/proto/spsummoned.d.ts +4 -0
- package/dist/src/protos/msg/proto/spsummoning.d.ts +9 -0
- package/dist/src/protos/msg/proto/start.d.ts +14 -0
- package/dist/src/protos/msg/proto/summoned.d.ts +4 -0
- package/dist/src/protos/msg/proto/summoning.d.ts +9 -0
- package/dist/src/protos/msg/proto/swap-grave-deck.d.ts +5 -0
- package/dist/src/protos/msg/proto/swap.d.ts +12 -0
- package/dist/src/protos/msg/proto/tag-swap.d.ts +14 -0
- package/dist/src/protos/msg/proto/toss-coin.d.ts +7 -0
- package/dist/src/protos/msg/proto/toss-dice.d.ts +7 -0
- package/dist/src/protos/msg/proto/update-card.d.ts +14 -0
- package/dist/src/protos/msg/proto/update-data.d.ts +12 -0
- package/dist/src/protos/msg/proto/waiting.d.ts +4 -0
- package/dist/src/protos/msg/proto/win.d.ts +6 -0
- package/dist/src/protos/msg/registry.d.ts +3 -0
- package/dist/src/protos/stoc/base.d.ts +17 -0
- package/dist/src/protos/stoc/index.d.ts +3 -0
- package/dist/src/protos/stoc/proto/change-side.d.ts +4 -0
- package/dist/src/protos/stoc/proto/chat.d.ts +10 -0
- package/dist/src/protos/stoc/proto/create-game.d.ts +5 -0
- package/dist/src/protos/stoc/proto/deck-count.d.ts +5 -0
- package/dist/src/protos/stoc/proto/duel-end.d.ts +4 -0
- package/dist/src/protos/stoc/proto/duel-start.d.ts +4 -0
- package/dist/src/protos/stoc/proto/error-msg.d.ts +6 -0
- package/dist/src/protos/stoc/proto/field-finish.d.ts +4 -0
- package/dist/src/protos/stoc/proto/game-msg.d.ts +9 -0
- package/dist/src/protos/stoc/proto/hand-result.d.ts +6 -0
- package/dist/src/protos/stoc/proto/hs-player-change.d.ts +5 -0
- package/dist/src/protos/stoc/proto/hs-player-enter.d.ts +6 -0
- package/dist/src/protos/stoc/proto/hs-watch-change.d.ts +5 -0
- package/dist/src/protos/stoc/proto/index.d.ts +24 -0
- package/dist/src/protos/stoc/proto/join-game.d.ts +6 -0
- package/dist/src/protos/stoc/proto/leave-game.d.ts +5 -0
- package/dist/src/protos/stoc/proto/replay.d.ts +11 -0
- package/dist/src/protos/stoc/proto/select-hand.d.ts +4 -0
- package/dist/src/protos/stoc/proto/select-tp.d.ts +4 -0
- package/dist/src/protos/stoc/proto/srvpro-roomlist.d.ts +18 -0
- package/dist/src/protos/stoc/proto/teammate-surrender.d.ts +4 -0
- package/dist/src/protos/stoc/proto/time-limit.d.ts +6 -0
- package/dist/src/protos/stoc/proto/tp-result.d.ts +4 -0
- package/dist/src/protos/stoc/proto/type-change.d.ts +5 -0
- package/dist/src/protos/stoc/proto/waiting-side.d.ts +4 -0
- package/dist/src/protos/stoc/registry.d.ts +3 -0
- package/dist/src/vendor/ocgcore-constants.d.ts +360 -0
- package/dist/src/vendor/script-constants.d.ts +836 -0
- package/index.ts +6 -0
- package/package.json +74 -0
- package/scripts/gen-constants.js +156 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/metadata.ts", "../src/binary/binary-meta.ts", "../src/binary/fill-binary-fields.ts", "../src/protos/common/host-info.ts", "../src/proto-base/payload-base.ts", "../src/protos/ctos/base.ts", "../src/proto-base/registry-base.ts", "../src/protos/ctos/proto/response.ts", "../src/protos/ctos/proto/update-deck.ts", "../src/protos/ctos/proto/hand-result.ts", "../src/protos/ctos/proto/tp-result.ts", "../src/protos/ctos/proto/player-info.ts", "../src/protos/ctos/proto/create-game.ts", "../src/protos/ctos/proto/join-game.ts", "../src/protos/ctos/proto/leave-game.ts", "../src/protos/ctos/proto/surrender.ts", "../src/protos/ctos/proto/time-confirm.ts", "../src/protos/ctos/proto/chat.ts", "../src/protos/ctos/proto/external-address.ts", "../src/protos/ctos/proto/hs-toduelist.ts", "../src/protos/ctos/proto/hs-toobserver.ts", "../src/protos/ctos/proto/hs-ready.ts", "../src/protos/ctos/proto/hs-notready.ts", "../src/protos/ctos/proto/kick.ts", "../src/protos/ctos/proto/hs-start.ts", "../src/protos/ctos/proto/request-field.ts", "../src/protos/ctos/registry.ts", "../src/protos/stoc/base.ts", "../src/protos/msg/base.ts", "../src/vendor/ocgcore-constants.ts", "../src/protos/msg/proto/add-counter.ts", "../src/protos/msg/proto/announce-attrib.ts", "../src/protos/msg/proto/announce-card.ts", "../src/protos/msg/proto/announce-number.ts", "../src/protos/msg/proto/announce-race.ts", "../src/protos/msg/proto/attack.ts", "../src/protos/msg/proto/attack-disabled.ts", "../src/protos/msg/proto/battle.ts", "../src/protos/msg/proto/become-target.ts", "../src/protos/msg/proto/cancel-target.ts", "../src/protos/msg/proto/card-hint.ts", "../src/protos/msg/proto/card-query.ts", "../src/protos/msg/proto/card-target.ts", "../src/protos/msg/proto/chain-disabled.ts", "../src/protos/msg/proto/chain-end.ts", "../src/protos/msg/proto/chain-negated.ts", "../src/protos/msg/proto/chain-solved.ts", "../src/protos/msg/proto/chain-solving.ts", "../src/protos/msg/proto/chained.ts", "../src/protos/msg/proto/chaining.ts", "../src/protos/msg/proto/confirm-cards.ts", "../src/protos/msg/proto/confirm-decktop.ts", "../src/protos/msg/proto/confirm-extratop.ts", "../src/protos/msg/proto/damage.ts", "../src/protos/msg/proto/damage-step-end.ts", "../src/protos/msg/proto/damage-step-start.ts", "../src/protos/msg/proto/deck-top.ts", "../src/protos/msg/proto/draw.ts", "../src/protos/msg/proto/equip.ts", "../src/protos/msg/proto/field-disabled.ts", "../src/protos/msg/proto/flipsummoned.ts", "../src/protos/msg/proto/flipsummoning.ts", "../src/protos/msg/proto/hand-res.ts", "../src/protos/msg/proto/hint.ts", "../src/protos/msg/proto/lpupdate.ts", "../src/protos/msg/proto/match-kill.ts", "../src/protos/msg/proto/missed-effect.ts", "../src/protos/msg/proto/move.ts", "../src/protos/msg/proto/new-phase.ts", "../src/protos/msg/proto/new-turn.ts", "../src/protos/msg/proto/pay-lpcost.ts", "../src/protos/msg/proto/player-hint.ts", "../src/protos/msg/proto/pos-change.ts", "../src/protos/msg/proto/random-selected.ts", "../src/protos/msg/proto/recover.ts", "../src/protos/msg/proto/reload-field.ts", "../src/protos/msg/proto/remove-counter.ts", "../src/protos/msg/proto/reset-time.ts", "../src/protos/msg/proto/retry.ts", "../src/protos/msg/proto/reverse-deck.ts", "../src/protos/msg/proto/rock-paper-scissors.ts", "../src/protos/msg/proto/select-battlecmd.ts", "../src/protos/msg/proto/select-card.ts", "../src/protos/msg/proto/select-chain.ts", "../src/protos/msg/proto/select-counter.ts", "../src/protos/msg/proto/select-disfield.ts", "../src/protos/msg/proto/select-effectyn.ts", "../src/protos/msg/proto/select-idlecmd.ts", "../src/protos/msg/proto/select-option.ts", "../src/protos/msg/proto/select-place.ts", "../src/protos/msg/proto/select-position.ts", "../src/protos/msg/proto/select-sum.ts", "../src/protos/msg/proto/select-tribute.ts", "../src/protos/msg/proto/select-unselect-card.ts", "../src/protos/msg/proto/select-yesno.ts", "../src/protos/msg/proto/set.ts", "../src/protos/msg/proto/shuffle-deck.ts", "../src/protos/msg/proto/shuffle-extra.ts", "../src/protos/msg/proto/shuffle-hand.ts", "../src/protos/msg/proto/shuffle-set-card.ts", "../src/protos/msg/proto/sort-card.ts", "../src/protos/msg/proto/spsummoned.ts", "../src/protos/msg/proto/spsummoning.ts", "../src/protos/msg/proto/start.ts", "../src/protos/msg/proto/summoned.ts", "../src/protos/msg/proto/summoning.ts", "../src/protos/msg/proto/swap.ts", "../src/protos/msg/proto/swap-grave-deck.ts", "../src/protos/msg/proto/tag-swap.ts", "../src/protos/msg/proto/toss-coin.ts", "../src/protos/msg/proto/toss-dice.ts", "../src/vendor/script-constants.ts", "../src/protos/msg/proto/update-card.ts", "../src/protos/msg/proto/update-data.ts", "../src/protos/msg/proto/waiting.ts", "../src/protos/msg/proto/win.ts", "../src/protos/msg/registry.ts", "../src/protos/stoc/proto/game-msg.ts", "../src/protos/stoc/proto/error-msg.ts", "../src/protos/stoc/proto/select-hand.ts", "../src/protos/stoc/proto/select-tp.ts", "../src/protos/stoc/proto/hand-result.ts", "../src/protos/stoc/proto/tp-result.ts", "../src/protos/stoc/proto/change-side.ts", "../src/protos/stoc/proto/waiting-side.ts", "../src/protos/stoc/proto/deck-count.ts", "../src/protos/stoc/proto/create-game.ts", "../src/protos/stoc/proto/join-game.ts", "../src/protos/stoc/proto/type-change.ts", "../src/protos/stoc/proto/leave-game.ts", "../src/protos/stoc/proto/duel-start.ts", "../src/protos/stoc/proto/duel-end.ts", "../src/protos/stoc/proto/replay.ts", "../src/protos/stoc/proto/time-limit.ts", "../src/protos/stoc/proto/chat.ts", "../src/protos/stoc/proto/hs-player-enter.ts", "../src/protos/stoc/proto/hs-player-change.ts", "../src/protos/stoc/proto/hs-watch-change.ts", "../src/protos/stoc/proto/teammate-surrender.ts", "../src/protos/stoc/proto/field-finish.ts", "../src/protos/stoc/proto/srvpro-roomlist.ts", "../src/protos/stoc/registry.ts"],
|
|
4
|
+
"sourcesContent": ["import { MetadataSetter, Reflector } from 'typed-reflector';\nimport { BinaryFieldInfo } from './binary/binary-meta';\n\nexport interface MetadataMap {\n binaryField: BinaryFieldInfo;\n}\n\nexport interface MetadataArrayMap {\n binaryFieldKeys: string;\n}\n\nexport const Metadata = new MetadataSetter<MetadataMap, MetadataArrayMap>();\nexport const reflector = new Reflector<MetadataMap, MetadataArrayMap>();\n", "import { Metadata } from '../metadata';\n\nexport interface BinaryTypes {\n i8: number;\n u8: number;\n i16: number;\n u16: number;\n i32: number;\n u32: number;\n utf8: string;\n utf16: string;\n}\n\nexport type BinaryType = keyof BinaryTypes | (() => new () => any);\nexport type Length = number | ((obj: any, key: string) => number);\n\nexport interface BinaryFieldInfo {\n type: BinaryType;\n offset: Length;\n length?: Length;\n}\n\nexport const BinaryField = (\n type: BinaryType,\n offset: Length,\n length?: Length,\n) => {\n // utf8/utf16 \u5FC5\u987B\u6307\u5B9A length\n if ((type === 'utf8' || type === 'utf16') && length == null) {\n throw new Error(`String type ${type} requires length parameter`);\n }\n return Metadata.set(\n 'binaryField',\n { type, offset, length },\n 'binaryFieldKeys',\n );\n};\n", "import { BinaryFieldInfo } from './binary-meta';\nimport { reflector } from '../metadata';\n\n// \u5171\u4EAB\u7684\u8F85\u52A9\u51FD\u6570\nconst isStaticInfo = (info: BinaryFieldInfo) =>\n typeof info.offset === 'number' &&\n (info.length == null || typeof info.length === 'number');\n\nconst resolveLength = (\n obj: any,\n length: number | ((obj: any, key: string) => number),\n key: string,\n): number => {\n return typeof length === 'number' ? length : length(obj, key);\n};\n\nconst getTypeSize = (type: string): number => {\n switch (type) {\n case 'i8':\n case 'u8':\n return 1;\n case 'i16':\n case 'u16':\n return 2;\n case 'i32':\n case 'u32':\n return 4;\n default:\n return 0;\n }\n};\n\ninterface FieldInfo {\n key: string;\n info: BinaryFieldInfo;\n}\n\nconst getFieldInfos = (objOrClass: any) => {\n const fields = reflector\n .getArray('binaryFieldKeys', objOrClass)\n .map((key) => ({\n key,\n info: reflector.get('binaryField', objOrClass, key),\n }))\n .filter((s) => s.info) as FieldInfo[];\n\n const staticInfos = fields.filter((s) => isStaticInfo(s.info));\n const dynamicInfos = fields.filter((s) => !isStaticInfo(s.info));\n\n return { fields, staticInfos, dynamicInfos };\n};\n\nexport const fillBinaryFields = <T = any>(\n obj: T,\n data: Uint8Array,\n useClass?: new () => T,\n): number => {\n const { staticInfos, dynamicInfos } = getFieldInfos(useClass || obj);\n\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n const utf8Decoder = new TextDecoder('utf-8');\n const utf16Decoder = new TextDecoder('utf-16le');\n\n let totalSize = 0;\n\n const readValue = (type: string, offset: number): any => {\n const typeSize = getTypeSize(type);\n if (offset + typeSize > data.length) {\n throw new Error(\n `Data too short: need ${offset + typeSize} bytes, got ${data.length} bytes`,\n );\n }\n switch (type) {\n case 'i8':\n return view.getInt8(offset);\n case 'u8':\n return view.getUint8(offset);\n case 'i16':\n return view.getInt16(offset, true);\n case 'u16':\n return view.getUint16(offset, true);\n case 'i32':\n return view.getInt32(offset, true);\n case 'u32':\n return view.getUint32(offset, true);\n default:\n throw new Error(`Unknown type: ${type}`);\n }\n };\n\n const readString = (\n type: string,\n offset: number,\n byteLength: number,\n ): string => {\n if (offset + byteLength > data.length) {\n throw new Error(\n `Data too short: need ${offset + byteLength} bytes, got ${data.length} bytes`,\n );\n }\n const bytes = data.slice(offset, offset + byteLength);\n\n // \u627E\u5230\u7B2C\u4E00\u4E2A \\0\uFF0C\u63D0\u524D\u622A\u65AD\n let nullIndex = -1;\n if (type === 'utf8') {\n nullIndex = bytes.indexOf(0);\n } else if (type === 'utf16') {\n // utf16 \u7684 \\0 \u662F\u4E24\u4E2A\u5B57\u8282\u90FD\u4E3A 0\n for (let i = 0; i < bytes.length - 1; i += 2) {\n if (bytes[i] === 0 && bytes[i + 1] === 0) {\n nullIndex = i;\n break;\n }\n }\n }\n\n const actualBytes = nullIndex >= 0 ? bytes.slice(0, nullIndex) : bytes;\n\n if (type === 'utf8') {\n return utf8Decoder.decode(actualBytes);\n } else if (type === 'utf16') {\n return utf16Decoder.decode(actualBytes);\n }\n throw new Error(`Unknown string type: ${type}`);\n };\n\n const parseField = (key: string, info: BinaryFieldInfo) => {\n const offset = resolveLength(obj, info.offset, key);\n const type = info.type;\n\n // \u5982\u679C type \u662F\u4E00\u4E2A\u7C7B\uFF08\u51FD\u6570\uFF09\n if (typeof type === 'function') {\n const Constructor = type();\n if (info.length != null) {\n // \u6570\u7EC4\n const length = resolveLength(obj, info.length, key);\n const array = [];\n let currentOffset = offset;\n for (let i = 0; i < length; i++) {\n if (currentOffset >= data.length) {\n throw new Error(\n `Data too short: need more bytes for object array at offset ${currentOffset}, got ${data.length} bytes`,\n );\n }\n const instance = new Constructor();\n const elementData = data.slice(currentOffset);\n const size = fillBinaryFields(instance, elementData, Constructor);\n array.push(instance);\n currentOffset += size;\n }\n (obj as any)[key] = array;\n totalSize = Math.max(totalSize, currentOffset);\n } else {\n // \u5355\u4E2A\u5BF9\u8C61\n if (offset >= data.length) {\n throw new Error(\n `Data too short: need more bytes for object at offset ${offset}, got ${data.length} bytes`,\n );\n }\n const instance = new Constructor();\n const elementData = data.slice(offset);\n const size = fillBinaryFields(instance, elementData, Constructor);\n (obj as any)[key] = instance;\n totalSize = Math.max(totalSize, offset + size);\n }\n return;\n }\n\n // \u5B57\u7B26\u4E32\u7C7B\u578B\n if (type === 'utf8' || type === 'utf16') {\n // length \u8868\u793A\u5B57\u8282\u957F\u5EA6\uFF0C\u5DF2\u5728 decorator \u4E2D\u68C0\u67E5\u5FC5\u987B\u5B58\u5728\n const byteLength = resolveLength(obj, info.length!, key);\n (obj as any)[key] = readString(type, offset, byteLength);\n totalSize = Math.max(totalSize, offset + byteLength);\n return;\n }\n\n // \u6570\u503C\u7C7B\u578B\n const typeStr = type as string;\n const typeSize = getTypeSize(typeStr);\n if (info.length != null) {\n // \u6570\u7EC4\n const length = resolveLength(obj, info.length, key);\n const array = [];\n for (let i = 0; i < length; i++) {\n array.push(readValue(typeStr, offset + i * typeSize));\n }\n (obj as any)[key] = array;\n totalSize = Math.max(totalSize, offset + length * typeSize);\n } else {\n // \u5355\u4E2A\u503C\n (obj as any)[key] = readValue(typeStr, offset);\n totalSize = Math.max(totalSize, offset + typeSize);\n }\n };\n\n // \u5148\u89E3\u6790\u6240\u6709 static \u5B57\u6BB5\uFF0C\u518D\u6309\u987A\u5E8F\u89E3\u6790 dynamic \u5B57\u6BB5\n // \u8FD9\u6837 dynamic \u5B57\u6BB5\u53EF\u4EE5\u4F9D\u8D56\u6240\u6709 static \u5B57\u6BB5\u548C\u4E4B\u524D\u7684 dynamic \u5B57\u6BB5\n for (const { key, info } of staticInfos) {\n parseField(key, info);\n }\n\n for (const { key, info } of dynamicInfos) {\n parseField(key, info);\n }\n\n return totalSize;\n};\n\nexport const toBinaryFields = <T = any>(\n obj: T,\n useClass?: new () => T,\n): Uint8Array => {\n const { staticInfos, dynamicInfos } = getFieldInfos(useClass || obj);\n\n // \u5982\u679C\u6CA1\u6709\u4EFB\u4F55\u5B57\u6BB5\uFF0C\u8FD4\u56DE\u7A7A\u6570\u7EC4\n if (staticInfos.length === 0 && dynamicInfos.length === 0) {\n return new Uint8Array(0);\n }\n\n // \u5148\u8BA1\u7B97\u603B\u5927\u5C0F\n let totalSize = 0;\n for (const { key, info } of [...staticInfos, ...dynamicInfos]) {\n const offset = resolveLength(obj, info.offset, key);\n const type = info.type;\n\n if (typeof type === 'function') {\n const Constructor = type();\n const value = (obj as any)[key];\n if (info.length != null) {\n // \u5BF9\u8C61\u6570\u7EC4\n const length = resolveLength(obj, info.length, key);\n let currentOffset = offset;\n for (let i = 0; i < length; i++) {\n if (value && value[i]) {\n const itemData = toBinaryFields(value[i], Constructor);\n currentOffset += itemData.length;\n }\n }\n totalSize = Math.max(totalSize, currentOffset);\n } else {\n // \u5355\u4E2A\u5BF9\u8C61\n if (value) {\n const itemData = toBinaryFields(value, Constructor);\n totalSize = Math.max(totalSize, offset + itemData.length);\n }\n }\n } else if (type === 'utf8' || type === 'utf16') {\n const byteLength = resolveLength(obj, info.length!, key);\n totalSize = Math.max(totalSize, offset + byteLength);\n } else {\n const typeSize = getTypeSize(type as string);\n if (info.length != null) {\n const length = resolveLength(obj, info.length, key);\n totalSize = Math.max(totalSize, offset + length * typeSize);\n } else {\n totalSize = Math.max(totalSize, offset + typeSize);\n }\n }\n }\n\n const data = new Uint8Array(totalSize);\n const view = new DataView(data.buffer);\n const utf8Encoder = new TextEncoder();\n\n const writeValue = (type: string, offset: number, value: number) => {\n switch (type) {\n case 'i8':\n view.setInt8(offset, value);\n break;\n case 'u8':\n view.setUint8(offset, value);\n break;\n case 'i16':\n view.setInt16(offset, value, true);\n break;\n case 'u16':\n view.setUint16(offset, value, true);\n break;\n case 'i32':\n view.setInt32(offset, value, true);\n break;\n case 'u32':\n view.setUint32(offset, value, true);\n break;\n }\n };\n\n const writeString = (\n type: string,\n offset: number,\n byteLength: number,\n value: string,\n ) => {\n if (type === 'utf8') {\n const encoded = utf8Encoder.encode(value);\n const len = Math.min(encoded.length, byteLength);\n data.set(encoded.slice(0, len), offset);\n // \u5269\u4F59\u90E8\u5206\u81EA\u52A8\u4E3A 0\uFF08Uint8Array \u9ED8\u8BA4\u521D\u59CB\u5316\u4E3A 0\uFF09\n } else if (type === 'utf16') {\n // utf16le \u7F16\u7801\n for (let i = 0; i < Math.min(value.length, byteLength / 2); i++) {\n view.setUint16(offset + i * 2, value.charCodeAt(i), true);\n }\n }\n };\n\n const writeField = (key: string, info: BinaryFieldInfo) => {\n const offset = resolveLength(obj, info.offset, key);\n const type = info.type;\n const value = (obj as any)[key];\n\n if (value === undefined || value === null) {\n return; // \u8DF3\u8FC7\u672A\u5B9A\u4E49\u7684\u5B57\u6BB5\n }\n\n // \u5982\u679C type \u662F\u4E00\u4E2A\u7C7B\uFF08\u51FD\u6570\uFF09\n if (typeof type === 'function') {\n const Constructor = type();\n if (info.length != null) {\n // \u5BF9\u8C61\u6570\u7EC4\n const length = resolveLength(obj, info.length, key);\n let currentOffset = offset;\n for (let i = 0; i < length; i++) {\n if (value[i]) {\n const itemData = toBinaryFields(value[i], Constructor);\n data.set(itemData, currentOffset);\n currentOffset += itemData.length;\n }\n }\n } else {\n // \u5355\u4E2A\u5BF9\u8C61\n const itemData = toBinaryFields(value, Constructor);\n data.set(itemData, offset);\n }\n return;\n }\n\n // \u5B57\u7B26\u4E32\u7C7B\u578B\n if (type === 'utf8' || type === 'utf16') {\n const byteLength = resolveLength(obj, info.length!, key);\n writeString(type, offset, byteLength, value);\n return;\n }\n\n // \u6570\u503C\u7C7B\u578B\n const typeStr = type as string;\n const typeSize = getTypeSize(typeStr);\n if (info.length != null) {\n // \u6570\u7EC4\n const length = resolveLength(obj, info.length, key);\n for (let i = 0; i < length; i++) {\n if (value[i] !== undefined && value[i] !== null) {\n writeValue(typeStr, offset + i * typeSize, value[i]);\n }\n }\n } else {\n // \u5355\u4E2A\u503C\n writeValue(typeStr, offset, value);\n }\n };\n\n // \u5148\u5199\u5165\u6240\u6709 static \u5B57\u6BB5\uFF0C\u518D\u6309\u987A\u5E8F\u5199\u5165 dynamic \u5B57\u6BB5\n for (const { key, info } of staticInfos) {\n writeField(key, info);\n }\n\n for (const { key, info } of dynamicInfos) {\n writeField(key, info);\n }\n\n return data;\n};\n", "import { BinaryField } from '../../binary/binary-meta';\n\n// HostInfo structure from network.h\n// Size: 20 bytes (with padding)\nexport class HostInfo {\n @BinaryField('u32', 0)\n lflist: number;\n\n @BinaryField('u8', 4)\n rule: number;\n\n @BinaryField('u8', 5)\n mode: number;\n\n @BinaryField('u8', 6)\n duel_rule: number;\n\n @BinaryField('u8', 7)\n no_check_deck: number;\n\n @BinaryField('u8', 8)\n no_shuffle_deck: number;\n\n // 3 bytes padding (bytes 9-11)\n\n @BinaryField('i32', 12)\n start_lp: number;\n\n @BinaryField('u8', 16)\n start_hand: number;\n\n @BinaryField('u8', 17)\n draw_count: number;\n\n @BinaryField('u16', 18)\n time_limit: number;\n}\n", "import { fillBinaryFields, toBinaryFields } from '../binary/fill-binary-fields';\n\nexport class PayloadBase {\n static identifier = 0;\n\n get identifier(): number {\n return (this.constructor as typeof PayloadBase).identifier;\n }\n\n fromPartial(data: Partial<this>): this {\n const safeData =\n typeof globalThis.structuredClone === 'function'\n ? globalThis.structuredClone(data)\n : JSON.parse(JSON.stringify(data));\n\n Object.assign(this, safeData);\n return this;\n }\n\n fromPayload(data: Uint8Array): this {\n fillBinaryFields(this, data);\n return this;\n }\n\n toPayload() {\n return toBinaryFields(this);\n }\n\n copy() {\n return this.fromPartial(this);\n }\n}\n", "import { PayloadBase } from '../../proto-base/payload-base';\n\n// CTOS base class only handles the body part\n// Format: [length 2 bytes][identifier 1 byte][body]\n// This class only deals with [body]\nexport class YGOProCtosBase extends PayloadBase {\n /**\n * Serialize to full payload including header (length + identifier + body)\n * Format: [length 2 bytes LE][identifier 1 byte][body]\n * Length = 1 (identifier) + body.length\n */\n toFullPayload(): Uint8Array {\n const body = this.toPayload();\n const length = 1 + body.length;\n const fullPayload = new Uint8Array(3 + body.length);\n\n // Write length (2 bytes, little endian)\n fullPayload[0] = length & 0xff;\n fullPayload[1] = (length >> 8) & 0xff;\n\n // Write identifier (1 byte)\n fullPayload[2] = this.identifier;\n\n // Write body\n fullPayload.set(body, 3);\n\n return fullPayload;\n }\n\n /**\n * Deserialize from full payload including header (length + identifier + body)\n * Format: [length 2 bytes LE][identifier 1 byte][body]\n * @param data - Full payload data\n * @returns this instance\n * @throws Error if data is too short or identifier mismatch\n */\n fromFullPayload(data: Uint8Array): this {\n if (data.length < 3) {\n throw new Error(\n `CTOS payload too short: expected at least 3 bytes, got ${data.length}`,\n );\n }\n\n // Read length (2 bytes, little endian)\n const declaredLength = data[0] | (data[1] << 8);\n\n // Read identifier (1 byte)\n const identifier = data[2];\n\n // Verify identifier matches\n if (identifier !== this.identifier) {\n throw new Error(\n `CTOS identifier mismatch: expected 0x${this.identifier.toString(16)}, got 0x${identifier.toString(16)}`,\n );\n }\n\n // Calculate expected total length (3 bytes header + body)\n const expectedTotalLength = 3 + declaredLength - 1; // -1 because length includes identifier\n\n // Check if data length is less than declared\n if (data.length < expectedTotalLength) {\n throw new Error(\n `CTOS payload too short: declared length ${declaredLength} requires ${expectedTotalLength} bytes total, got ${data.length}`,\n );\n }\n\n // Truncate if data is longer than declared\n const bodyData =\n data.length > expectedTotalLength\n ? data.slice(3, expectedTotalLength)\n : data.slice(3);\n\n // Parse body\n return this.fromPayload(bodyData);\n }\n}\n", "import { PayloadBase } from './payload-base';\n\nexport class RegistryBase<C extends typeof PayloadBase> {\n constructor(\n public payloadClass: C,\n private options: {\n identifierOffset?: number;\n dataOffset?: number;\n } = {},\n ) {}\n\n protos = new Map<number, C>();\n\n register(proto: C) {\n const identifier = proto.identifier;\n this.protos.set(identifier, proto);\n }\n\n get(identifier: number): C | undefined {\n return this.protos.get(identifier);\n }\n\n getInstanceFromPayload(data: Uint8Array): InstanceType<C> | undefined {\n const identifier = data[this.options.identifierOffset ?? 0];\n const proto = this.get(identifier);\n if (!proto) {\n return undefined;\n }\n return new proto().fromPayload(\n data.slice(this.options.dataOffset ?? 0),\n ) as InstanceType<C>;\n }\n}\n", "import { YGOProCtosBase } from '../base';\n\nexport class YGOProCtosResponse extends YGOProCtosBase {\n static identifier = 0x1;\n\n // byte array - variable length, entire payload\n response: Uint8Array;\n\n fromPayload(data: Uint8Array): this {\n this.response = data;\n return this;\n }\n\n toPayload(): Uint8Array {\n return this.response || new Uint8Array(0);\n }\n}\n", "import YGOProDeck from 'ygopro-deck-encode';\nimport { YGOProCtosBase } from '../base';\n\n// CTOS_UPDATE_DECK uses ygopro-deck-encode\nexport class YGOProCtosUpdateDeck extends YGOProCtosBase {\n static identifier = 0x2;\n\n deck: YGOProDeck;\n\n constructor() {\n super();\n this.deck = new YGOProDeck();\n }\n\n fromPayload(data: Uint8Array): this {\n this.deck = YGOProDeck.fromUpdateDeckPayload(data);\n return this;\n }\n\n toPayload(): Uint8Array {\n return this.deck.toUpdateDeckPayload();\n }\n\n fromPartial(data: Partial<this>): this {\n if (data.deck) {\n // Pass deck data to constructor\n this.deck = new YGOProDeck(data.deck);\n }\n return this;\n }\n\n copy(): this {\n const copied = new (this.constructor as any)();\n copied.deck = new YGOProDeck(this.deck);\n return copied;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProCtosBase } from '../base';\n\nexport class YGOProCtosHandResult extends YGOProCtosBase {\n static identifier = 0x3;\n\n @BinaryField('u8', 0)\n res: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProCtosBase } from '../base';\n\nexport class YGOProCtosTpResult extends YGOProCtosBase {\n static identifier = 0x4;\n\n @BinaryField('u8', 0)\n res: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProCtosBase } from '../base';\n\nexport class YGOProCtosPlayerInfo extends YGOProCtosBase {\n static identifier = 0x10;\n\n @BinaryField('u16', 0, 20)\n name: number[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { HostInfo } from '../../common';\nimport { YGOProCtosBase } from '../base';\n\nexport class YGOProCtosCreateGame extends YGOProCtosBase {\n static identifier = 0x11;\n\n @BinaryField(() => HostInfo, 0)\n info: HostInfo;\n\n @BinaryField('u16', 20, 20)\n name: number[];\n\n @BinaryField('u16', 60, 20)\n pass: number[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProCtosBase } from '../base';\n\nexport class YGOProCtosJoinGame extends YGOProCtosBase {\n static identifier = 0x12;\n\n @BinaryField('u16', 0)\n version: number;\n\n // 2 bytes padding\n\n @BinaryField('u32', 4)\n gameid: number;\n\n @BinaryField('u16', 8, 20)\n pass: number[];\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_LEAVE_GAME has no data (no body)\nexport class YGOProCtosLeaveGame extends YGOProCtosBase {\n static identifier = 0x13;\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_SURRENDER has no data (no body)\nexport class YGOProCtosSurrender extends YGOProCtosBase {\n static identifier = 0x14;\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_TIME_CONFIRM has no data (no body)\nexport class YGOProCtosTimeConfirm extends YGOProCtosBase {\n static identifier = 0x15;\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_CHAT: uint16_t array (UTF-16 string)\n// Variable length: sends actual content + null terminator if not full\nexport class YGOProCtosChat extends YGOProCtosBase {\n static identifier = 0x16;\n\n msg: string;\n\n constructor() {\n super();\n this.msg = '';\n }\n\n fromPayload(data: Uint8Array): this {\n // Decode UTF-16LE from all available bytes\n const decoder = new TextDecoder('utf-16le');\n this.msg = decoder.decode(data).replace(/\\0+$/, ''); // Remove trailing nulls\n return this;\n }\n\n toPayload(): Uint8Array {\n // Encode to UTF-16LE\n const encoder = new TextEncoder();\n const utf8 = encoder.encode(this.msg);\n const decoder = new TextDecoder('utf-8');\n const text = decoder.decode(utf8);\n\n // Convert to UTF-16LE manually\n const utf16 = new Uint16Array(text.length + 1); // +1 for null terminator\n for (let i = 0; i < text.length; i++) {\n utf16[i] = text.charCodeAt(i);\n }\n utf16[text.length] = 0; // Null terminator\n\n // Convert to bytes (little endian)\n const result = new Uint8Array(utf16.buffer);\n return result;\n }\n\n fromPartial(data: Partial<this>): this {\n if (data.msg !== undefined) {\n this.msg = data.msg;\n }\n return this;\n }\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_EXTERNAL_ADDRESS\n// uint32_t real_ip; (IPv4 address, BE, always 0 in normal client)\n// uint16_t hostname[256]; (UTF-16 string, variable length)\nexport class YGOProCtosExternalAddress extends YGOProCtosBase {\n static identifier = 0x17;\n\n real_ip: string; // IPv4 address as string (e.g., \"127.0.0.1\" or \"::ffff:127.0.0.1\")\n hostname: string;\n\n constructor() {\n super();\n this.real_ip = '0.0.0.0';\n this.hostname = '';\n }\n\n // Convert IPv4 string to uint32 (network byte order / big endian)\n private ipToUint32(ip: string): number {\n // Handle IPv6-mapped IPv4 addresses (::ffff:x.x.x.x)\n let ipv4 = ip;\n if (ip.startsWith('::ffff:')) {\n ipv4 = ip.substring(7);\n }\n\n const parts = ipv4.split('.');\n if (parts.length !== 4) {\n return 0; // Invalid IP, return 0\n }\n\n const bytes = parts.map((p) => parseInt(p, 10));\n if (bytes.some((b) => isNaN(b) || b < 0 || b > 255)) {\n return 0; // Invalid IP, return 0\n }\n\n // Network byte order (big endian)\n return (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3];\n }\n\n // Convert uint32 (network byte order / big endian) to IPv4 string\n private uint32ToIp(value: number): string {\n const byte1 = (value >>> 24) & 0xff;\n const byte2 = (value >>> 16) & 0xff;\n const byte3 = (value >>> 8) & 0xff;\n const byte4 = value & 0xff;\n return `${byte1}.${byte2}.${byte3}.${byte4}`;\n }\n\n fromPayload(data: Uint8Array): this {\n if (data.length < 4) {\n throw new Error('CTOS_EXTERNAL_ADDRESS data too short');\n }\n\n // Read real_ip (4 bytes, big endian / network byte order)\n const ipUint32 =\n (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];\n this.real_ip = this.uint32ToIp(ipUint32);\n\n // Decode remaining bytes as UTF-16LE\n if (data.length > 4) {\n const decoder = new TextDecoder('utf-16le');\n this.hostname = decoder.decode(data.slice(4)).replace(/\\0+$/, ''); // Remove trailing nulls\n } else {\n this.hostname = '';\n }\n\n return this;\n }\n\n toPayload(): Uint8Array {\n // Encode hostname to UTF-16LE\n const encoder = new TextEncoder();\n const utf8 = encoder.encode(this.hostname);\n const decoder = new TextDecoder('utf-8');\n const text = decoder.decode(utf8);\n\n // Convert to UTF-16LE manually\n const utf16 = new Uint16Array(text.length + 1); // +1 for null terminator\n for (let i = 0; i < text.length; i++) {\n utf16[i] = text.charCodeAt(i);\n }\n utf16[text.length] = 0; // Null terminator\n\n // Create result buffer: real_ip (4 bytes) + UTF-16LE string\n const result = new Uint8Array(4 + utf16.byteLength);\n\n // Convert real_ip string to uint32 and write (big endian / network byte order)\n const ipUint32 = this.ipToUint32(this.real_ip);\n result[0] = (ipUint32 >>> 24) & 0xff;\n result[1] = (ipUint32 >>> 16) & 0xff;\n result[2] = (ipUint32 >>> 8) & 0xff;\n result[3] = ipUint32 & 0xff;\n\n // Write UTF-16LE string\n result.set(new Uint8Array(utf16.buffer), 4);\n\n return result;\n }\n\n fromPartial(data: Partial<this>): this {\n if (data.real_ip !== undefined) {\n this.real_ip = data.real_ip;\n }\n if (data.hostname !== undefined) {\n this.hostname = data.hostname;\n }\n return this;\n }\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_HS_TODUELIST has no data (no body)\nexport class YGOProCtosHsToDuelist extends YGOProCtosBase {\n static identifier = 0x20;\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_HS_TOOBSERVER has no data (no body)\nexport class YGOProCtosHsToObserver extends YGOProCtosBase {\n static identifier = 0x21;\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_HS_READY has no data (no body)\nexport class YGOProCtosHsReady extends YGOProCtosBase {\n static identifier = 0x22;\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_HS_NOTREADY has no data (no body)\nexport class YGOProCtosHsNotReady extends YGOProCtosBase {\n static identifier = 0x23;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProCtosBase } from '../base';\n\nexport class YGOProCtosKick extends YGOProCtosBase {\n static identifier = 0x24;\n\n @BinaryField('u8', 0)\n pos: number;\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_HS_START has no data (no body)\nexport class YGOProCtosHsStart extends YGOProCtosBase {\n static identifier = 0x25;\n}\n", "import { YGOProCtosBase } from '../base';\n\n// CTOS_REQUEST_FIELD has no data (no body)\nexport class YGOProCtosRequestField extends YGOProCtosBase {\n static identifier = 0x30;\n}\n", "import { RegistryBase } from '../../proto-base/registry-base';\nimport { YGOProCtosBase } from './base';\nimport {\n YGOProCtosResponse,\n YGOProCtosUpdateDeck,\n YGOProCtosHandResult,\n YGOProCtosTpResult,\n YGOProCtosPlayerInfo,\n YGOProCtosCreateGame,\n YGOProCtosJoinGame,\n YGOProCtosLeaveGame,\n YGOProCtosSurrender,\n YGOProCtosTimeConfirm,\n YGOProCtosChat,\n YGOProCtosExternalAddress,\n YGOProCtosHsToDuelist,\n YGOProCtosHsToObserver,\n YGOProCtosHsReady,\n YGOProCtosHsNotReady,\n YGOProCtosKick,\n YGOProCtosHsStart,\n YGOProCtosRequestField,\n} from './proto';\n\n// CTOS format: [length 2 bytes][identifier 1 byte][body]\n// identifierOffset: 2 (identifier is at byte 2, after the 2-byte length)\n// dataOffset: 3 (body starts at byte 3, after length + identifier)\nexport const YGOProCtos = new RegistryBase(YGOProCtosBase, {\n identifierOffset: 2,\n dataOffset: 3,\n});\n\nYGOProCtos.register(YGOProCtosResponse);\nYGOProCtos.register(YGOProCtosUpdateDeck);\nYGOProCtos.register(YGOProCtosHandResult);\nYGOProCtos.register(YGOProCtosTpResult);\nYGOProCtos.register(YGOProCtosPlayerInfo);\nYGOProCtos.register(YGOProCtosCreateGame);\nYGOProCtos.register(YGOProCtosJoinGame);\nYGOProCtos.register(YGOProCtosLeaveGame);\nYGOProCtos.register(YGOProCtosSurrender);\nYGOProCtos.register(YGOProCtosTimeConfirm);\nYGOProCtos.register(YGOProCtosChat);\nYGOProCtos.register(YGOProCtosExternalAddress);\nYGOProCtos.register(YGOProCtosHsToDuelist);\nYGOProCtos.register(YGOProCtosHsToObserver);\nYGOProCtos.register(YGOProCtosHsReady);\nYGOProCtos.register(YGOProCtosHsNotReady);\nYGOProCtos.register(YGOProCtosKick);\nYGOProCtos.register(YGOProCtosHsStart);\nYGOProCtos.register(YGOProCtosRequestField);\n", "import { PayloadBase } from '../../proto-base/payload-base';\n\n// STOC base class only handles the body part\n// Format: [length 2 bytes][identifier 1 byte][body]\n// This class only deals with [body]\nexport class YGOProStocBase extends PayloadBase {\n /**\n * Serialize to full payload including header (length + identifier + body)\n * Format: [length 2 bytes LE][identifier 1 byte][body]\n * Length = 1 (identifier) + body.length\n */\n toFullPayload(): Uint8Array {\n const body = this.toPayload();\n const length = 1 + body.length;\n const fullPayload = new Uint8Array(3 + body.length);\n\n // Write length (2 bytes, little endian)\n fullPayload[0] = length & 0xff;\n fullPayload[1] = (length >> 8) & 0xff;\n\n // Write identifier (1 byte)\n fullPayload[2] = this.identifier;\n\n // Write body\n fullPayload.set(body, 3);\n\n return fullPayload;\n }\n\n /**\n * Deserialize from full payload including header (length + identifier + body)\n * Format: [length 2 bytes LE][identifier 1 byte][body]\n * @param data - Full payload data\n * @returns this instance\n * @throws Error if data is too short or identifier mismatch\n */\n fromFullPayload(data: Uint8Array): this {\n if (data.length < 3) {\n throw new Error(\n `STOC payload too short: expected at least 3 bytes, got ${data.length}`,\n );\n }\n\n // Read length (2 bytes, little endian)\n const declaredLength = data[0] | (data[1] << 8);\n\n // Read identifier (1 byte)\n const identifier = data[2];\n\n // Verify identifier matches\n if (identifier !== this.identifier) {\n throw new Error(\n `STOC identifier mismatch: expected 0x${this.identifier.toString(16)}, got 0x${identifier.toString(16)}`,\n );\n }\n\n // Calculate expected total length (3 bytes header + body)\n const expectedTotalLength = 3 + declaredLength - 1; // -1 because length includes identifier\n\n // Check if data length is less than declared\n if (data.length < expectedTotalLength) {\n throw new Error(\n `STOC payload too short: declared length ${declaredLength} requires ${expectedTotalLength} bytes total, got ${data.length}`,\n );\n }\n\n // Truncate if data is longer than declared\n const bodyData =\n data.length > expectedTotalLength\n ? data.slice(3, expectedTotalLength)\n : data.slice(3);\n\n // Parse body\n return this.fromPayload(bodyData);\n }\n}\n", "import { PayloadBase } from '../../proto-base/payload-base';\n\nexport class YGOProMsgBase extends PayloadBase {\n fromPayload(data: Uint8Array): this {\n if (data.length < 1) {\n throw new Error('MSG data too short');\n }\n const msgType = data[0];\n if (msgType !== this.identifier) {\n throw new Error(\n `MSG type mismatch: expected ${this.identifier}, got ${msgType}`,\n );\n }\n // \u4ECE\u7B2C\u4E8C\u4E2A\u5B57\u8282\u5F00\u59CB\u89E3\u6790\n return super.fromPayload(data.slice(1));\n }\n\n toPayload(): Uint8Array {\n const payload = super.toPayload();\n const result = new Uint8Array(1 + payload.length);\n result[0] = this.identifier;\n result.set(payload, 1);\n return result;\n }\n\n opponentView(): this {\n return this.copy();\n }\n\n teammateView(): this {\n return this.copy();\n }\n\n observerView(): this {\n return this.opponentView();\n }\n\n playerView(playerId: number): this {\n if (typeof this['player'] === 'number') {\n const selfPlayerId = this['player'];\n if (selfPlayerId === playerId) {\n return this.copy();\n }\n return this.opponentView();\n }\n return this.copy();\n }\n}\n", "// Generated from /home/nanahira/ygo/ygopro/ocgcore/common.h\nexport const OcgcoreCommonConstants = {\n ACTIVITY_ATTACK: 5,\n ACTIVITY_BATTLE_PHASE: 6,\n ACTIVITY_CHAIN: 7,\n ACTIVITY_FLIPSUMMON: 4,\n ACTIVITY_NORMALSUMMON: 2,\n ACTIVITY_SPSUMMON: 3,\n ACTIVITY_SUMMON: 1,\n ATTRIBUTES_COUNT: 7,\n ATTRIBUTE_ALL: 127,\n ATTRIBUTE_DARK: 32,\n ATTRIBUTE_DEVINE: 64,\n ATTRIBUTE_EARTH: 1,\n ATTRIBUTE_FIRE: 4,\n ATTRIBUTE_LIGHT: 16,\n ATTRIBUTE_WATER: 2,\n ATTRIBUTE_WIND: 8,\n CARDDATA_ALIAS: 2,\n CARDDATA_ATTACK: 8,\n CARDDATA_ATTRIBUTE: 6,\n CARDDATA_CODE: 1,\n CARDDATA_DEFENSE: 9,\n CARDDATA_LEVEL: 5,\n CARDDATA_LINK_MARKER: 12,\n CARDDATA_LSCALE: 10,\n CARDDATA_RACE: 7,\n CARDDATA_RSCALE: 11,\n CARDDATA_SETCODE: 3,\n CARDDATA_TYPE: 4,\n CHINT_ATTRIBUTE: 4,\n CHINT_CARD: 2,\n CHINT_DESC_ADD: 6,\n CHINT_DESC_REMOVE: 7,\n CHINT_NUMBER: 5,\n CHINT_RACE: 3,\n CHINT_TURN: 1,\n CURRENT_RULE: 5,\n DUEL_ATTACK_FIRST_TURN: 2,\n DUEL_OBSOLETE_RULING: 8,\n DUEL_PSEUDO_SHUFFLE: 16,\n DUEL_RETURN_DECK_TOP: 128,\n DUEL_REVEAL_DECK_SEQ: 256,\n DUEL_SIMPLE_AI: 64,\n DUEL_TAG_MODE: 32,\n DUEL_TEST_MODE: 1,\n EDESC_OPERATION: 1,\n EDESC_RESET: 2,\n FALSE: 0,\n GETEFFECT_ALL: 15,\n GETEFFECT_COPY: 4,\n GETEFFECT_GAIN: 2,\n GETEFFECT_GRANT: 8,\n GETEFFECT_INITIAL: 1,\n HINT_ATTRIB: 7,\n HINT_CARD: 10,\n HINT_CODE: 8,\n HINT_EFFECT: 5,\n HINT_EVENT: 1,\n HINT_MESSAGE: 2,\n HINT_MUSIC: 21,\n HINT_MUSIC_OGG: 23,\n HINT_NUMBER: 9,\n HINT_OPSELECTED: 4,\n HINT_RACE: 6,\n HINT_SELECTMSG: 3,\n HINT_SOUND: 22,\n HINT_ZONE: 11,\n LINK_MARKER_BOTTOM: 2,\n LINK_MARKER_BOTTOM_LEFT: 1,\n LINK_MARKER_BOTTOM_RIGHT: 4,\n LINK_MARKER_LEFT: 8,\n LINK_MARKER_RIGHT: 32,\n LINK_MARKER_TOP: 128,\n LINK_MARKER_TOP_LEFT: 64,\n LINK_MARKER_TOP_RIGHT: 256,\n LOCATION_DECKBOT: 65537,\n LOCATION_DECKSHF: 131073,\n MASTER_RULE3: 3,\n MASTER_RULE_2020: 5,\n MSG_ADD_COUNTER: 101,\n MSG_AI_NAME: 163,\n MSG_ANNOUNCE_ATTRIB: 141,\n MSG_ANNOUNCE_CARD: 142,\n MSG_ANNOUNCE_NUMBER: 143,\n MSG_ANNOUNCE_RACE: 140,\n MSG_ATTACK: 110,\n MSG_ATTACK_DISABLED: 112,\n MSG_BATTLE: 111,\n MSG_BECOME_TARGET: 83,\n MSG_CANCEL_TARGET: 97,\n MSG_CARD_HINT: 160,\n MSG_CARD_TARGET: 96,\n MSG_CHAINED: 71,\n MSG_CHAINING: 70,\n MSG_CHAIN_DISABLED: 76,\n MSG_CHAIN_END: 74,\n MSG_CHAIN_NEGATED: 75,\n MSG_CHAIN_SOLVED: 73,\n MSG_CHAIN_SOLVING: 72,\n MSG_CONFIRM_CARDS: 31,\n MSG_CONFIRM_DECKTOP: 30,\n MSG_CONFIRM_EXTRATOP: 42,\n MSG_CUSTOM_MSG: 180,\n MSG_DAMAGE: 91,\n MSG_DAMAGE_STEP_END: 114,\n MSG_DAMAGE_STEP_START: 113,\n MSG_DECK_TOP: 38,\n MSG_DRAW: 90,\n MSG_EQUIP: 93,\n MSG_FIELD_DISABLED: 56,\n MSG_FLIPSUMMONED: 65,\n MSG_FLIPSUMMONING: 64,\n MSG_HAND_RES: 133,\n MSG_HINT: 2,\n MSG_LPUPDATE: 94,\n MSG_MATCH_KILL: 170,\n MSG_MISSED_EFFECT: 120,\n MSG_MOVE: 50,\n MSG_NEW_PHASE: 41,\n MSG_NEW_TURN: 40,\n MSG_PAY_LPCOST: 100,\n MSG_PLAYER_HINT: 165,\n MSG_POS_CHANGE: 53,\n MSG_RANDOM_SELECTED: 81,\n MSG_RECOVER: 92,\n MSG_RELOAD_FIELD: 162,\n MSG_REMOVE_COUNTER: 102,\n MSG_RESET_TIME: 221,\n MSG_RETRY: 1,\n MSG_REVERSE_DECK: 37,\n MSG_ROCK_PAPER_SCISSORS: 132,\n MSG_SELECT_BATTLECMD: 10,\n MSG_SELECT_CARD: 15,\n MSG_SELECT_CHAIN: 16,\n MSG_SELECT_COUNTER: 22,\n MSG_SELECT_DISFIELD: 24,\n MSG_SELECT_EFFECTYN: 12,\n MSG_SELECT_IDLECMD: 11,\n MSG_SELECT_OPTION: 14,\n MSG_SELECT_PLACE: 18,\n MSG_SELECT_POSITION: 19,\n MSG_SELECT_SUM: 23,\n MSG_SELECT_TRIBUTE: 20,\n MSG_SELECT_UNSELECT_CARD: 26,\n MSG_SELECT_YESNO: 13,\n MSG_SET: 54,\n MSG_SHOW_HINT: 164,\n MSG_SHUFFLE_DECK: 32,\n MSG_SHUFFLE_EXTRA: 39,\n MSG_SHUFFLE_HAND: 33,\n MSG_SHUFFLE_SET_CARD: 36,\n MSG_SORT_CARD: 25,\n MSG_SPSUMMONED: 63,\n MSG_SPSUMMONING: 62,\n MSG_SUMMONED: 61,\n MSG_SUMMONING: 60,\n MSG_SWAP: 55,\n MSG_SWAP_GRAVE_DECK: 35,\n MSG_TAG_SWAP: 161,\n MSG_TOSS_COIN: 130,\n MSG_TOSS_DICE: 131,\n MSG_UPDATE_CARD: 7,\n MSG_WIN: 5,\n NEW_MASTER_RULE: 4,\n NO_FLIP_EFFECT: 65536,\n OPCODE_ADD: 1073741824,\n OPCODE_AND: 1073741828,\n OPCODE_DIV: 1073741827,\n OPCODE_ISATTRIBUTE: 1073742084,\n OPCODE_ISCODE: 1073742080,\n OPCODE_ISRACE: 1073742083,\n OPCODE_ISSETCARD: 1073742081,\n OPCODE_ISTYPE: 1073742082,\n OPCODE_MUL: 1073741826,\n OPCODE_NEG: 1073741830,\n OPCODE_NOT: 1073741831,\n OPCODE_OR: 1073741829,\n OPCODE_SUB: 1073741825,\n OPERATION_CANCELED: -1,\n OPERATION_FAIL: 0,\n OPERATION_SUCCESS: 1,\n PHASE_BATTLE: 128,\n PHASE_BATTLE_START: 8,\n PHASE_BATTLE_STEP: 16,\n PHASE_DAMAGE: 32,\n PHASE_DAMAGE_CAL: 64,\n PHASE_DRAW: 1,\n PHASE_END: 512,\n PHASE_MAIN1: 4,\n PHASE_MAIN2: 256,\n PHASE_STANDBY: 2,\n PHINT_DESC_ADD: 6,\n PHINT_DESC_REMOVE: 7,\n PLAYER_ALL: 3,\n PLAYER_NONE: 2,\n PLAYER_SELFDES: 5,\n POS_ATTACK: 3,\n POS_DEFENSE: 12,\n POS_FACEDOWN: 10,\n POS_FACEDOWN_ATTACK: 2,\n POS_FACEDOWN_DEFENSE: 8,\n POS_FACEUP: 5,\n POS_FACEUP_ATTACK: 1,\n POS_FACEUP_DEFENSE: 4,\n PROCESSOR_BUFFER_LEN: 268435455,\n PROCESSOR_END: 536870912,\n PROCESSOR_FLAG: 4026531840,\n PROCESSOR_NONE: 0,\n PROCESSOR_WAITING: 268435456,\n QUERY_ALIAS: 4,\n QUERY_ATTACK: 256,\n QUERY_ATTRIBUTE: 64,\n QUERY_BASE_ATTACK: 1024,\n QUERY_BASE_DEFENSE: 2048,\n QUERY_CODE: 1,\n QUERY_COUNTERS: 131072,\n QUERY_DEFENSE: 512,\n QUERY_EQUIP_CARD: 16384,\n QUERY_LEVEL: 16,\n QUERY_LINK: 8388608,\n QUERY_LSCALE: 2097152,\n QUERY_OVERLAY_CARD: 65536,\n QUERY_OWNER: 262144,\n QUERY_POSITION: 2,\n QUERY_RACE: 128,\n QUERY_RANK: 32,\n QUERY_REASON: 4096,\n QUERY_REASON_CARD: 8192,\n QUERY_RSCALE: 4194304,\n QUERY_STATUS: 524288,\n QUERY_TARGET_CARD: 32768,\n QUERY_TYPE: 8,\n RACES_COUNT: 26,\n RACE_ALL: 67108863,\n RACE_AQUA: 64,\n RACE_BEAST: 16384,\n RACE_BEASTWARRIOR: 32768,\n RACE_CREATORGOD: 4194304,\n RACE_CYBERSE: 16777216,\n RACE_DEVINE: 2097152,\n RACE_DINOSAUR: 65536,\n RACE_DRAGON: 8192,\n RACE_FAIRY: 4,\n RACE_FIEND: 8,\n RACE_FISH: 131072,\n RACE_ILLUSION: 33554432,\n RACE_INSECT: 2048,\n RACE_MACHINE: 32,\n RACE_PLANT: 1024,\n RACE_PSYCHO: 1048576,\n RACE_PYRO: 128,\n RACE_REPTILE: 524288,\n RACE_ROCK: 256,\n RACE_SEASERPENT: 262144,\n RACE_SPELLCASTER: 2,\n RACE_THUNDER: 4096,\n RACE_WARRIOR: 1,\n RACE_WINDBEAST: 512,\n RACE_WYRM: 8388608,\n RACE_ZOMBIE: 16,\n REASONS_PROCEDURE: 271056896,\n REASON_ACTION: 2147483648,\n REASON_ADJUST: 256,\n REASON_BATTLE: 32,\n REASON_COST: 128,\n REASON_DESTROY: 1,\n REASON_DISCARD: 16384,\n REASON_DISSUMMON: 4096,\n REASON_DRAW: 33554432,\n REASON_EFFECT: 64,\n REASON_FLIP: 8192,\n REASON_FUSION: 262144,\n REASON_LINK: 268435456,\n REASON_LOST_OVERLAY: 536870912,\n REASON_LOST_TARGET: 512,\n REASON_MAINTENANCE: 1073741824,\n REASON_MATERIAL: 8,\n REASON_RDAMAGE: 32768,\n REASON_REDIRECT: 67108864,\n REASON_RELEASE: 2,\n REASON_REPLACE: 16777216,\n REASON_RETURN: 131072,\n REASON_REVEAL: 134217728,\n REASON_RITUAL: 1048576,\n REASON_RRECOVER: 65536,\n REASON_RULE: 1024,\n REASON_SPSUMMON: 2048,\n REASON_SUMMON: 16,\n REASON_SYNCHRO: 524288,\n REASON_TEMPORARY: 4,\n REASON_XYZ: 2097152,\n RETURN_TEMP_REMOVE_TO_FIELD: 1,\n RETURN_TRAP_MONSTER_TO_SZONE: 2,\n SEQ_DECKBOTTOM: 1,\n SEQ_DECKSHUFFLE: 2,\n SEQ_DECKTOP: 0,\n SIZE_AI_NAME: 128,\n SIZE_HINT_MSG: 1024,\n SIZE_MESSAGE_BUFFER: 8192,\n SIZE_RETURN_VALUE: 512,\n STATUS_ACTIVATE_DISABLED: 262144,\n STATUS_ACT_FROM_HAND: 134217728,\n STATUS_ATTACK_CANCELED: 2097152,\n STATUS_BATTLE_DESTROYED: 16384,\n STATUS_BATTLE_RESULT: 64,\n STATUS_CANNOT_CHANGE_FORM: 256,\n STATUS_CHAINING: 65536,\n STATUS_CONTINUOUS_POS: 33554432,\n STATUS_COPYING_EFFECT: 32768,\n STATUS_DESTROY_CONFIRMED: 4096,\n STATUS_DISABLED: 1,\n STATUS_EFFECT_ENABLED: 1024,\n STATUS_EFFECT_REPLACED: 524288,\n STATUS_FLIP_SUMMONING: 1048576,\n STATUS_FLIP_SUMMON_DISABLED: 2147483648,\n STATUS_FLIP_SUMMON_TURN: 536870912,\n STATUS_FORBIDDEN: 67108864,\n STATUS_INITIALIZING: 4194304,\n STATUS_JUST_POS: 16777216,\n STATUS_LEAVE_CONFIRMED: 8192,\n STATUS_NO_LEVEL: 32,\n STATUS_OPPO_BATTLE: 268435456,\n STATUS_PROC_COMPLETE: 8,\n STATUS_SET_TURN: 16,\n STATUS_SPSUMMON_STEP: 128,\n STATUS_SPSUMMON_TURN: 1073741824,\n STATUS_SUMMONING: 512,\n STATUS_SUMMON_DISABLED: 131072,\n STATUS_SUMMON_TURN: 2048,\n STATUS_TO_DISABLE: 4,\n STATUS_TO_ENABLE: 2,\n STATUS_TO_HAND_WITHOUT_CONFIRM: 8388608,\n TRUE: 1,\n TYPES_EXTRA_DECK: 75505728,\n TYPE_CONTINUOUS: 131072,\n TYPE_COUNTER: 1048576,\n TYPE_DUAL: 2048,\n TYPE_EFFECT: 32,\n TYPE_EQUIP: 262144,\n TYPE_FIELD: 524288,\n TYPE_FLIP: 2097152,\n TYPE_FUSION: 64,\n TYPE_LINK: 67108864,\n TYPE_MONSTER: 1,\n TYPE_NORMAL: 16,\n TYPE_PENDULUM: 16777216,\n TYPE_QUICKPLAY: 65536,\n TYPE_RITUAL: 128,\n TYPE_SPELL: 2,\n TYPE_SPIRIT: 512,\n TYPE_SPSUMMON: 33554432,\n TYPE_SYNCHRO: 8192,\n TYPE_TOKEN: 16384,\n TYPE_TOON: 4194304,\n TYPE_TRAP: 4,\n TYPE_TRAPMONSTER: 256,\n TYPE_TUNER: 4096,\n TYPE_UNION: 1024,\n TYPE_XYZ: 8388608,\n} as const;\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgAddCounter extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_ADD_COUNTER;\n\n @BinaryField('u16', 0)\n counterType: number;\n\n @BinaryField('u8', 2)\n controller: number;\n\n @BinaryField('u8', 3)\n location: number;\n\n @BinaryField('u8', 4)\n sequence: number;\n\n @BinaryField('u16', 5)\n count: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgAnnounceAttrib extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_ANNOUNCE_ATTRIB;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u32', 1)\n availableAttributes: number;\n\n @BinaryField('u8', 5)\n count: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgAnnounceCard extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_ANNOUNCE_CARD;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('i32', 2, (obj) => obj.count)\n cards: number[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgAnnounceNumber extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_ANNOUNCE_NUMBER;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('i32', 2, (obj) => obj.count)\n numbers: number[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgAnnounceRace extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_ANNOUNCE_RACE;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u32', 1)\n availableRaces: number;\n\n @BinaryField('u8', 5)\n count: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgAttack_CardLocation {\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n\n @BinaryField('u8', 3)\n position: number;\n}\n\nexport class YGOProMsgAttack extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_ATTACK;\n\n @BinaryField(() => YGOProMsgAttack_CardLocation, 0)\n attacker: YGOProMsgAttack_CardLocation;\n\n @BinaryField(() => YGOProMsgAttack_CardLocation, 4)\n defender: YGOProMsgAttack_CardLocation;\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgAttackDisabled extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_ATTACK_DISABLED;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgBattle_CardLocation {\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n\n @BinaryField('u8', 3)\n position: number;\n}\n\nexport class YGOProMsgBattle_CardStats {\n @BinaryField(() => YGOProMsgBattle_CardLocation, 0)\n location: YGOProMsgBattle_CardLocation;\n\n @BinaryField('i32', 4)\n atk: number;\n\n @BinaryField('i32', 8)\n def: number;\n}\n\nexport class YGOProMsgBattle extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_BATTLE;\n\n @BinaryField(() => YGOProMsgBattle_CardStats, 0)\n attacker: YGOProMsgBattle_CardStats;\n\n @BinaryField(() => YGOProMsgBattle_CardStats, 12)\n defender: YGOProMsgBattle_CardStats;\n\n @BinaryField('u8', 24)\n battleDamageCalc: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgBecomeTarget extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_BECOME_TARGET;\n\n @BinaryField('u8', 0)\n count: number;\n\n @BinaryField('i32', 1, (obj) => obj.count)\n targets: number[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgCancelTarget_CardLocation {\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n}\n\nexport class YGOProMsgCancelTarget extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CANCEL_TARGET;\n\n @BinaryField(() => YGOProMsgCancelTarget_CardLocation, 0)\n card1: YGOProMsgCancelTarget_CardLocation;\n\n @BinaryField(() => YGOProMsgCancelTarget_CardLocation, 3)\n card2: YGOProMsgCancelTarget_CardLocation;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgCardHint extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CARD_HINT;\n\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n\n @BinaryField('u8', 3)\n subsequence: number;\n\n @BinaryField('u8', 4)\n type: number;\n\n @BinaryField('i32', 5)\n value: number;\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\n\nexport class CardQuery_CardLocation {\n controller: number;\n location: number;\n sequence: number;\n}\n\nexport class CardQuery_Counter {\n type: number;\n count: number;\n}\n\nexport class CardQuery {\n flags: number = 0;\n empty?: boolean;\n\n // QUERY_CODE (1)\n code?: number;\n\n // QUERY_POSITION (2)\n position?: number;\n\n // QUERY_ALIAS (4)\n alias?: number;\n\n // QUERY_TYPE (8)\n type?: number;\n\n // QUERY_LEVEL (16)\n level?: number;\n\n // QUERY_RANK (32)\n rank?: number;\n\n // QUERY_ATTRIBUTE (64)\n attribute?: number;\n\n // QUERY_RACE (128)\n race?: number;\n\n // QUERY_ATTACK (256)\n attack?: number;\n\n // QUERY_DEFENSE (512)\n defense?: number;\n\n // QUERY_BASE_ATTACK (1024)\n baseAttack?: number;\n\n // QUERY_BASE_DEFENSE (2048)\n baseDefense?: number;\n\n // QUERY_REASON (4096)\n reason?: number;\n\n // QUERY_EQUIP_CARD (16384)\n equipCard?: CardQuery_CardLocation;\n\n // QUERY_TARGET_CARD (32768)\n targetCards?: CardQuery_CardLocation[];\n\n // QUERY_OVERLAY_CARD (65536)\n overlayCards?: number[];\n\n // QUERY_COUNTERS (131072)\n counters?: CardQuery_Counter[];\n\n // QUERY_OWNER (262144)\n owner?: number;\n\n // QUERY_STATUS (524288)\n status?: number;\n\n // QUERY_LSCALE (2097152)\n lscale?: number;\n\n // QUERY_RSCALE (4194304)\n rscale?: number;\n\n // QUERY_LINK (8388608)\n link?: number;\n linkMarker?: number;\n\n fromPayload(data: Uint8Array): this {\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n let offset = 0;\n\n // \u8BFB\u53D6 flags\n this.flags = view.getInt32(offset, true) >>> 0;\n offset += 4;\n\n if (this.flags === 0) {\n this.empty = true;\n return this;\n }\n\n this.empty = false;\n\n // \u6309\u987A\u5E8F\u68C0\u67E5\u6BCF\u4E2A\u67E5\u8BE2\u6807\u5FD7\n if (this.flags & OcgcoreCommonConstants.QUERY_CODE) {\n this.code = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_POSITION) {\n const pdata = view.getInt32(offset, true);\n this.position = ((pdata >>> 24) & 0xff) >>> 0;\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_ALIAS) {\n this.alias = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_TYPE) {\n this.type = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_LEVEL) {\n this.level = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_RANK) {\n this.rank = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_ATTRIBUTE) {\n this.attribute = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_RACE) {\n this.race = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_ATTACK) {\n this.attack = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_DEFENSE) {\n this.defense = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_BASE_ATTACK) {\n this.baseAttack = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_BASE_DEFENSE) {\n this.baseDefense = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_REASON) {\n this.reason = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_REASON_CARD) {\n // \u8DF3\u8FC7 4 \u5B57\u8282\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_EQUIP_CARD) {\n this.equipCard = {\n controller: view.getUint8(offset),\n location: view.getUint8(offset + 1),\n sequence: view.getUint8(offset + 2),\n };\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_TARGET_CARD) {\n const count = view.getInt32(offset, true);\n offset += 4;\n this.targetCards = [];\n for (let i = 0; i < count; i++) {\n this.targetCards.push({\n controller: view.getUint8(offset),\n location: view.getUint8(offset + 1),\n sequence: view.getUint8(offset + 2),\n });\n offset += 4;\n }\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_OVERLAY_CARD) {\n const count = view.getInt32(offset, true);\n offset += 4;\n this.overlayCards = [];\n for (let i = 0; i < count; i++) {\n this.overlayCards.push(view.getInt32(offset, true));\n offset += 4;\n }\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_COUNTERS) {\n const count = view.getInt32(offset, true);\n offset += 4;\n this.counters = [];\n for (let i = 0; i < count; i++) {\n this.counters.push({\n type: view.getUint16(offset, true),\n count: view.getUint16(offset + 2, true),\n });\n offset += 4;\n }\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_OWNER) {\n this.owner = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_STATUS) {\n this.status = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_LSCALE) {\n this.lscale = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_RSCALE) {\n this.rscale = view.getInt32(offset, true);\n offset += 4;\n }\n\n if (this.flags & OcgcoreCommonConstants.QUERY_LINK) {\n this.link = view.getInt32(offset, true);\n offset += 4;\n this.linkMarker = view.getInt32(offset, true);\n offset += 4;\n }\n\n return this;\n }\n\n toPayload(): Uint8Array {\n // \u8BA1\u7B97\u603B\u5927\u5C0F\n let size = 4; // flags\n\n const flags = this.flags;\n\n if (flags & OcgcoreCommonConstants.QUERY_CODE) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_POSITION) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_ALIAS) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_TYPE) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_LEVEL) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_RANK) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_ATTRIBUTE) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_RACE) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_ATTACK) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_DEFENSE) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_BASE_ATTACK) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_BASE_DEFENSE) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_REASON) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_REASON_CARD) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_EQUIP_CARD) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_TARGET_CARD) {\n size += 4 + (this.targetCards?.length || 0) * 4;\n }\n if (flags & OcgcoreCommonConstants.QUERY_OVERLAY_CARD) {\n size += 4 + (this.overlayCards?.length || 0) * 4;\n }\n if (flags & OcgcoreCommonConstants.QUERY_COUNTERS) {\n size += 4 + (this.counters?.length || 0) * 4;\n }\n if (flags & OcgcoreCommonConstants.QUERY_OWNER) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_STATUS) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_LSCALE) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_RSCALE) size += 4;\n if (flags & OcgcoreCommonConstants.QUERY_LINK) size += 8;\n\n const result = new Uint8Array(size);\n const view = new DataView(result.buffer);\n let offset = 0;\n\n // \u5199\u5165 flags\n view.setInt32(offset, this.flags, true);\n offset += 4;\n\n if (this.empty || this.flags === 0) {\n return result;\n }\n\n // \u6309\u987A\u5E8F\u5199\u5165\u5B57\u6BB5\n if (flags & OcgcoreCommonConstants.QUERY_CODE) {\n view.setInt32(offset, this.code || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_POSITION) {\n // \u4F4D\u7F6E\u7F16\u7801\u5728\u9AD8\u5B57\u8282\n const pdata = ((this.position || 0) << 24) >>> 0;\n view.setInt32(offset, pdata, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_ALIAS) {\n view.setInt32(offset, this.alias || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_TYPE) {\n view.setInt32(offset, this.type || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_LEVEL) {\n view.setInt32(offset, this.level || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_RANK) {\n view.setInt32(offset, this.rank || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_ATTRIBUTE) {\n view.setInt32(offset, this.attribute || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_RACE) {\n view.setInt32(offset, this.race || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_ATTACK) {\n view.setInt32(offset, this.attack || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_DEFENSE) {\n view.setInt32(offset, this.defense || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_BASE_ATTACK) {\n view.setInt32(offset, this.baseAttack || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_BASE_DEFENSE) {\n view.setInt32(offset, this.baseDefense || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_REASON) {\n view.setInt32(offset, this.reason || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_REASON_CARD) {\n // QUERY_REASON_CARD \u5199\u5165 0\n view.setInt32(offset, 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_EQUIP_CARD) {\n const card = this.equipCard || {\n controller: 0,\n location: 0,\n sequence: 0,\n };\n view.setUint8(offset, card.controller);\n view.setUint8(offset + 1, card.location);\n view.setUint8(offset + 2, card.sequence);\n view.setUint8(offset + 3, 0);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_TARGET_CARD) {\n const targets = this.targetCards || [];\n view.setInt32(offset, targets.length, true);\n offset += 4;\n for (const target of targets) {\n view.setUint8(offset, target.controller);\n view.setUint8(offset + 1, target.location);\n view.setUint8(offset + 2, target.sequence);\n view.setUint8(offset + 3, 0);\n offset += 4;\n }\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_OVERLAY_CARD) {\n const overlays = this.overlayCards || [];\n view.setInt32(offset, overlays.length, true);\n offset += 4;\n for (const card of overlays) {\n view.setInt32(offset, card, true);\n offset += 4;\n }\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_COUNTERS) {\n const counters = this.counters || [];\n view.setInt32(offset, counters.length, true);\n offset += 4;\n for (const counter of counters) {\n view.setUint16(offset, counter.type, true);\n view.setUint16(offset + 2, counter.count, true);\n offset += 4;\n }\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_OWNER) {\n view.setInt32(offset, this.owner || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_STATUS) {\n view.setInt32(offset, this.status || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_LSCALE) {\n view.setInt32(offset, this.lscale || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_RSCALE) {\n view.setInt32(offset, this.rscale || 0, true);\n offset += 4;\n }\n\n if (flags & OcgcoreCommonConstants.QUERY_LINK) {\n view.setInt32(offset, this.link || 0, true);\n offset += 4;\n view.setInt32(offset, this.linkMarker || 0, true);\n offset += 4;\n }\n\n return new Uint8Array(view.buffer, view.byteOffset, offset);\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgCardTarget_CardLocation {\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n}\n\nexport class YGOProMsgCardTarget extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CARD_TARGET;\n\n @BinaryField(() => YGOProMsgCardTarget_CardLocation, 0)\n card1: YGOProMsgCardTarget_CardLocation;\n\n @BinaryField(() => YGOProMsgCardTarget_CardLocation, 3)\n card2: YGOProMsgCardTarget_CardLocation;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgChainDisabled extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CHAIN_DISABLED;\n\n @BinaryField('u8', 0)\n chainCount: number;\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgChainEnd extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CHAIN_END;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgChainNegated extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CHAIN_NEGATED;\n\n @BinaryField('u8', 0)\n chainCount: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgChainSolved extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CHAIN_SOLVED;\n\n @BinaryField('u8', 0)\n chainCount: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgChainSolving extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CHAIN_SOLVING;\n\n @BinaryField('u8', 0)\n chainCount: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgChained extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CHAINED;\n\n @BinaryField('u8', 0)\n chainCount: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgChaining extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CHAINING;\n\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n subsequence: number;\n\n @BinaryField('u8', 8)\n chainCount: number;\n\n @BinaryField('i32', 9)\n desc: number;\n\n @BinaryField('u8', 13)\n chainPlayer: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgConfirmCards_CardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n subsequence: number;\n}\n\nexport class YGOProMsgConfirmCards extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CONFIRM_CARDS;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n unused: number;\n\n @BinaryField('u8', 2)\n count: number;\n\n @BinaryField(() => YGOProMsgConfirmCards_CardInfo, 3, (obj) => obj.count)\n cards: YGOProMsgConfirmCards_CardInfo[];\n\n // \u5BF9\u65B9\u89C6\u89D2\u53EF\u80FD\u9700\u8981\u9690\u85CF\u5361\u7247\u4FE1\u606F\n opponentView(): this {\n const view = this.copy();\n view.cards = view.cards.map((card) => {\n const c = { ...card };\n if (!(c.code & 0x80000000)) {\n c.code = 0;\n }\n return c;\n });\n return view;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgConfirmDeckTop_CardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n}\n\nexport class YGOProMsgConfirmDeckTop extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CONFIRM_DECKTOP;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField(() => YGOProMsgConfirmDeckTop_CardInfo, 2, (obj) => obj.count)\n cards: YGOProMsgConfirmDeckTop_CardInfo[];\n\n // \u5BF9\u65B9\u89C6\u89D2\u53EF\u80FD\u9700\u8981\u9690\u85CF\u5361\u7247\u4FE1\u606F\n opponentView(): this {\n const view = this.copy();\n view.cards = view.cards.map((card) => {\n const c = { ...card };\n if (!(c.code & 0x80000000)) {\n c.code = 0;\n }\n return c;\n });\n return view;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgConfirmExtraTop_CardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n}\n\nexport class YGOProMsgConfirmExtraTop extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_CONFIRM_EXTRATOP;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField(() => YGOProMsgConfirmExtraTop_CardInfo, 2, (obj) => obj.count)\n cards: YGOProMsgConfirmExtraTop_CardInfo[];\n\n // \u5BF9\u65B9\u89C6\u89D2\u53EF\u80FD\u9700\u8981\u9690\u85CF\u5361\u7247\u4FE1\u606F\n opponentView(): this {\n const view = this.copy();\n view.cards = view.cards.map((card) => {\n const c = { ...card };\n if (!(c.code & 0x80000000)) {\n c.code = 0;\n }\n return c;\n });\n return view;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgDamage extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_DAMAGE;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('i32', 1)\n value: number;\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgDamageStepEnd extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_DAMAGE_STEP_END;\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgDamageStepStart extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_DAMAGE_STEP_START;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgDeckTop extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_DECK_TOP;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n sequence: number;\n\n @BinaryField('i32', 2)\n code: number;\n\n // \u5BF9\u65B9\u89C6\u89D2\u53EF\u80FD\u9700\u8981\u9690\u85CF\u5361\u7247\u4FE1\u606F\n opponentView(): this {\n const view = this.copy();\n if (!(view.code & 0x80000000)) {\n view.code = 0;\n }\n return view;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgDraw extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_DRAW;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('i32', 2, (obj) => obj.count)\n cards: number[];\n\n // \u5BF9\u65B9\u89C6\u89D2\u9700\u8981\u9690\u85CF\u62BD\u5230\u7684\u5361\uFF08\u5982\u679C\u5361\u7247\u6807\u5FD7\u4F4D 0x80 \u672A\u8BBE\u7F6E\uFF09\n opponentView(): this {\n const view = this.copy();\n view.cards = view.cards.map((card) => {\n // \u5982\u679C\u5361\u7247\u7684\u9AD8\u4F4D\uFF080x80000000\uFF09\u672A\u8BBE\u7F6E\uFF0C\u5BF9\u65B9\u770B\u4E0D\u5230\uFF0C\u8FD4\u56DE 0\n if (!(card & 0x80000000)) {\n return 0;\n }\n return card;\n });\n return view;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgEquip_CardLocation {\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n}\n\nexport class YGOProMsgEquip extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_EQUIP;\n\n @BinaryField(() => YGOProMsgEquip_CardLocation, 0)\n equip: YGOProMsgEquip_CardLocation;\n\n @BinaryField(() => YGOProMsgEquip_CardLocation, 3)\n target: YGOProMsgEquip_CardLocation;\n\n @BinaryField('u8', 6)\n position: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgFieldDisabled extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_FIELD_DISABLED;\n\n @BinaryField('u32', 0)\n disabledField: number;\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgFlipSummoned extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_FLIPSUMMONED;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgFlipSummoning extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_FLIPSUMMONING;\n\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n position: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgHandRes extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_HAND_RES;\n\n @BinaryField('u8', 0)\n result: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgHint extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_HINT;\n\n @BinaryField('u8', 0)\n type: number;\n\n @BinaryField('u8', 1)\n player: number;\n\n @BinaryField('i32', 2)\n desc: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgLpUpdate extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_LPUPDATE;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('i32', 1)\n lp: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgMatchKill extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_MATCH_KILL;\n\n @BinaryField('i32', 0)\n code: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgMissedEffect extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_MISSED_EFFECT;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('i32', 1)\n code: number;\n\n @BinaryField('i32', 5)\n desc: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgMove_CardLocation {\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n\n @BinaryField('u8', 3)\n position: number;\n}\n\nexport class YGOProMsgMove extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_MOVE;\n\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField(() => YGOProMsgMove_CardLocation, 4)\n previous: YGOProMsgMove_CardLocation;\n\n @BinaryField(() => YGOProMsgMove_CardLocation, 8)\n current: YGOProMsgMove_CardLocation;\n\n @BinaryField('i32', 12)\n reason: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgNewPhase extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_NEW_PHASE;\n\n @BinaryField('u16', 0)\n phase: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgNewTurn extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_NEW_TURN;\n\n @BinaryField('u8', 0)\n player: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgPayLpCost extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_PAY_LPCOST;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('i32', 1)\n cost: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgPlayerHint extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_PLAYER_HINT;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n type: number;\n\n @BinaryField('i32', 2)\n value: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgPosChange_CardLocation {\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n}\n\nexport class YGOProMsgPosChange extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_POS_CHANGE;\n\n @BinaryField(() => YGOProMsgPosChange_CardLocation, 0)\n card: YGOProMsgPosChange_CardLocation;\n\n @BinaryField('u8', 3)\n previousPosition: number;\n\n @BinaryField('u8', 4)\n currentPosition: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgRandomSelected extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_RANDOM_SELECTED;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('i32', 2, (obj) => obj.count)\n cards: number[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgRecover extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_RECOVER;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('i32', 1)\n value: number;\n}\n", "import { YGOProMsgBase } from '../base';\n\n// MSG_RELOAD_FIELD \u7684\u7ED3\u6784\u975E\u5E38\u590D\u6742\uFF0C\u5305\u542B\u5B8C\u6574\u7684\u573A\u5730\u4FE1\u606F\n// \u9700\u8981\u624B\u52A8\u5904\u7406\uFF0C\u56E0\u4E3A\u5B83\u5305\u542B\u53EF\u53D8\u957F\u5EA6\u7684\u6570\u636E\u548C\u590D\u6742\u7684\u5D4C\u5957\u7ED3\u6784\nexport class YGOProMsgReloadField_ZoneCard {\n occupied: number;\n position?: number;\n xyzCount?: number;\n}\n\nexport class YGOProMsgReloadField_PlayerInfo {\n lp: number;\n mzone: YGOProMsgReloadField_ZoneCard[];\n szone: YGOProMsgReloadField_ZoneCard[];\n deckCount: number;\n handCount: number;\n graveCount: number;\n removedCount: number;\n extraCount: number;\n extraPCount: number;\n}\n\nexport class YGOProMsgReloadField_ChainInfo {\n code: number;\n chainCardController: number;\n chainCardLocation: number;\n chainCardSequence: number;\n chainCardSubsequence: number;\n triggerController: number;\n triggerLocation: number;\n triggerSequence: number;\n desc: number;\n}\n\nexport class YGOProMsgReloadField extends YGOProMsgBase {\n static identifier = 162; // MSG_RELOAD_FIELD\n\n duelRule: number;\n players: YGOProMsgReloadField_PlayerInfo[];\n chains: YGOProMsgReloadField_ChainInfo[];\n\n fromPayload(data: Uint8Array): this {\n if (data.length < 1) {\n throw new Error('MSG data too short');\n }\n const msgType = data[0];\n if (msgType !== this.identifier) {\n throw new Error(\n `MSG type mismatch: expected ${this.identifier}, got ${msgType}`,\n );\n }\n\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n let offset = 1;\n\n this.duelRule = view.getUint8(offset++);\n this.players = [];\n\n // \u8BFB\u53D6\u4E24\u4E2A\u73A9\u5BB6\u7684\u6570\u636E\n for (let i = 0; i < 2; i++) {\n const player: YGOProMsgReloadField_PlayerInfo = {\n lp: view.getInt32(offset, true),\n mzone: [],\n szone: [],\n deckCount: 0,\n handCount: 0,\n graveCount: 0,\n removedCount: 0,\n extraCount: 0,\n extraPCount: 0,\n };\n offset += 4;\n\n // \u8BFB\u53D6 mzone[7]\n for (let seq = 0; seq < 7; seq++) {\n const occupied = view.getUint8(offset++);\n const card: YGOProMsgReloadField_ZoneCard = { occupied };\n if (occupied) {\n card.position = view.getUint8(offset++);\n card.xyzCount = view.getUint8(offset++);\n }\n player.mzone.push(card);\n }\n\n // \u8BFB\u53D6 szone[8]\n for (let seq = 0; seq < 8; seq++) {\n const occupied = view.getUint8(offset++);\n const card: YGOProMsgReloadField_ZoneCard = { occupied };\n if (occupied) {\n card.position = view.getUint8(offset++);\n }\n player.szone.push(card);\n }\n\n // \u8BFB\u53D6\u5404\u533A\u57DF\u8BA1\u6570\n player.deckCount = view.getUint8(offset++);\n player.handCount = view.getUint8(offset++);\n player.graveCount = view.getUint8(offset++);\n player.removedCount = view.getUint8(offset++);\n player.extraCount = view.getUint8(offset++);\n player.extraPCount = view.getUint8(offset++);\n\n this.players.push(player);\n }\n\n // \u8BFB\u53D6\u8FDE\u9501\u4FE1\u606F\n const chainCount = view.getUint8(offset++);\n this.chains = [];\n for (let i = 0; i < chainCount; i++) {\n const chain: YGOProMsgReloadField_ChainInfo = {\n code: view.getInt32(offset, true),\n chainCardController: view.getUint8(offset + 4),\n chainCardLocation: view.getUint8(offset + 5),\n chainCardSequence: view.getUint8(offset + 6),\n chainCardSubsequence: view.getUint8(offset + 7),\n triggerController: view.getUint8(offset + 8),\n triggerLocation: view.getUint8(offset + 9),\n triggerSequence: view.getUint8(offset + 10),\n desc: view.getInt32(offset + 11, true),\n };\n offset += 15;\n this.chains.push(chain);\n }\n\n return this;\n }\n\n toPayload(): Uint8Array {\n // \u8BA1\u7B97\u603B\u5927\u5C0F\n let size = 1 + 1; // identifier + duelRule\n\n for (const player of this.players) {\n size += 4; // lp\n for (const card of player.mzone) {\n size += 1; // occupied\n if (card.occupied) {\n size += 2; // position + xyzCount\n }\n }\n for (const card of player.szone) {\n size += 1; // occupied\n if (card.occupied) {\n size += 1; // position\n }\n }\n size += 6; // deckCount, handCount, graveCount, removedCount, extraCount, extraPCount\n }\n\n size += 1; // chainCount\n size += this.chains.length * 15; // \u6BCF\u4E2A\u8FDE\u9501 15 \u5B57\u8282\n\n const result = new Uint8Array(size);\n const view = new DataView(result.buffer);\n let offset = 0;\n\n result[offset++] = this.identifier;\n result[offset++] = this.duelRule;\n\n // \u5199\u5165\u73A9\u5BB6\u6570\u636E\n for (const player of this.players) {\n view.setInt32(offset, player.lp, true);\n offset += 4;\n\n // \u5199\u5165 mzone\n for (const card of player.mzone) {\n result[offset++] = card.occupied;\n if (card.occupied) {\n result[offset++] = card.position || 0;\n result[offset++] = card.xyzCount || 0;\n }\n }\n\n // \u5199\u5165 szone\n for (const card of player.szone) {\n result[offset++] = card.occupied;\n if (card.occupied) {\n result[offset++] = card.position || 0;\n }\n }\n\n // \u5199\u5165\u5404\u533A\u57DF\u8BA1\u6570\n result[offset++] = player.deckCount;\n result[offset++] = player.handCount;\n result[offset++] = player.graveCount;\n result[offset++] = player.removedCount;\n result[offset++] = player.extraCount;\n result[offset++] = player.extraPCount;\n }\n\n // \u5199\u5165\u8FDE\u9501\u4FE1\u606F\n result[offset++] = this.chains.length;\n for (const chain of this.chains) {\n view.setInt32(offset, chain.code, true);\n result[offset + 4] = chain.chainCardController;\n result[offset + 5] = chain.chainCardLocation;\n result[offset + 6] = chain.chainCardSequence;\n result[offset + 7] = chain.chainCardSubsequence;\n result[offset + 8] = chain.triggerController;\n result[offset + 9] = chain.triggerLocation;\n result[offset + 10] = chain.triggerSequence;\n view.setInt32(offset + 11, chain.desc, true);\n offset += 15;\n }\n\n return result;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgRemoveCounter extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_REMOVE_COUNTER;\n\n @BinaryField('u16', 0)\n counterType: number;\n\n @BinaryField('u8', 2)\n controller: number;\n\n @BinaryField('u8', 3)\n location: number;\n\n @BinaryField('u8', 4)\n sequence: number;\n\n @BinaryField('u16', 5)\n count: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgResetTime extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_RESET_TIME;\n\n @BinaryField('i8', 0)\n player: number;\n\n @BinaryField('i16', 1)\n time: number;\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgRetry extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_RETRY;\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgReverseDeck extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_REVERSE_DECK;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgRockPaperScissors extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_ROCK_PAPER_SCISSORS;\n\n @BinaryField('u8', 0)\n player: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectBattleCmd_ActivatableInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('i32', 7)\n desc: number;\n}\n\nexport class YGOProMsgSelectBattleCmd_AttackableInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n directAttack: number;\n}\n\nexport class YGOProMsgSelectBattleCmd extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_BATTLECMD;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n activatableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectBattleCmd_ActivatableInfo,\n 2,\n (obj) => obj.activatableCount,\n )\n activatableCards: YGOProMsgSelectBattleCmd_ActivatableInfo[];\n\n @BinaryField('u8', (obj) => {\n return 2 + obj.activatableCount * 11;\n })\n attackableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectBattleCmd_AttackableInfo,\n (obj) => {\n return 3 + obj.activatableCount * 11;\n },\n (obj) => obj.attackableCount,\n )\n attackableCards: YGOProMsgSelectBattleCmd_AttackableInfo[];\n\n @BinaryField('u8', (obj) => {\n return 3 + obj.activatableCount * 11 + obj.attackableCount * 8;\n })\n canM2: number;\n\n @BinaryField('u8', (obj) => {\n return 4 + obj.activatableCount * 11 + obj.attackableCount * 8;\n })\n canEp: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectCard_CardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n subsequence: number;\n}\n\nexport class YGOProMsgSelectCard extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_CARD;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n cancelable: number;\n\n @BinaryField('u8', 2)\n min: number;\n\n @BinaryField('u8', 3)\n max: number;\n\n @BinaryField('u8', 4)\n count: number;\n\n @BinaryField(() => YGOProMsgSelectCard_CardInfo, 5, (obj) => obj.count)\n cards: YGOProMsgSelectCard_CardInfo[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectChain_ChainInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n subsequence: number;\n\n @BinaryField('i32', 8)\n desc: number;\n\n @BinaryField('u8', 12)\n chainCount: number;\n}\n\nexport class YGOProMsgSelectChain extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_CHAIN;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('u8', 2)\n specialCount: number;\n\n @BinaryField('i32', 3)\n hint0: number;\n\n @BinaryField('i32', 7)\n hint1: number;\n\n @BinaryField(() => YGOProMsgSelectChain_ChainInfo, 11, (obj) => obj.count)\n chains: YGOProMsgSelectChain_ChainInfo[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectCounter_CardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n subsequence: number;\n\n @BinaryField('u16', 8)\n counterCount: number;\n}\n\nexport class YGOProMsgSelectCounter extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_COUNTER;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u16', 1)\n counterType: number;\n\n @BinaryField('u16', 3)\n counterCount: number;\n\n @BinaryField('u8', 5)\n count: number;\n\n @BinaryField(() => YGOProMsgSelectCounter_CardInfo, 6, (obj) => obj.count)\n cards: YGOProMsgSelectCounter_CardInfo[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectDisField extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_DISFIELD;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('u32', 2)\n flag: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectEffectYn extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_EFFECTYN;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('i32', 1)\n code: number;\n\n @BinaryField('u8', 5)\n controller: number;\n\n @BinaryField('u8', 6)\n location: number;\n\n @BinaryField('u8', 7)\n sequence: number;\n\n @BinaryField('u8', 8)\n position: number;\n\n @BinaryField('i32', 9)\n desc: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectIdleCmd_SimpleCardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n}\n\nexport class YGOProMsgSelectIdleCmd_ActivatableInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('i32', 7)\n desc: number;\n}\n\nexport class YGOProMsgSelectIdleCmd extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_IDLECMD;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n summonableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_SimpleCardInfo,\n 2,\n (obj) => obj.summonableCount,\n )\n summonableCards: YGOProMsgSelectIdleCmd_SimpleCardInfo[];\n\n @BinaryField('u8', (obj) => 2 + obj.summonableCount * 7)\n spSummonableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_SimpleCardInfo,\n (obj) => 3 + obj.summonableCount * 7,\n (obj) => obj.spSummonableCount,\n )\n spSummonableCards: YGOProMsgSelectIdleCmd_SimpleCardInfo[];\n\n @BinaryField(\n 'u8',\n (obj) => 3 + obj.summonableCount * 7 + obj.spSummonableCount * 7,\n )\n reposableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_SimpleCardInfo,\n (obj) => 4 + obj.summonableCount * 7 + obj.spSummonableCount * 7,\n (obj) => obj.reposableCount,\n )\n reposableCards: YGOProMsgSelectIdleCmd_SimpleCardInfo[];\n\n @BinaryField(\n 'u8',\n (obj) =>\n 4 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7,\n )\n msetableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_SimpleCardInfo,\n (obj) =>\n 5 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7,\n (obj) => obj.msetableCount,\n )\n msetableCards: YGOProMsgSelectIdleCmd_SimpleCardInfo[];\n\n @BinaryField(\n 'u8',\n (obj) =>\n 5 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7,\n )\n activatableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_ActivatableInfo,\n (obj) =>\n 6 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7,\n (obj) => obj.activatableCount,\n )\n activatableCards: YGOProMsgSelectIdleCmd_ActivatableInfo[];\n\n @BinaryField(\n 'u8',\n (obj) =>\n 6 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7 +\n obj.activatableCount * 11,\n )\n toBpCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_ActivatableInfo,\n (obj) =>\n 7 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7 +\n obj.activatableCount * 11,\n (obj) => obj.toBpCount,\n )\n toBpCards: YGOProMsgSelectIdleCmd_ActivatableInfo[];\n\n @BinaryField(\n 'u8',\n (obj) =>\n 7 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7 +\n obj.activatableCount * 11 +\n obj.toBpCount * 11,\n )\n toEpCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_ActivatableInfo,\n (obj) =>\n 8 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7 +\n obj.activatableCount * 11 +\n obj.toBpCount * 11,\n (obj) => obj.toEpCount,\n )\n toEpCards: YGOProMsgSelectIdleCmd_ActivatableInfo[];\n\n @BinaryField(\n 'u8',\n (obj) =>\n 8 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7 +\n obj.activatableCount * 11 +\n obj.toBpCount * 11 +\n obj.toEpCount * 11,\n )\n shuffleCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_ActivatableInfo,\n (obj) =>\n 9 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7 +\n obj.activatableCount * 11 +\n obj.toBpCount * 11 +\n obj.toEpCount * 11,\n (obj) => obj.shuffleCount,\n )\n shuffleCards: YGOProMsgSelectIdleCmd_ActivatableInfo[];\n\n @BinaryField(\n 'u8',\n (obj) =>\n 9 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7 +\n obj.activatableCount * 11 +\n obj.toBpCount * 11 +\n obj.toEpCount * 11 +\n obj.shuffleCount * 11,\n )\n canBp: number;\n\n @BinaryField(\n 'u8',\n (obj) =>\n 10 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7 +\n obj.activatableCount * 11 +\n obj.toBpCount * 11 +\n obj.toEpCount * 11 +\n obj.shuffleCount * 11,\n )\n canEp: number;\n\n @BinaryField(\n 'u8',\n (obj) =>\n 11 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7 +\n obj.activatableCount * 11 +\n obj.toBpCount * 11 +\n obj.toEpCount * 11 +\n obj.shuffleCount * 11,\n )\n canShuffle: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectOption extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_OPTION;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('i32', 2, (obj) => obj.count)\n options: number[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectPlace extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_PLACE;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('u32', 2)\n flag: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectPosition extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_POSITION;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('i32', 1)\n code: number;\n\n @BinaryField('u8', 5)\n positions: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectSum_CardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('i32', 7)\n opParam: number;\n}\n\nexport class YGOProMsgSelectSum extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_SUM;\n\n @BinaryField('u8', 0)\n mode: number;\n\n @BinaryField('u8', 1)\n player: number;\n\n @BinaryField('i32', 2)\n sumVal: number;\n\n @BinaryField('u8', 6)\n min: number;\n\n @BinaryField('u8', 7)\n max: number;\n\n @BinaryField('u8', 8)\n mustSelectCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectSum_CardInfo,\n 9,\n (obj) => obj.mustSelectCount,\n )\n mustSelectCards: YGOProMsgSelectSum_CardInfo[];\n\n @BinaryField('u8', (obj) => {\n return 9 + obj.mustSelectCount * 11;\n })\n count: number;\n\n @BinaryField(\n () => YGOProMsgSelectSum_CardInfo,\n (obj) => {\n return 10 + obj.mustSelectCount * 11;\n },\n (obj) => obj.count,\n )\n cards: YGOProMsgSelectSum_CardInfo[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectTribute_CardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n subsequence: number;\n\n @BinaryField('i32', 8)\n releaseParam: number;\n}\n\nexport class YGOProMsgSelectTribute extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_TRIBUTE;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n cancelable: number;\n\n @BinaryField('u8', 2)\n min: number;\n\n @BinaryField('u8', 3)\n max: number;\n\n @BinaryField('u8', 4)\n count: number;\n\n @BinaryField(() => YGOProMsgSelectTribute_CardInfo, 5, (obj) => obj.count)\n cards: YGOProMsgSelectTribute_CardInfo[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectUnselectCard_CardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n subsequence: number;\n}\n\nexport class YGOProMsgSelectUnselectCard extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_UNSELECT_CARD;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n finishable: number;\n\n @BinaryField('u8', 2)\n cancelable: number;\n\n @BinaryField('u8', 3)\n min: number;\n\n @BinaryField('u8', 4)\n max: number;\n\n @BinaryField('u8', 5)\n selectableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectUnselectCard_CardInfo,\n 6,\n (obj) => obj.selectableCount,\n )\n selectableCards: YGOProMsgSelectUnselectCard_CardInfo[];\n\n @BinaryField('u8', (obj) => {\n return 6 + obj.selectableCount * 8;\n })\n unselectableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectUnselectCard_CardInfo,\n (obj) => {\n return 7 + obj.selectableCount * 8;\n },\n (obj) => obj.unselectableCount,\n )\n unselectableCards: YGOProMsgSelectUnselectCard_CardInfo[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSelectYesNo extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_YESNO;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('i32', 1)\n desc: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSet extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SET;\n\n @BinaryField('i32', 0)\n code: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgShuffleDeck extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SHUFFLE_DECK;\n\n @BinaryField('u8', 0)\n player: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgShuffleExtra extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SHUFFLE_EXTRA;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('i32', 2, (obj) => obj.count)\n cards: number[];\n\n // \u5BF9\u65B9\u89C6\u89D2\u9700\u8981\u9690\u85CF\u989D\u5916\u5361\u7EC4\u4FE1\u606F\n opponentView(): this {\n const view = this.copy();\n view.cards = view.cards.map((card) => {\n if (!(card & 0x80000000)) {\n return 0;\n }\n return card;\n });\n return view;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgShuffleHand extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SHUFFLE_HAND;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('i32', 2, (obj) => obj.count)\n cards: number[];\n\n // \u5BF9\u65B9\u89C6\u89D2\u9700\u8981\u9690\u85CF\u624B\u724C\u4FE1\u606F\n opponentView(): this {\n const view = this.copy();\n view.cards = view.cards.map(() => 0);\n return view;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgShuffleSetCard_CardLocation {\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n\n @BinaryField('u8', 3)\n position: number;\n}\n\nexport class YGOProMsgShuffleSetCard_SetCardInfo {\n @BinaryField(() => YGOProMsgShuffleSetCard_CardLocation, 0)\n oldLocation: YGOProMsgShuffleSetCard_CardLocation;\n\n @BinaryField(() => YGOProMsgShuffleSetCard_CardLocation, 4)\n newLocation: YGOProMsgShuffleSetCard_CardLocation;\n}\n\nexport class YGOProMsgShuffleSetCard extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SHUFFLE_SET_CARD;\n\n @BinaryField('u8', 0)\n location: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField(() => YGOProMsgShuffleSetCard_SetCardInfo, 2, (obj) => obj.count)\n cards: YGOProMsgShuffleSetCard_SetCardInfo[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSortCard_CardInfo {\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n}\n\nexport class YGOProMsgSortCard extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SORT_CARD;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField(() => YGOProMsgSortCard_CardInfo, 2, (obj) => obj.count)\n cards: YGOProMsgSortCard_CardInfo[];\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSpSummoned extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SPSUMMONED;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSpSummoning extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SPSUMMONING;\n\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n position: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgStart_PlayerInfo {\n @BinaryField('u16', 0)\n deckCount: number;\n\n @BinaryField('u16', 2)\n extraCount: number;\n}\n\nexport class YGOProMsgStart extends YGOProMsgBase {\n static identifier = 4; // MSG_START\n\n @BinaryField('u8', 0)\n playerType: number;\n\n @BinaryField('u8', 1)\n duelRule: number;\n\n @BinaryField('i32', 2)\n startLp0: number;\n\n @BinaryField('i32', 6)\n startLp1: number;\n\n @BinaryField(() => YGOProMsgStart_PlayerInfo, 10)\n player0: YGOProMsgStart_PlayerInfo;\n\n @BinaryField(() => YGOProMsgStart_PlayerInfo, 14)\n player1: YGOProMsgStart_PlayerInfo;\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSummoned extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SUMMONED;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSummoning extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SUMMONING;\n\n @BinaryField('i32', 0)\n code: number;\n\n @BinaryField('u8', 4)\n controller: number;\n\n @BinaryField('u8', 5)\n location: number;\n\n @BinaryField('u8', 6)\n sequence: number;\n\n @BinaryField('u8', 7)\n position: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSwap_CardLocation {\n @BinaryField('u8', 0)\n controller: number;\n\n @BinaryField('u8', 1)\n location: number;\n\n @BinaryField('u8', 2)\n sequence: number;\n\n @BinaryField('u8', 3)\n position: number;\n}\n\nexport class YGOProMsgSwap extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SWAP;\n\n @BinaryField(() => YGOProMsgSwap_CardLocation, 0)\n card1: YGOProMsgSwap_CardLocation;\n\n @BinaryField(() => YGOProMsgSwap_CardLocation, 4)\n card2: YGOProMsgSwap_CardLocation;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgSwapGraveDeck extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_SWAP_GRAVE_DECK;\n\n @BinaryField('u8', 0)\n player: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgTagSwap extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_TAG_SWAP;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n mzoneCount: number;\n\n @BinaryField('u8', 2)\n extraCount: number;\n\n @BinaryField('u8', 3)\n pzoneCount: number;\n\n @BinaryField('u8', 4)\n handCount: number;\n\n @BinaryField('i32', 5, (obj) => obj.handCount)\n handCards: number[];\n\n @BinaryField('i32', (obj) => 5 + obj.handCount * 4, (obj) => obj.extraCount)\n extraCards: number[];\n\n @BinaryField('u32', (obj) => 5 + obj.handCount * 4 + obj.extraCount * 4)\n mzoneFlags: number;\n\n // \u5BF9\u65B9\u548C\u961F\u53CB\u89C6\u89D2\u9700\u8981\u9690\u85CF\u624B\u724C\u548C\u989D\u5916\u5361\u7EC4\u4FE1\u606F\n opponentView(): this {\n const view = this.copy();\n view.handCards = view.handCards.map(() => 0);\n view.extraCards = view.extraCards.map((card) => {\n if (!(card & 0x80000000)) {\n return 0;\n }\n return card;\n });\n return view;\n }\n\n teammateView(): this {\n return this.opponentView();\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgTossCoin extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_TOSS_COIN;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('u8', 2, (obj) => obj.count)\n results: number[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgTossDice extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_TOSS_DICE;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('u8', 2, (obj) => obj.count)\n results: number[];\n}\n", "// Generated from /home/nanahira/ygo/ygopro/script/constant.lua\nexport const OcgcoreScriptConstants = {\n ACTIVITY_ATTACK: 5,\n ACTIVITY_BATTLE_PHASE: 6,\n ACTIVITY_CHAIN: 7,\n ACTIVITY_FLIPSUMMON: 4,\n ACTIVITY_NORMALSUMMON: 2,\n ACTIVITY_SPSUMMON: 3,\n ACTIVITY_SUMMON: 1,\n ASSUME_ATTACK: 7,\n ASSUME_ATTRIBUTE: 5,\n ASSUME_CODE: 1,\n ASSUME_DEFENSE: 8,\n ASSUME_LEVEL: 3,\n ASSUME_RACE: 6,\n ASSUME_RANK: 4,\n ASSUME_TYPE: 2,\n ATTRIBUTE_ALL: 127,\n ATTRIBUTE_DARK: 32,\n ATTRIBUTE_DIVINE: 64,\n ATTRIBUTE_EARTH: 1,\n ATTRIBUTE_FIRE: 4,\n ATTRIBUTE_LIGHT: 16,\n ATTRIBUTE_WATER: 2,\n ATTRIBUTE_WIND: 8,\n CARD_MARINE_DOLPHIN: 78734254,\n CARD_QUESTION: 38723936,\n CARD_TWINKLE_MOSS: 13857930,\n CATEGORY_ANNOUNCE: 536870912,\n CATEGORY_ATKCHANGE: 2097152,\n CATEGORY_COIN: 16777216,\n CATEGORY_CONTROL: 8192,\n CATEGORY_COUNTER: 8388608,\n CATEGORY_DAMAGE: 524288,\n CATEGORY_DECKDES: 64,\n CATEGORY_DEFCHANGE: 4194304,\n CATEGORY_DESTROY: 1,\n CATEGORY_DICE: 33554432,\n CATEGORY_DISABLE: 16384,\n CATEGORY_DISABLE_SUMMON: 32768,\n CATEGORY_DRAW: 65536,\n CATEGORY_EQUIP: 262144,\n CATEGORY_FUSION_SUMMON: 1073741824,\n CATEGORY_GRAVE_ACTION: 2048,\n CATEGORY_GRAVE_SPSUMMON: 134217728,\n CATEGORY_HANDES: 128,\n CATEGORY_LEAVE_GRAVE: 67108864,\n CATEGORY_NEGATE: 268435456,\n CATEGORY_POSITION: 4096,\n CATEGORY_RECOVER: 1048576,\n CATEGORY_RELEASE: 2,\n CATEGORY_REMOVE: 4,\n CATEGORY_SEARCH: 131072,\n CATEGORY_SPECIAL_SUMMON: 512,\n CATEGORY_SUMMON: 256,\n CATEGORY_TODECK: 16,\n CATEGORY_TOEXTRA: 2147483648,\n CATEGORY_TOGRAVE: 32,\n CATEGORY_TOHAND: 8,\n CATEGORY_TOKEN: 1024,\n CHAININFO_CHAIN_COUNT: 1,\n CHAININFO_CHAIN_ID: 2048,\n CHAININFO_DISABLE_PLAYER: 1024,\n CHAININFO_DISABLE_REASON: 512,\n CHAININFO_EXTTYPE: 8192,\n CHAININFO_TARGET_CARDS: 64,\n CHAININFO_TARGET_PARAM: 256,\n CHAININFO_TARGET_PLAYER: 128,\n CHAININFO_TRIGGERING_ATTACK: 4194304,\n CHAININFO_TRIGGERING_ATTRIBUTE: 1048576,\n CHAININFO_TRIGGERING_CODE: 32768,\n CHAININFO_TRIGGERING_CODE2: 65536,\n CHAININFO_TRIGGERING_CONTROLER: 8,\n CHAININFO_TRIGGERING_DEFENSE: 8388608,\n CHAININFO_TRIGGERING_EFFECT: 2,\n CHAININFO_TRIGGERING_LEVEL: 262144,\n CHAININFO_TRIGGERING_LOCATION: 16,\n CHAININFO_TRIGGERING_PLAYER: 4,\n CHAININFO_TRIGGERING_POSITION: 16384,\n CHAININFO_TRIGGERING_RACE: 2097152,\n CHAININFO_TRIGGERING_RANK: 524288,\n CHAININFO_TRIGGERING_SEQUENCE: 32,\n CHAININFO_TYPE: 4096,\n CHINT_ATTRIBUTE: 4,\n CHINT_CARD: 2,\n CHINT_DESC: 6,\n CHINT_NUMBER: 5,\n CHINT_RACE: 3,\n CHINT_TURN: 1,\n COUNTER_NEED_ENABLE: 8192,\n COUNTER_WITHOUT_PERMIT: 4096,\n DUEL_ATTACK_FIRST_TURN: 2,\n DUEL_OBSOLETE_RULING: 8,\n DUEL_OLD_REPLAY: 4,\n DUEL_PSEUDO_SHUFFLE: 16,\n DUEL_RETURN_DECK_TOP: 128,\n DUEL_REVEAL_DECK_SEQ: 256,\n DUEL_SIMPLE_AI: 64,\n DUEL_TAG_MODE: 32,\n DUEL_TEST_MODE: 1,\n EFFECT_ACTIVATE_COST: 90,\n EFFECT_ACTIVATION_COUNT_LIMIT: 367,\n EFFECT_ADD_ATTRIBUTE: 125,\n EFFECT_ADD_CODE: 113,\n EFFECT_ADD_EXTRA_TRIBUTE: 157,\n EFFECT_ADD_FUSION_ATTRIBUTE: 349,\n EFFECT_ADD_FUSION_CODE: 340,\n EFFECT_ADD_FUSION_SETCODE: 341,\n EFFECT_ADD_LINK_ATTRIBUTE: 356,\n EFFECT_ADD_LINK_CODE: 354,\n EFFECT_ADD_LINK_RACE: 357,\n EFFECT_ADD_LINK_SETCODE: 355,\n EFFECT_ADD_RACE: 120,\n EFFECT_ADD_SETCODE: 334,\n EFFECT_ADD_TYPE: 115,\n EFFECT_ALSO_BATTLE_DAMAGE: 207,\n EFFECT_ATTACK_ALL: 193,\n EFFECT_ATTACK_COST: 96,\n EFFECT_ATTACK_DISABLED: 197,\n EFFECT_AVOID_BATTLE_DAMAGE: 201,\n EFFECT_BATTLE_DAMAGE_TO_EFFECT: 205,\n EFFECT_BATTLE_DESTROY_REDIRECT: 204,\n EFFECT_BOTH_BATTLE_DAMAGE: 206,\n EFFECT_BP_TWICE: 296,\n EFFECT_CANNOT_ACTIVATE: 6,\n EFFECT_CANNOT_ATTACK: 85,\n EFFECT_CANNOT_ATTACK_ANNOUNCE: 86,\n EFFECT_CANNOT_BE_BATTLE_TARGET: 70,\n EFFECT_CANNOT_BE_EFFECT_TARGET: 71,\n EFFECT_CANNOT_BP: 185,\n EFFECT_CANNOT_CHANGE_CONTROL: 5,\n EFFECT_CANNOT_CHANGE_POSITION: 14,\n EFFECT_CANNOT_CHANGE_POS_E: 87,\n EFFECT_CANNOT_DIRECT_ATTACK: 73,\n EFFECT_CANNOT_DISABLE: 3,\n EFFECT_CANNOT_DISABLE_FLIP_SUMMON: 39,\n EFFECT_CANNOT_DISABLE_SPSUMMON: 27,\n EFFECT_CANNOT_DISABLE_SUMMON: 26,\n EFFECT_CANNOT_DISCARD_DECK: 56,\n EFFECT_CANNOT_DISCARD_HAND: 55,\n EFFECT_CANNOT_DISEFFECT: 13,\n EFFECT_CANNOT_DRAW: 25,\n EFFECT_CANNOT_EP: 187,\n EFFECT_CANNOT_FLIP_SUMMON: 21,\n EFFECT_CANNOT_INACTIVATE: 12,\n EFFECT_CANNOT_M2: 186,\n EFFECT_CANNOT_MSET: 23,\n EFFECT_CANNOT_PLACE_COUNTER: 58,\n EFFECT_CANNOT_RELEASE: 46,\n EFFECT_CANNOT_REMOVE: 67,\n EFFECT_CANNOT_SELECT_BATTLE_TARGET: 332,\n EFFECT_CANNOT_SELECT_EFFECT_TARGET: 333,\n EFFECT_CANNOT_SPECIAL_SUMMON: 22,\n EFFECT_CANNOT_SSET: 24,\n EFFECT_CANNOT_SUMMON: 20,\n EFFECT_CANNOT_TO_DECK: 66,\n EFFECT_CANNOT_TO_GRAVE: 68,\n EFFECT_CANNOT_TO_GRAVE_AS_COST: 59,\n EFFECT_CANNOT_TO_HAND: 65,\n EFFECT_CANNOT_TRIGGER: 7,\n EFFECT_CANNOT_TURN_SET: 69,\n EFFECT_CANNOT_USE_AS_COST: 57,\n EFFECT_CHAIN_MATERIAL: 231,\n EFFECT_CHANGE_ATTRIBUTE: 127,\n EFFECT_CHANGE_BATTLE_DAMAGE: 208,\n EFFECT_CHANGE_CODE: 114,\n EFFECT_CHANGE_DAMAGE: 82,\n EFFECT_CHANGE_ENVIRONMENT: 290,\n EFFECT_CHANGE_FUSION_ATTRIBUTE: 351,\n EFFECT_CHANGE_GRAVE_ATTRIBUTE: 365,\n EFFECT_CHANGE_GRAVE_RACE: 366,\n EFFECT_CHANGE_INVOLVING_BATTLE_DAMAGE: 314,\n EFFECT_CHANGE_LEVEL: 131,\n EFFECT_CHANGE_LSCALE: 135,\n EFFECT_CHANGE_RACE: 122,\n EFFECT_CHANGE_RANK: 133,\n EFFECT_CHANGE_RANK_FINAL: 315,\n EFFECT_CHANGE_RSCALE: 137,\n EFFECT_CHANGE_TYPE: 117,\n EFFECT_COUNT_CODE_CHAIN: 1073741824,\n EFFECT_COUNT_CODE_DUEL: 536870912,\n EFFECT_COUNT_CODE_OATH: 268435456,\n EFFECT_COUNT_CODE_SINGLE: 1,\n EFFECT_DECREASE_TRIBUTE: 151,\n EFFECT_DECREASE_TRIBUTE_SET: 152,\n EFFECT_DEFENSE_ATTACK: 190,\n EFFECT_DESTROY_REPLACE: 50,\n EFFECT_DESTROY_SUBSTITUTE: 45,\n EFFECT_DIRECT_ATTACK: 74,\n EFFECT_DISABLE: 2,\n EFFECT_DISABLE_CHAIN: 9,\n EFFECT_DISABLE_CHAIN_FIELD: 337,\n EFFECT_DISABLE_EFFECT: 8,\n EFFECT_DISABLE_FIELD: 260,\n EFFECT_DISABLE_TRAPMONSTER: 10,\n EFFECT_DISCARD_COST_CHANGE: 338,\n EFFECT_DIVINE_LIGHT: 38,\n EFFECT_DOUBLE_TRIBUTE: 150,\n EFFECT_DOUBLE_XMATERIAL: 375,\n EFFECT_DRAW_COUNT: 271,\n EFFECT_DUAL_STATUS: 75,\n EFFECT_DUAL_SUMMONABLE: 77,\n EFFECT_EQUIP_LIMIT: 76,\n EFFECT_EXTRA_ATTACK: 194,\n EFFECT_EXTRA_ATTACK_MONSTER: 346,\n EFFECT_EXTRA_FUSION_MATERIAL: 352,\n EFFECT_EXTRA_LINK_MATERIAL: 358,\n EFFECT_EXTRA_PENDULUM_SUMMON: 360,\n EFFECT_EXTRA_RELEASE: 153,\n EFFECT_EXTRA_RELEASE_NONSUM: 158,\n EFFECT_EXTRA_RELEASE_SUM: 155,\n EFFECT_EXTRA_SET_COUNT: 35,\n EFFECT_EXTRA_SUMMON_COUNT: 29,\n EFFECT_EXTRA_SYNCHRO_MATERIAL: 232,\n EFFECT_FIRST_ATTACK: 192,\n EFFECT_FLAG2_COF: 2,\n EFFECT_FLAG2_OPTION: 8,\n EFFECT_FLAG2_REPEAT_UPDATE: 1,\n EFFECT_FLAG2_WICKED: 4,\n EFFECT_FLAG_ABSOLUTE_TARGET: 64,\n EFFECT_FLAG_ACTIVATE_CONDITION: 536870912,\n EFFECT_FLAG_BOTH_SIDE: 4096,\n EFFECT_FLAG_CANNOT_DISABLE: 1024,\n EFFECT_FLAG_CANNOT_INACTIVATE: 33554432,\n EFFECT_FLAG_CAN_FORBIDDEN: 512,\n EFFECT_FLAG_CARD_TARGET: 16,\n EFFECT_FLAG_CLIENT_HINT: 67108864,\n EFFECT_FLAG_COIN: 4294967296,\n EFFECT_FLAG_CONTINUOUS_TARGET: 134217728,\n EFFECT_FLAG_COPY: 8192,\n EFFECT_FLAG_COUNT_LIMIT: 4,\n EFFECT_FLAG_CVAL_CHECK: 1073741824,\n EFFECT_FLAG_DAMAGE_CAL: 32768,\n EFFECT_FLAG_DAMAGE_STEP: 16384,\n EFFECT_FLAG_DELAY: 65536,\n EFFECT_FLAG_DICE: 8589934592,\n EFFECT_FLAG_EFFECT: 536870912,\n EFFECT_FLAG_EVENT_PLAYER: 8388608,\n EFFECT_FLAG_FIELD_ONLY: 8,\n EFFECT_FLAG_FUNC_VALUE: 2,\n EFFECT_FLAG_FUSION_SUMMON: 17179869184,\n EFFECT_FLAG_IGNORE_IMMUNE: 128,\n EFFECT_FLAG_IGNORE_RANGE: 32,\n EFFECT_FLAG_IMMEDIATELY_APPLY: 2147483648,\n EFFECT_FLAG_INITIAL: 1,\n EFFECT_FLAG_LIMIT_ZONE: 268435456,\n EFFECT_FLAG_NO_TURN_RESET: 4194304,\n EFFECT_FLAG_OATH: 524288,\n EFFECT_FLAG_OWNER_RELATE: 16777216,\n EFFECT_FLAG_PLAYER_TARGET: 2048,\n EFFECT_FLAG_REPEAT: 2097152,\n EFFECT_FLAG_SET_AVAILABLE: 256,\n EFFECT_FLAG_SINGLE_RANGE: 131072,\n EFFECT_FLAG_SPSUM_PARAM: 1048576,\n EFFECT_FLAG_UNCOPYABLE: 262144,\n EFFECT_FLIPSUMMON_COST: 93,\n EFFECT_FORBIDDEN: 292,\n EFFECT_FUSION_MATERIAL: 230,\n EFFECT_FUSION_SUBSTITUTE: 234,\n EFFECT_HAND_LIMIT: 270,\n EFFECT_HAND_SYNCHRO: 339,\n EFFECT_IGNORE_BATTLE_TARGET: 72,\n EFFECT_IMMUNE_EFFECT: 1,\n EFFECT_INDESTRUCTABLE: 40,\n EFFECT_INDESTRUCTABLE_BATTLE: 42,\n EFFECT_INDESTRUCTABLE_COUNT: 47,\n EFFECT_INDESTRUCTABLE_EFFECT: 41,\n EFFECT_KAISER_COLOSSEUM: 370,\n EFFECT_LEAVE_FIELD_REDIRECT: 60,\n EFFECT_LEFT_SPSUMMON_COUNT: 331,\n EFFECT_LIMIT_SET_PROC: 37,\n EFFECT_LIMIT_SPECIAL_SUMMON_POSITION: 368,\n EFFECT_LIMIT_SUMMON_PROC: 33,\n EFFECT_LPCOST_CHANGE: 170,\n EFFECT_LPCOST_REPLACE: 171,\n EFFECT_MATCH_KILL: 300,\n EFFECT_MATERIAL_CHECK: 251,\n EFFECT_MATERIAL_LIMIT: 361,\n EFFECT_MAX_MZONE: 263,\n EFFECT_MAX_SZONE: 264,\n EFFECT_MONSTER_SSET: 18,\n EFFECT_MSET_COST: 94,\n EFFECT_MUST_ATTACK: 191,\n EFFECT_MUST_ATTACK_MONSTER: 344,\n EFFECT_MUST_BE_ATTACKED: 195,\n EFFECT_MUST_BE_FMATERIAL: 316,\n EFFECT_MUST_BE_LMATERIAL: 318,\n EFFECT_MUST_BE_SMATERIAL: 312,\n EFFECT_MUST_BE_XMATERIAL: 317,\n EFFECT_MUST_USE_MZONE: 265,\n EFFECT_NECRO_VALLEY: 291,\n EFFECT_NECRO_VALLEY_IM: 293,\n EFFECT_NO_BATTLE_DAMAGE: 200,\n EFFECT_NO_EFFECT_DAMAGE: 335,\n EFFECT_OLDUNION_STATUS: 348,\n EFFECT_ONLY_ATTACK_MONSTER: 343,\n EFFECT_ONLY_BE_ATTACKED: 196,\n EFFECT_OVERLAY_RITUAL_MATERIAL: 364,\n EFFECT_PATRICIAN_OF_DARKNESS: 345,\n EFFECT_PIERCE: 203,\n EFFECT_PRE_MONSTER: 250,\n EFFECT_PUBLIC: 160,\n EFFECT_QP_ACT_IN_NTPHAND: 311,\n EFFECT_QP_ACT_IN_SET_TURN: 359,\n EFFECT_REFLECT_BATTLE_DAMAGE: 202,\n EFFECT_REFLECT_DAMAGE: 83,\n EFFECT_RELEASE_REPLACE: 51,\n EFFECT_REMAIN_FIELD: 17,\n EFFECT_REMOVE_ATTRIBUTE: 126,\n EFFECT_REMOVE_BRAINWASHING: 295,\n EFFECT_REMOVE_FUSION_ATTRIBUTE: 350,\n EFFECT_REMOVE_RACE: 121,\n EFFECT_REMOVE_REDIRECT: 64,\n EFFECT_REMOVE_TYPE: 116,\n EFFECT_REPLACE_DAMAGE: 371,\n EFFECT_REVERSE_DAMAGE: 80,\n EFFECT_REVERSE_DECK: 294,\n EFFECT_REVERSE_RECOVER: 81,\n EFFECT_REVERSE_UPDATE: 108,\n EFFECT_REVIVE_LIMIT: 31,\n EFFECT_RISE_TO_FULL_HEIGHT: 342,\n EFFECT_RITUAL_LEVEL_EX: 374,\n EFFECT_SELF_DESTROY: 141,\n EFFECT_SELF_TOGRAVE: 142,\n EFFECT_SEND_REPLACE: 52,\n EFFECT_SET_ATTACK: 101,\n EFFECT_SET_ATTACK_FINAL: 102,\n EFFECT_SET_BASE_ATTACK: 103,\n EFFECT_SET_BASE_ATTACK_FINAL: 111,\n EFFECT_SET_BASE_DEFENSE: 107,\n EFFECT_SET_BASE_DEFENSE_FINAL: 112,\n EFFECT_SET_BATTLE_ATTACK: 362,\n EFFECT_SET_BATTLE_DEFENSE: 363,\n EFFECT_SET_CONTROL: 4,\n EFFECT_SET_DEFENSE: 105,\n EFFECT_SET_DEFENSE_FINAL: 106,\n EFFECT_SET_POSITION: 140,\n EFFECT_SET_PROC: 36,\n EFFECT_SET_SUMMON_COUNT_LIMIT: 28,\n EFFECT_SKIP_BP: 183,\n EFFECT_SKIP_DP: 180,\n EFFECT_SKIP_M1: 182,\n EFFECT_SKIP_M2: 184,\n EFFECT_SKIP_SP: 181,\n EFFECT_SKIP_TURN: 188,\n EFFECT_SPIRIT_DONOT_RETURN: 280,\n EFFECT_SPIRIT_MAYNOT_RETURN: 281,\n EFFECT_SPSUMMON_CONDITION: 30,\n EFFECT_SPSUMMON_COST: 92,\n EFFECT_SPSUMMON_COUNT_LIMIT: 330,\n EFFECT_SPSUMMON_PROC: 34,\n EFFECT_SPSUMMON_PROC_G: 320,\n EFFECT_SSET_COST: 95,\n EFFECT_SUMMON_COST: 91,\n EFFECT_SUMMON_PROC: 32,\n EFFECT_SWAP_AD: 109,\n EFFECT_SWAP_BASE_AD: 110,\n EFFECT_SYNCHRO_CHECK: 310,\n EFFECT_SYNCHRO_LEVEL_EX: 373,\n EFFECT_TOSS_COIN_REPLACE: 220,\n EFFECT_TOSS_DICE_REPLACE: 221,\n EFFECT_TO_DECK_REDIRECT: 62,\n EFFECT_TO_GRAVE_REDIRECT: 63,\n EFFECT_TO_GRAVE_REDIRECT_CB: 313,\n EFFECT_TO_HAND_REDIRECT: 61,\n EFFECT_TRAP_ACT_IN_HAND: 15,\n EFFECT_TRAP_ACT_IN_SET_TURN: 16,\n EFFECT_TRIBUTE_LIMIT: 154,\n EFFECT_TRIPLE_TRIBUTE: 156,\n EFFECT_TUNER: 369,\n EFFECT_TUNER_MATERIAL_LIMIT: 353,\n EFFECT_TYPE_ACTIONS: 8,\n EFFECT_TYPE_ACTIVATE: 16,\n EFFECT_TYPE_CONTINUOUS: 2048,\n EFFECT_TYPE_EQUIP: 4,\n EFFECT_TYPE_FIELD: 2,\n EFFECT_TYPE_FLIP: 32,\n EFFECT_TYPE_GRANT: 8192,\n EFFECT_TYPE_IGNITION: 64,\n EFFECT_TYPE_QUICK_F: 1024,\n EFFECT_TYPE_QUICK_O: 256,\n EFFECT_TYPE_SINGLE: 1,\n EFFECT_TYPE_TARGET: 16384,\n EFFECT_TYPE_TRIGGER_F: 512,\n EFFECT_TYPE_TRIGGER_O: 128,\n EFFECT_TYPE_XMATERIAL: 4096,\n EFFECT_UNION_LIMIT: 78,\n EFFECT_UNION_STATUS: 347,\n EFFECT_UNIQUE_CHECK: 297,\n EFFECT_UNRELEASABLE_EFFECT: 48,\n EFFECT_UNRELEASABLE_NONSUM: 44,\n EFFECT_UNRELEASABLE_SUM: 43,\n EFFECT_UNSUMMONABLE_CARD: 336,\n EFFECT_UPDATE_ATTACK: 100,\n EFFECT_UPDATE_DEFENSE: 104,\n EFFECT_UPDATE_LEVEL: 130,\n EFFECT_UPDATE_LSCALE: 134,\n EFFECT_UPDATE_RANK: 132,\n EFFECT_UPDATE_RSCALE: 136,\n EFFECT_USE_EXTRA_MZONE: 261,\n EFFECT_USE_EXTRA_SZONE: 262,\n EFFECT_XYZ_MATERIAL: 233,\n EFFECT_XYZ_MIN_COUNT: 372,\n EVENT_ADD_COUNTER: 65536,\n EVENT_ADJUST: 1040,\n EVENT_ATTACK_ANNOUNCE: 1130,\n EVENT_ATTACK_DISABLED: 1142,\n EVENT_BATTLED: 1138,\n EVENT_BATTLE_CONFIRM: 1133,\n EVENT_BATTLE_DAMAGE: 1143,\n EVENT_BATTLE_DESTROYED: 1140,\n EVENT_BATTLE_DESTROYING: 1139,\n EVENT_BATTLE_END: 1137,\n EVENT_BATTLE_START: 1132,\n EVENT_BECOME_TARGET: 1028,\n EVENT_BE_BATTLE_TARGET: 1131,\n EVENT_BE_MATERIAL: 1108,\n EVENT_BE_PRE_MATERIAL: 1109,\n EVENT_BREAK_EFFECT: 1050,\n EVENT_CHAINING: 1027,\n EVENT_CHAIN_ACTIVATED: 1023,\n EVENT_CHAIN_ACTIVATING: 1021,\n EVENT_CHAIN_DISABLED: 1025,\n EVENT_CHAIN_END: 1026,\n EVENT_CHAIN_NEGATED: 1024,\n EVENT_CHAIN_SOLVED: 1022,\n EVENT_CHAIN_SOLVING: 1020,\n EVENT_CHANGE_POS: 1016,\n EVENT_CONTROL_CHANGED: 1120,\n EVENT_CUSTOM: 268435456,\n EVENT_DAMAGE: 1111,\n EVENT_DAMAGE_CALCULATING: 1135,\n EVENT_DAMAGE_STEP_END: 1141,\n EVENT_DESTROY: 1010,\n EVENT_DESTROYED: 1029,\n EVENT_DETACH_MATERIAL: 1202,\n EVENT_DISCARD: 1018,\n EVENT_DRAW: 1110,\n EVENT_EQUIP: 1121,\n EVENT_FLIP: 1001,\n EVENT_FLIP_SUMMON: 1104,\n EVENT_FLIP_SUMMON_NEGATED: 1115,\n EVENT_FLIP_SUMMON_SUCCESS: 1101,\n EVENT_FREE_CHAIN: 1002,\n EVENT_LEAVE_DECK: 1032,\n EVENT_LEAVE_FIELD: 1015,\n EVENT_LEAVE_FIELD_P: 1019,\n EVENT_LEAVE_GRAVE: 1031,\n EVENT_LEVEL_UP: 1200,\n EVENT_MOVE: 1030,\n EVENT_MSET: 1106,\n EVENT_PAY_LPCOST: 1201,\n EVENT_PHASE: 4096,\n EVENT_PHASE_START: 8192,\n EVENT_PREDRAW: 1113,\n EVENT_PRE_BATTLE_DAMAGE: 1136,\n EVENT_PRE_DAMAGE_CALCULATE: 1134,\n EVENT_RECOVER: 1112,\n EVENT_RELEASE: 1017,\n EVENT_REMOVE: 1011,\n EVENT_REMOVE_COUNTER: 131072,\n EVENT_RETURN_TO_GRAVE: 1203,\n EVENT_SPSUMMON: 1105,\n EVENT_SPSUMMON_NEGATED: 1116,\n EVENT_SPSUMMON_SUCCESS: 1102,\n EVENT_SPSUMMON_SUCCESS_G_P: 1117,\n EVENT_SSET: 1107,\n EVENT_STARTUP: 1000,\n EVENT_SUMMON: 1103,\n EVENT_SUMMON_NEGATED: 1114,\n EVENT_SUMMON_SUCCESS: 1100,\n EVENT_TOSS_COIN: 1151,\n EVENT_TOSS_COIN_NEGATE: 1152,\n EVENT_TOSS_DICE: 1150,\n EVENT_TOSS_DICE_NEGATE: 1153,\n EVENT_TO_DECK: 1013,\n EVENT_TO_GRAVE: 1014,\n EVENT_TO_HAND: 1012,\n EVENT_TURN_END: 1210,\n FLAG_ID_ALLURE_QUEEN: 4,\n FLAG_ID_ARCANA_COIN: 5,\n FLAG_ID_CHAINING: 1,\n FLAG_ID_NO_NORMAL_DRAW: 3,\n FLAG_ID_REVERSAL_OF_FATE: 36690018,\n FLAG_ID_UNION: 2,\n GLOBALFLAG_BRAINWASHING_CHECK: 2,\n GLOBALFLAG_DECK_REVERSE_CHECK: 1,\n GLOBALFLAG_DELAYED_QUICKEFFECT: 8,\n GLOBALFLAG_DETACH_EVENT: 16,\n GLOBALFLAG_MUST_BE_SMATERIAL: 32,\n GLOBALFLAG_SCRAP_CHIMERA: 4,\n GLOBALFLAG_SELF_TOGRAVE: 256,\n GLOBALFLAG_SPSUMMON_COUNT: 64,\n GLOBALFLAG_SPSUMMON_ONCE: 512,\n GLOBALFLAG_TUNE_MAGICIAN: 1024,\n GLOBALFLAG_XMAT_COUNT_LIMIT: 128,\n HINGMSG_LVRANK: 567,\n HINGMSG_NUMBER: 565,\n HINTMSG_ATOHAND: 506,\n HINTMSG_ATTACK: 516,\n HINTMSG_ATTACKTARGET: 549,\n HINTMSG_ATTRIBUTE: 562,\n HINTMSG_CARDTYPE: 554,\n HINTMSG_CODE: 564,\n HINTMSG_COIN: 552,\n HINTMSG_CONFIRM: 526,\n HINTMSG_CONTROL: 520,\n HINTMSG_COUNTER: 572,\n HINTMSG_DEATTACHFROM: 532,\n HINTMSG_DEFENSE: 517,\n HINTMSG_DESREPLACE: 521,\n HINTMSG_DESTROY: 502,\n HINTMSG_DICE: 553,\n HINTMSG_DISABLE: 573,\n HINTMSG_DISABLEZONE: 570,\n HINTMSG_DISCARD: 501,\n HINTMSG_EFFECT: 550,\n HINTMSG_EQUIP: 518,\n HINTMSG_FACEDOWN: 515,\n HINTMSG_FACEDOWNATTACK: 524,\n HINTMSG_FACEDOWNDEFENSE: 525,\n HINTMSG_FACEUP: 514,\n HINTMSG_FACEUPATTACK: 522,\n HINTMSG_FACEUPDEFENSE: 523,\n HINTMSG_FIELD_FIRST: 575,\n HINTMSG_FMATERIAL: 511,\n HINTMSG_LMATERIAL: 533,\n HINTMSG_OPERATECARD: 574,\n HINTMSG_OPPO: 530,\n HINTMSG_OPTION: 555,\n HINTMSG_POSCHANGE: 528,\n HINTMSG_POSITION: 561,\n HINTMSG_RACE: 563,\n HINTMSG_RELEASE: 500,\n HINTMSG_REMOVE: 503,\n HINTMSG_REMOVEXYZ: 519,\n HINTMSG_RESOLVECARD: 568,\n HINTMSG_RESOLVEEFFECT: 556,\n HINTMSG_RTOHAND: 505,\n HINTMSG_SELECT: 560,\n HINTMSG_SELF: 529,\n HINTMSG_SET: 510,\n HINTMSG_SMATERIAL: 512,\n HINTMSG_SPSUMMON: 509,\n HINTMSG_SUMMON: 508,\n HINTMSG_TARGET: 551,\n HINTMSG_TODECK: 507,\n HINTMSG_TOFIELD: 527,\n HINTMSG_TOGRAVE: 504,\n HINTMSG_TOZONE: 571,\n HINTMSG_TRIBUTE: 531,\n HINTMSG_XMATERIAL: 513,\n HINTMSG_ZONE: 569,\n HINT_ATTRIB: 7,\n HINT_CARD: 10,\n HINT_CODE: 8,\n HINT_EFFECT: 5,\n HINT_EVENT: 1,\n HINT_MESSAGE: 2,\n HINT_NUMBER: 9,\n HINT_OPSELECTED: 4,\n HINT_RACE: 6,\n HINT_SELECTMSG: 3,\n HINT_ZONE: 11,\n LINK_MARKER_BOTTOM: 2,\n LINK_MARKER_BOTTOM_LEFT: 1,\n LINK_MARKER_BOTTOM_RIGHT: 4,\n LINK_MARKER_LEFT: 8,\n LINK_MARKER_RIGHT: 32,\n LINK_MARKER_TOP: 128,\n LINK_MARKER_TOP_LEFT: 64,\n LINK_MARKER_TOP_RIGHT: 256,\n LOCATION_DECK: 1,\n LOCATION_DECKBOT: 65537,\n LOCATION_DECKSHF: 131073,\n LOCATION_EXTRA: 64,\n LOCATION_FZONE: 256,\n LOCATION_GRAVE: 16,\n LOCATION_HAND: 2,\n LOCATION_MZONE: 4,\n LOCATION_ONFIELD: 12,\n LOCATION_OVERLAY: 128,\n LOCATION_PZONE: 512,\n LOCATION_REASON_CONTROL: 2,\n LOCATION_REASON_TOFIELD: 1,\n LOCATION_REMOVED: 32,\n LOCATION_SZONE: 8,\n MASTER_RULE3: 3,\n MASTER_RULE_2020: 5,\n MAX_COUNTER: 65535,\n MAX_ID: 268435455,\n MAX_PARAMETER: 65535,\n MAX_XYZ_LEVEL: 4095,\n MIN_ID: 128,\n NEW_MASTER_RULE: 4,\n OPCODE_ADD: 1073741824,\n OPCODE_AND: 1073741828,\n OPCODE_DIV: 1073741827,\n OPCODE_ISATTRIBUTE: 1073742084,\n OPCODE_ISCODE: 1073742080,\n OPCODE_ISRACE: 1073742083,\n OPCODE_ISSETCARD: 1073742081,\n OPCODE_ISTYPE: 1073742082,\n OPCODE_MUL: 1073741826,\n OPCODE_NEG: 1073741830,\n OPCODE_NOT: 1073741831,\n OPCODE_OR: 1073741829,\n OPCODE_SUB: 1073741825,\n PHASE_BATTLE: 128,\n PHASE_BATTLE_START: 8,\n PHASE_BATTLE_STEP: 16,\n PHASE_DAMAGE: 32,\n PHASE_DAMAGE_CAL: 64,\n PHASE_DRAW: 1,\n PHASE_END: 512,\n PHASE_MAIN1: 4,\n PHASE_MAIN2: 256,\n PHASE_STANDBY: 2,\n PLAYER_ALL: 3,\n PLAYER_NONE: 2,\n POS_ATTACK: 3,\n POS_DEFENSE: 12,\n POS_FACEDOWN: 10,\n POS_FACEDOWN_ATTACK: 2,\n POS_FACEDOWN_DEFENSE: 8,\n POS_FACEUP: 5,\n POS_FACEUP_ATTACK: 1,\n POS_FACEUP_DEFENSE: 4,\n RACE_ALL: 67108863,\n RACE_AQUA: 64,\n RACE_BEAST: 16384,\n RACE_BEASTWARRIOR: 32768,\n RACE_CREATORGOD: 4194304,\n RACE_CYBERSE: 16777216,\n RACE_DINOSAUR: 65536,\n RACE_DIVINE: 2097152,\n RACE_DRAGON: 8192,\n RACE_FAIRY: 4,\n RACE_FIEND: 8,\n RACE_FISH: 131072,\n RACE_ILLUSION: 33554432,\n RACE_INSECT: 2048,\n RACE_MACHINE: 32,\n RACE_PLANT: 1024,\n RACE_PSYCHO: 1048576,\n RACE_PYRO: 128,\n RACE_REPTILE: 524288,\n RACE_ROCK: 256,\n RACE_SEASERPENT: 262144,\n RACE_SPELLCASTER: 2,\n RACE_THUNDER: 4096,\n RACE_WARRIOR: 1,\n RACE_WINDBEAST: 512,\n RACE_WYRM: 8388608,\n RACE_ZOMBIE: 16,\n REASON_ACTION: 2147483648,\n REASON_ADJUST: 256,\n REASON_BATTLE: 32,\n REASON_COST: 128,\n REASON_DESTROY: 1,\n REASON_DISCARD: 16384,\n REASON_DISSUMMON: 4096,\n REASON_DRAW: 33554432,\n REASON_EFFECT: 64,\n REASON_FLIP: 8192,\n REASON_FUSION: 262144,\n REASON_LINK: 268435456,\n REASON_LOST_OVERLAY: 536870912,\n REASON_LOST_TARGET: 512,\n REASON_MAINTENANCE: 1073741824,\n REASON_MATERIAL: 8,\n REASON_RDAMAGE: 32768,\n REASON_REDIRECT: 67108864,\n REASON_RELEASE: 2,\n REASON_REPLACE: 16777216,\n REASON_RETURN: 131072,\n REASON_REVEAL: 134217728,\n REASON_RITUAL: 1048576,\n REASON_RRECOVER: 65536,\n REASON_RULE: 1024,\n REASON_SPSUMMON: 2048,\n REASON_SUMMON: 16,\n REASON_SYNCHRO: 524288,\n REASON_TEMPORARY: 4,\n REASON_XYZ: 2097152,\n RESETS_REDIRECT: 209584128,\n RESETS_STANDARD: 33423360,\n RESETS_WITHOUT_TEMP_REMOVE: 91095040,\n RESET_CARD: 8192,\n RESET_CHAIN: 2147483648,\n RESET_CODE: 16384,\n RESET_CONTROL: 33554432,\n RESET_COPY: 32768,\n RESET_DISABLE: 65536,\n RESET_EVENT: 4096,\n RESET_LEAVE: 8388608,\n RESET_MSCHANGE: 134217728,\n RESET_OPPO_TURN: 536870912,\n RESET_OVERLAY: 67108864,\n RESET_PHASE: 1073741824,\n RESET_REMOVE: 524288,\n RESET_SELF_TURN: 268435456,\n RESET_TEMP_REMOVE: 1048576,\n RESET_TODECK: 4194304,\n RESET_TOFIELD: 16777216,\n RESET_TOGRAVE: 262144,\n RESET_TOHAND: 2097152,\n RESET_TURN_SET: 131072,\n SELECT_HEADS: 60,\n SELECT_TAILS: 61,\n SEQ_DECKBOTTOM: 1,\n SEQ_DECKSHUFFLE: 2,\n SEQ_DECKTOP: 0,\n STATUS_ACTIVATE_DISABLED: 262144,\n STATUS_ACT_FROM_HAND: 134217728,\n STATUS_ATTACK_CANCELED: 2097152,\n STATUS_BATTLE_DESTROYED: 16384,\n STATUS_BATTLE_RESULT: 64,\n STATUS_CANNOT_CHANGE_FORM: 256,\n STATUS_CHAINING: 65536,\n STATUS_CONTINUOUS_POS: 33554432,\n STATUS_COPYING_EFFECT: 32768,\n STATUS_DESTROY_CONFIRMED: 4096,\n STATUS_DISABLED: 1,\n STATUS_EFFECT_ENABLED: 1024,\n STATUS_EFFECT_REPLACED: 524288,\n STATUS_FLIP_SUMMONING: 1048576,\n STATUS_FLIP_SUMMON_DISABLED: 2147483648,\n STATUS_FLIP_SUMMON_TURN: 536870912,\n STATUS_FORBIDDEN: 67108864,\n STATUS_INITIALIZING: 4194304,\n STATUS_JUST_POS: 16777216,\n STATUS_LEAVE_CONFIRMED: 8192,\n STATUS_NO_LEVEL: 32,\n STATUS_OPPO_BATTLE: 268435456,\n STATUS_PROC_COMPLETE: 8,\n STATUS_SET_TURN: 16,\n STATUS_SPSUMMON_STEP: 128,\n STATUS_SPSUMMON_TURN: 1073741824,\n STATUS_SUMMONING: 512,\n STATUS_SUMMON_DISABLED: 131072,\n STATUS_SUMMON_TURN: 2048,\n STATUS_TO_DISABLE: 4,\n STATUS_TO_ENABLE: 2,\n STATUS_TO_HAND_WITHOUT_CONFIRM: 8388608,\n SUMMON_INFO_ATTACK: 128,\n SUMMON_INFO_ATTRIBUTE: 32,\n SUMMON_INFO_CODE: 1,\n SUMMON_INFO_CODE2: 2,\n SUMMON_INFO_DEFENSE: 256,\n SUMMON_INFO_LEVEL: 8,\n SUMMON_INFO_RACE: 64,\n SUMMON_INFO_RANK: 16,\n SUMMON_INFO_REASON_EFFECT: 512,\n SUMMON_INFO_REASON_PLAYER: 1024,\n SUMMON_INFO_TYPE: 4,\n SUMMON_TYPE_ADVANCE: 285212672,\n SUMMON_TYPE_DUAL: 301989888,\n SUMMON_TYPE_FLIP: 536870912,\n SUMMON_TYPE_FUSION: 1124073472,\n SUMMON_TYPE_LINK: 1275068416,\n SUMMON_TYPE_NORMAL: 268435456,\n SUMMON_TYPE_PENDULUM: 1241513984,\n SUMMON_TYPE_RITUAL: 1157627904,\n SUMMON_TYPE_SPECIAL: 1073741824,\n SUMMON_TYPE_SYNCHRO: 1174405120,\n SUMMON_TYPE_XYZ: 1224736768,\n SUMMON_VALUE_ASSAULT_MODE: 21,\n SUMMON_VALUE_DARK_FUSION: 1124073494,\n SUMMON_VALUE_DARK_SANCTUARY: 18,\n SUMMON_VALUE_EVOLTILE: 16384,\n SUMMON_VALUE_FOSSIL_FUSION: 1124073495,\n SUMMON_VALUE_FUTURE_FUSION: 1124073496,\n SUMMON_VALUE_GLADIATOR: 8192,\n SUMMON_VALUE_LV: 4096,\n SUMMON_VALUE_MASK_CHANGE: 20,\n SUMMON_VALUE_MONSTER_REBORN: 19,\n SUMMON_VALUE_SELF: 1,\n SUMMON_VALUE_SYNCHRO_MATERIAL: 17,\n TIMINGS_CHECK_MONSTER: 448,\n TIMING_ATTACK: 4096,\n TIMING_BATTLED: 134217728,\n TIMING_BATTLE_END: 16,\n TIMING_BATTLE_PHASE: 16777216,\n TIMING_BATTLE_START: 8,\n TIMING_BATTLE_STEP_END: 67108864,\n TIMING_CHAIN_END: 32768,\n TIMING_DAMAGE: 131072,\n TIMING_DAMAGE_CAL: 16384,\n TIMING_DAMAGE_STEP: 8192,\n TIMING_DESTROY: 524288,\n TIMING_DRAW: 65536,\n TIMING_DRAW_PHASE: 1,\n TIMING_END_PHASE: 32,\n TIMING_EQUIP: 33554432,\n TIMING_FLIPSUMMON: 256,\n TIMING_MAIN_END: 4,\n TIMING_MSET: 512,\n TIMING_POS_CHANGE: 2048,\n TIMING_RECOVER: 262144,\n TIMING_REMOVE: 1048576,\n TIMING_SPSUMMON: 128,\n TIMING_SSET: 1024,\n TIMING_STANDBY_PHASE: 2,\n TIMING_SUMMON: 64,\n TIMING_TODECK: 4194304,\n TIMING_TOGRAVE: 8388608,\n TIMING_TOHAND: 2097152,\n TYPES_EFFECT_TRAP_MONSTER: 289,\n TYPES_NORMAL_TRAP_MONSTER: 273,\n TYPES_TOKEN_MONSTER: 16401,\n TYPE_CONTINUOUS: 131072,\n TYPE_COUNTER: 1048576,\n TYPE_DUAL: 2048,\n TYPE_EFFECT: 32,\n TYPE_EQUIP: 262144,\n TYPE_FIELD: 524288,\n TYPE_FLIP: 2097152,\n TYPE_FUSION: 64,\n TYPE_LINK: 67108864,\n TYPE_MONSTER: 1,\n TYPE_NORMAL: 16,\n TYPE_PENDULUM: 16777216,\n TYPE_QUICKPLAY: 65536,\n TYPE_RITUAL: 128,\n TYPE_SPELL: 2,\n TYPE_SPIRIT: 512,\n TYPE_SPSUMMON: 33554432,\n TYPE_SYNCHRO: 8192,\n TYPE_TOKEN: 16384,\n TYPE_TOON: 4194304,\n TYPE_TRAP: 4,\n TYPE_TRAPMONSTER: 256,\n TYPE_TUNER: 4096,\n TYPE_UNION: 1024,\n TYPE_XYZ: 8388608,\n} as const;\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { OcgcoreScriptConstants } from '../../../vendor/script-constants';\nimport { YGOProMsgBase } from '../base';\nimport { CardQuery } from './card-query';\n\n// MSG_UPDATE_CARD \u7684\u7ED3\u6784\uFF1A\u66F4\u65B0\u5355\u5F20\u5361\u7247\u7684\u4FE1\u606F\nexport class YGOProMsgUpdateCard extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_UPDATE_CARD;\n\n controller: number;\n location: number;\n sequence: number;\n card: CardQuery;\n\n opponentView(): this {\n const copy = this.copy();\n // \u5982\u679C\u5361\u7247\u662F\u76D6\u653E\u7684\uFF0C\u6E05\u9664\u67E5\u8BE2\u6570\u636E\uFF08\u53EA\u4FDD\u7559 flags = QUERY_CODE\uFF0Ccode = 0\uFF09\n if (\n copy.card?.position &&\n copy.card.position & OcgcoreCommonConstants.POS_FACEDOWN\n ) {\n const clearedCard = new CardQuery();\n clearedCard.flags = OcgcoreCommonConstants.QUERY_CODE;\n clearedCard.code = 0;\n clearedCard.empty = false;\n copy.card = clearedCard;\n }\n return copy;\n }\n\n teammateView(): this {\n // TAG \u51B3\u6597\u4E2D\uFF0C\u961F\u53CB\u7684\u89C6\u89D2\u89C4\u5219\uFF1A\n // - \u573A\u4E0A\u5361\u7247 (LOCATION_ONFIELD)\uFF1A\u961F\u53CB\u53EF\u4EE5\u770B\u5230\u5DF1\u65B9\u76D6\u653E\u7684\u5361\u7247\n // - \u5176\u4ED6\u4F4D\u7F6E\uFF1A\u548C\u5BF9\u624B\u89C6\u89D2\u76F8\u540C\uFF08\u6839\u636E tag_duel.cpp RefreshSingle\uFF09\n if (this.location & OcgcoreScriptConstants.LOCATION_ONFIELD) {\n // \u573A\u4E0A\u5361\u7247\uFF0C\u961F\u53CB\u53EF\u4EE5\u770B\u5230\u5B8C\u6574\u6570\u636E\n return this.copy();\n } else {\n // \u975E\u573A\u4E0A\u5361\u7247\uFF0C\u4F7F\u7528\u5BF9\u624B\u89C6\u89D2\n return this.opponentView();\n }\n }\n\n playerView(playerId: number): this {\n // MSG_UPDATE_CARD \u7684\u5B57\u6BB5\u540D\u662F controller\uFF0C\u4E0D\u662F player\n // \u6240\u4EE5\u9700\u8981\u91CD\u5199 playerView \u65B9\u6CD5\n if (this.controller === playerId) {\n return this.copy();\n }\n return this.opponentView();\n }\n\n fromPayload(data: Uint8Array): this {\n if (data.length < 1) {\n throw new Error('MSG data too short');\n }\n const msgType = data[0];\n if (msgType !== this.identifier) {\n throw new Error(\n `MSG type mismatch: expected ${this.identifier}, got ${msgType}`,\n );\n }\n if (data.length < 4) {\n throw new Error('MSG_UPDATE_CARD data too short');\n }\n\n this.controller = data[1];\n this.location = data[2];\n this.sequence = data[3];\n\n // \u89E3\u6790\u67E5\u8BE2\u6570\u636E\uFF0C\u524D 4 \u5B57\u8282\u662F\u957F\u5EA6\n const queryDataWithLength = data.slice(4);\n if (queryDataWithLength.length < 8) {\n throw new Error('Query data too short');\n }\n\n const view = new DataView(\n queryDataWithLength.buffer,\n queryDataWithLength.byteOffset,\n queryDataWithLength.byteLength,\n );\n const length = view.getInt32(0, true);\n\n // \u8DF3\u8FC7\u957F\u5EA6\u5B57\u6BB5\uFF0C\u4ECE flags \u5F00\u59CB\u89E3\u6790\n const cardQueryData = queryDataWithLength.slice(4, length);\n this.card = new CardQuery();\n this.card.fromPayload(cardQueryData);\n\n return this;\n }\n\n toPayload(): Uint8Array {\n const cardPayload = this.card?.toPayload() || new Uint8Array(4); // \u81F3\u5C11\u5305\u542B flags\n const length = 4 + cardPayload.length; // \u957F\u5EA6\u5B57\u6BB5\u672C\u8EAB + \u67E5\u8BE2\u6570\u636E\n\n const result = new Uint8Array(4 + length);\n const view = new DataView(result.buffer);\n\n result[0] = this.identifier;\n result[1] = this.controller;\n result[2] = this.location;\n result[3] = this.sequence;\n\n // \u5199\u5165\u957F\u5EA6\n view.setInt32(4, length, true);\n\n // \u5199\u5165\u67E5\u8BE2\u6570\u636E\n result.set(cardPayload, 8);\n\n return result;\n }\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { OcgcoreScriptConstants } from '../../../vendor/script-constants';\nimport { YGOProMsgBase } from '../base';\nimport { CardQuery } from './card-query';\n\n// MSG_UPDATE_DATA \u7684\u7ED3\u6784\uFF1A\u66F4\u65B0\u67D0\u4E2A\u4F4D\u7F6E\u6240\u6709\u5361\u7247\u7684\u4FE1\u606F\nexport class YGOProMsgUpdateData extends YGOProMsgBase {\n static identifier = 6; // MSG_UPDATE_DATA\n\n player: number;\n location: number;\n cards: CardQuery[];\n\n opponentView(): this {\n const copy = this.copy();\n // \u5BF9\u4E8E\u6BCF\u5F20\u76D6\u653E\u7684\u5361\u7247\uFF0C\u6E05\u9664\u67E5\u8BE2\u6570\u636E\uFF08\u53EA\u4FDD\u7559\u957F\u5EA6\u5B57\u6BB5\uFF0C\u6240\u6709\u6570\u636E\u6E05\u96F6\uFF09\n if (copy.cards) {\n copy.cards = copy.cards.map((card) => {\n if (\n card.position &&\n card.position & OcgcoreCommonConstants.POS_FACEDOWN\n ) {\n // \u76D6\u653E\u7684\u5361\u7247\uFF0C\u6E05\u9664\u6240\u6709\u67E5\u8BE2\u6570\u636E\n const clearedCard = new CardQuery();\n clearedCard.flags = 0;\n clearedCard.empty = true;\n return clearedCard;\n }\n return card;\n });\n }\n return copy;\n }\n\n teammateView(): this {\n // TAG \u51B3\u6597\u4E2D\uFF0C\u961F\u53CB\u7684\u89C6\u89D2\u89C4\u5219\uFF08\u53C2\u8003 tag_duel.cpp\uFF09\uFF1A\n // - MZONE/SZONE\uFF1A\u961F\u53CB\u53EF\u4EE5\u770B\u5230\u5DF1\u65B9\u76D6\u653E\u7684\u5361\u7247\uFF08RefreshMzone/RefreshSzone \u53D1\u7ED9\u540C\u961F\u4E24\u4E2A\u73A9\u5BB6\uFF09\n // - HAND\uFF1A\u961F\u53CB\u4E5F\u770B\u4E0D\u5230\u975E\u516C\u5F00\u7684\u624B\u724C\uFF08RefreshHand \u53EA\u53D1\u7ED9\u5F53\u524D\u64CD\u4F5C\u73A9\u5BB6\u5B8C\u6574\u6570\u636E\uFF09\n // - \u5176\u4ED6\u516C\u5F00\u533A\u57DF\uFF08GRAVE \u7B49\uFF09\uFF1A\u6240\u6709\u4EBA\u90FD\u80FD\u770B\u5230\n\n if (\n this.location === OcgcoreScriptConstants.LOCATION_MZONE ||\n this.location === OcgcoreScriptConstants.LOCATION_SZONE\n ) {\n // \u573A\u4E0A\u533A\u57DF\uFF0C\u961F\u53CB\u53EF\u4EE5\u770B\u5230\u5B8C\u6574\u6570\u636E\uFF08\u5305\u62EC\u76D6\u653E\uFF09\n return this.copy();\n } else if (this.location === OcgcoreScriptConstants.LOCATION_HAND) {\n // \u624B\u724C\u533A\u57DF\uFF0C\u961F\u53CB\u4E5F\u770B\u4E0D\u5230\u975E\u516C\u5F00\u7684\u5361\u7247\n const copy = this.copy();\n if (copy.cards) {\n copy.cards = copy.cards.map((card) => {\n // \u53EA\u6709\u8868\u4FA7\uFF08\u516C\u5F00\uFF09\u7684\u624B\u724C\u624D\u80FD\u88AB\u770B\u5230\n if (\n !card.position ||\n !(card.position & OcgcoreCommonConstants.POS_FACEUP)\n ) {\n const clearedCard = new CardQuery();\n clearedCard.flags = 0;\n clearedCard.empty = true;\n return clearedCard;\n }\n return card;\n });\n }\n return copy;\n } else {\n // \u5176\u4ED6\u533A\u57DF\uFF08\u5893\u5730\u3001\u9664\u5916\u7B49\uFF09\uFF0C\u901A\u5E38\u662F\u516C\u5F00\u7684\n return this.copy();\n }\n }\n\n fromPayload(data: Uint8Array): this {\n if (data.length < 1) {\n throw new Error('MSG data too short');\n }\n const msgType = data[0];\n if (msgType !== this.identifier) {\n throw new Error(\n `MSG type mismatch: expected ${this.identifier}, got ${msgType}`,\n );\n }\n if (data.length < 3) {\n throw new Error('MSG_UPDATE_DATA data too short');\n }\n\n this.player = data[1];\n this.location = data[2];\n\n // \u89E3\u6790\u591A\u4E2A\u5361\u7247\u7684\u67E5\u8BE2\u6570\u636E\n this.cards = [];\n let offset = 3;\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\n while (offset + 4 <= data.length) {\n const chunkLen = view.getInt32(offset, true);\n if (chunkLen <= 0) {\n break;\n }\n\n const end = Math.min(data.length, offset + chunkLen);\n\n if (chunkLen <= 4) {\n // \u7A7A\u5361\u7247\n const card = new CardQuery();\n card.flags = 0;\n card.empty = true;\n this.cards.push(card);\n } else {\n // \u8DF3\u8FC7\u957F\u5EA6\u5B57\u6BB5\uFF0C\u4ECE flags \u5F00\u59CB\u89E3\u6790\n const cardQueryData = data.slice(offset + 4, end);\n const card = new CardQuery();\n card.fromPayload(cardQueryData);\n this.cards.push(card);\n }\n\n offset += chunkLen;\n }\n\n return this;\n }\n\n toPayload(): Uint8Array {\n // \u8BA1\u7B97\u603B\u5927\u5C0F\n let totalSize = 3; // identifier + player + location\n\n const cardPayloads: Uint8Array[] = [];\n for (const card of this.cards || []) {\n const payload = card.toPayload();\n cardPayloads.push(payload);\n totalSize += 4 + payload.length; // \u957F\u5EA6\u5B57\u6BB5 + \u6570\u636E\n }\n\n const result = new Uint8Array(totalSize);\n const view = new DataView(result.buffer);\n let offset = 0;\n\n result[offset++] = this.identifier;\n result[offset++] = this.player;\n result[offset++] = this.location;\n\n // \u5199\u5165\u6BCF\u4E2A\u5361\u7247\u7684\u6570\u636E\n for (const payload of cardPayloads) {\n const length = 4 + payload.length;\n view.setInt32(offset, length, true);\n offset += 4;\n result.set(payload, offset);\n offset += payload.length;\n }\n\n return result;\n }\n}\n", "import { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgWaiting extends YGOProMsgBase {\n static identifier = 3; // MSG_WAITING\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgBase } from '../base';\n\nexport class YGOProMsgWin extends YGOProMsgBase {\n static identifier = OcgcoreCommonConstants.MSG_WIN;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n type: number;\n}\n", "import { RegistryBase } from '../../proto-base/registry-base';\nimport { YGOProMsgBase } from './base';\nimport {\n YGOProMsgAddCounter,\n YGOProMsgAnnounceAttrib,\n YGOProMsgAnnounceCard,\n YGOProMsgAnnounceNumber,\n YGOProMsgAnnounceRace,\n YGOProMsgAttack,\n YGOProMsgAttackDisabled,\n YGOProMsgBattle,\n YGOProMsgBecomeTarget,\n YGOProMsgCancelTarget,\n YGOProMsgCardHint,\n YGOProMsgCardTarget,\n YGOProMsgChainDisabled,\n YGOProMsgChainEnd,\n YGOProMsgChainNegated,\n YGOProMsgChainSolved,\n YGOProMsgChainSolving,\n YGOProMsgChained,\n YGOProMsgChaining,\n YGOProMsgConfirmCards,\n YGOProMsgConfirmDeckTop,\n YGOProMsgConfirmExtraTop,\n YGOProMsgDamage,\n YGOProMsgDamageStepEnd,\n YGOProMsgDamageStepStart,\n YGOProMsgDeckTop,\n YGOProMsgDraw,\n YGOProMsgEquip,\n YGOProMsgFieldDisabled,\n YGOProMsgFlipSummoned,\n YGOProMsgFlipSummoning,\n YGOProMsgHandRes,\n YGOProMsgHint,\n YGOProMsgLpUpdate,\n YGOProMsgMatchKill,\n YGOProMsgMissedEffect,\n YGOProMsgMove,\n YGOProMsgNewPhase,\n YGOProMsgNewTurn,\n YGOProMsgPayLpCost,\n YGOProMsgPlayerHint,\n YGOProMsgPosChange,\n YGOProMsgRandomSelected,\n YGOProMsgRecover,\n YGOProMsgReloadField,\n YGOProMsgRemoveCounter,\n YGOProMsgResetTime,\n YGOProMsgRetry,\n YGOProMsgReverseDeck,\n YGOProMsgRockPaperScissors,\n YGOProMsgSelectBattleCmd,\n YGOProMsgSelectCard,\n YGOProMsgSelectChain,\n YGOProMsgSelectCounter,\n YGOProMsgSelectDisField,\n YGOProMsgSelectEffectYn,\n YGOProMsgSelectIdleCmd,\n YGOProMsgSelectOption,\n YGOProMsgSelectPlace,\n YGOProMsgSelectPosition,\n YGOProMsgSelectSum,\n YGOProMsgSelectTribute,\n YGOProMsgSelectUnselectCard,\n YGOProMsgSelectYesNo,\n YGOProMsgSet,\n YGOProMsgShuffleDeck,\n YGOProMsgShuffleExtra,\n YGOProMsgShuffleHand,\n YGOProMsgShuffleSetCard,\n YGOProMsgSortCard,\n YGOProMsgSpSummoned,\n YGOProMsgSpSummoning,\n YGOProMsgStart,\n YGOProMsgSummoned,\n YGOProMsgSummoning,\n YGOProMsgSwap,\n YGOProMsgSwapGraveDeck,\n YGOProMsgTagSwap,\n YGOProMsgTossCoin,\n YGOProMsgTossDice,\n YGOProMsgUpdateCard,\n YGOProMsgUpdateData,\n YGOProMsgWaiting,\n YGOProMsgWin,\n} from './proto';\n\nexport const YGOProMessages = new RegistryBase(YGOProMsgBase);\n\nYGOProMessages.register(YGOProMsgRetry);\nYGOProMessages.register(YGOProMsgHint);\nYGOProMessages.register(YGOProMsgWin);\nYGOProMessages.register(YGOProMsgSelectBattleCmd);\nYGOProMessages.register(YGOProMsgSelectIdleCmd);\nYGOProMessages.register(YGOProMsgSelectEffectYn);\nYGOProMessages.register(YGOProMsgSelectYesNo);\nYGOProMessages.register(YGOProMsgSelectOption);\nYGOProMessages.register(YGOProMsgSelectCard);\nYGOProMessages.register(YGOProMsgSelectChain);\nYGOProMessages.register(YGOProMsgSelectPlace);\nYGOProMessages.register(YGOProMsgSelectPosition);\nYGOProMessages.register(YGOProMsgSelectTribute);\nYGOProMessages.register(YGOProMsgSelectCounter);\nYGOProMessages.register(YGOProMsgSelectSum);\nYGOProMessages.register(YGOProMsgSelectDisField);\nYGOProMessages.register(YGOProMsgSortCard);\nYGOProMessages.register(YGOProMsgSelectUnselectCard);\nYGOProMessages.register(YGOProMsgConfirmDeckTop);\nYGOProMessages.register(YGOProMsgConfirmCards);\nYGOProMessages.register(YGOProMsgShuffleDeck);\nYGOProMessages.register(YGOProMsgShuffleHand);\nYGOProMessages.register(YGOProMsgSwapGraveDeck);\nYGOProMessages.register(YGOProMsgShuffleExtra);\nYGOProMessages.register(YGOProMsgShuffleSetCard);\nYGOProMessages.register(YGOProMsgReverseDeck);\nYGOProMessages.register(YGOProMsgDeckTop);\nYGOProMessages.register(YGOProMsgNewTurn);\nYGOProMessages.register(YGOProMsgNewPhase);\nYGOProMessages.register(YGOProMsgConfirmExtraTop);\nYGOProMessages.register(YGOProMsgMove);\nYGOProMessages.register(YGOProMsgPosChange);\nYGOProMessages.register(YGOProMsgSet);\nYGOProMessages.register(YGOProMsgSwap);\nYGOProMessages.register(YGOProMsgFieldDisabled);\nYGOProMessages.register(YGOProMsgSummoning);\nYGOProMessages.register(YGOProMsgSummoned);\nYGOProMessages.register(YGOProMsgSpSummoning);\nYGOProMessages.register(YGOProMsgSpSummoned);\nYGOProMessages.register(YGOProMsgFlipSummoning);\nYGOProMessages.register(YGOProMsgFlipSummoned);\nYGOProMessages.register(YGOProMsgChaining);\nYGOProMessages.register(YGOProMsgChained);\nYGOProMessages.register(YGOProMsgChainSolving);\nYGOProMessages.register(YGOProMsgChainSolved);\nYGOProMessages.register(YGOProMsgChainEnd);\nYGOProMessages.register(YGOProMsgChainNegated);\nYGOProMessages.register(YGOProMsgChainDisabled);\nYGOProMessages.register(YGOProMsgRandomSelected);\nYGOProMessages.register(YGOProMsgBecomeTarget);\nYGOProMessages.register(YGOProMsgDraw);\nYGOProMessages.register(YGOProMsgDamage);\nYGOProMessages.register(YGOProMsgRecover);\nYGOProMessages.register(YGOProMsgEquip);\nYGOProMessages.register(YGOProMsgLpUpdate);\nYGOProMessages.register(YGOProMsgCardTarget);\nYGOProMessages.register(YGOProMsgCancelTarget);\nYGOProMessages.register(YGOProMsgPayLpCost);\nYGOProMessages.register(YGOProMsgAddCounter);\nYGOProMessages.register(YGOProMsgRemoveCounter);\nYGOProMessages.register(YGOProMsgAttack);\nYGOProMessages.register(YGOProMsgBattle);\nYGOProMessages.register(YGOProMsgAttackDisabled);\nYGOProMessages.register(YGOProMsgDamageStepStart);\nYGOProMessages.register(YGOProMsgDamageStepEnd);\nYGOProMessages.register(YGOProMsgMissedEffect);\nYGOProMessages.register(YGOProMsgTossCoin);\nYGOProMessages.register(YGOProMsgTossDice);\nYGOProMessages.register(YGOProMsgRockPaperScissors);\nYGOProMessages.register(YGOProMsgHandRes);\nYGOProMessages.register(YGOProMsgAnnounceRace);\nYGOProMessages.register(YGOProMsgAnnounceAttrib);\nYGOProMessages.register(YGOProMsgAnnounceCard);\nYGOProMessages.register(YGOProMsgAnnounceNumber);\nYGOProMessages.register(YGOProMsgCardHint);\nYGOProMessages.register(YGOProMsgTagSwap);\nYGOProMessages.register(YGOProMsgPlayerHint);\nYGOProMessages.register(YGOProMsgMatchKill);\nYGOProMessages.register(YGOProMsgResetTime);\nYGOProMessages.register(YGOProMsgUpdateCard);\nYGOProMessages.register(YGOProMsgWaiting);\nYGOProMessages.register(YGOProMsgStart);\nYGOProMessages.register(YGOProMsgUpdateData);\nYGOProMessages.register(YGOProMsgReloadField);\n", "import { YGOProMessages } from '../../msg/registry';\nimport { YGOProMsgBase } from '../../msg/base';\nimport { YGOProStocBase } from '../base';\n\n// STOC_GAME_MSG: byte array (MSG protocol)\n// Uses YGOProMessages registry to parse MSG protocol\nexport class YGOProStocGameMsg extends YGOProStocBase {\n static identifier = 0x1;\n\n // Parsed MSG protocol message\n msg: YGOProMsgBase | undefined;\n\n fromPayload(data: Uint8Array): this {\n this.msg = YGOProMessages.getInstanceFromPayload(data);\n return this;\n }\n\n toPayload(): Uint8Array {\n if (!this.msg) {\n return new Uint8Array(0);\n }\n return this.msg.toPayload();\n }\n\n fromPartial(data: Partial<this>): this {\n if (data.msg) {\n // Copy the msg object\n this.msg = data.msg.copy();\n }\n return this;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\nexport class YGOProStocErrorMsg extends YGOProStocBase {\n static identifier = 0x2;\n\n @BinaryField('u8', 0)\n msg: number;\n\n // 3 bytes padding\n\n @BinaryField('u32', 4)\n code: number;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_SELECT_HAND has no data (no body)\nexport class YGOProStocSelectHand extends YGOProStocBase {\n static identifier = 0x3;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_SELECT_TP has no data (no body)\nexport class YGOProStocSelectTp extends YGOProStocBase {\n static identifier = 0x4;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\nexport class YGOProStocHandResult extends YGOProStocBase {\n static identifier = 0x5;\n\n @BinaryField('u8', 0)\n res1: number;\n\n @BinaryField('u8', 1)\n res2: number;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_TP_RESULT is reserved (no data)\nexport class YGOProStocTpResult extends YGOProStocBase {\n static identifier = 0x6;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_CHANGE_SIDE has no data (no body)\nexport class YGOProStocChangeSide extends YGOProStocBase {\n static identifier = 0x7;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_WAITING_SIDE has no data (no body)\nexport class YGOProStocWaitingSide extends YGOProStocBase {\n static identifier = 0x8;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\n// STOC_DECK_COUNT: int16_t[6]\nexport class YGOProStocDeckCount extends YGOProStocBase {\n static identifier = 0x9;\n\n @BinaryField('i16', 0, 6)\n counts: number[];\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\n// STOC_CREATE_GAME is reserved\nexport class YGOProStocCreateGame extends YGOProStocBase {\n static identifier = 0x11;\n\n @BinaryField('u32', 0)\n gameid: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { HostInfo } from '../../common';\nimport { YGOProStocBase } from '../base';\n\nexport class YGOProStocJoinGame extends YGOProStocBase {\n static identifier = 0x12;\n\n @BinaryField(() => HostInfo, 0)\n info: HostInfo;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\nexport class YGOProStocTypeChange extends YGOProStocBase {\n static identifier = 0x13;\n\n @BinaryField('u8', 0)\n type: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\n// STOC_LEAVE_GAME is reserved\nexport class YGOProStocLeaveGame extends YGOProStocBase {\n static identifier = 0x14;\n\n @BinaryField('u8', 0)\n pos: number;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_DUEL_START has no data (no body)\nexport class YGOProStocDuelStart extends YGOProStocBase {\n static identifier = 0x15;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_DUEL_END has no data (no body)\nexport class YGOProStocDuelEnd extends YGOProStocBase {\n static identifier = 0x16;\n}\n", "import { YGOProYrp } from 'ygopro-yrp-encode';\nimport { YGOProStocBase } from '../base';\n\n// STOC_REPLAY: ExtendedReplayHeader + byte array\n// Uses ygopro-yrp-encode\nexport class YGOProStocReplay extends YGOProStocBase {\n static identifier = 0x17;\n\n replay: YGOProYrp;\n\n constructor() {\n super();\n this.replay = new YGOProYrp();\n }\n\n fromPayload(data: Uint8Array): this {\n this.replay = new YGOProYrp().fromYrp(data);\n return this;\n }\n\n toPayload(): Uint8Array {\n return this.replay.toYrp();\n }\n\n fromPartial(data: Partial<this>): this {\n if (data.replay) {\n // Pass replay data to constructor\n this.replay = new YGOProYrp(data.replay);\n }\n return this;\n }\n\n copy(): this {\n const copied = new (this.constructor as any)();\n copied.replay = new YGOProYrp(this.replay);\n return copied;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\nexport class YGOProStocTimeLimit extends YGOProStocBase {\n static identifier = 0x18;\n\n @BinaryField('u8', 0)\n player: number;\n\n // 1 byte padding\n\n @BinaryField('u16', 2)\n left_time: number;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_CHAT: uint16_t + uint16_t array\n// uint16_t player_type;\n// uint16_t msg[256]; (UTF-16 string, variable length)\nexport class YGOProStocChat extends YGOProStocBase {\n static identifier = 0x19;\n\n player_type: number;\n msg: string;\n\n constructor() {\n super();\n this.player_type = 0;\n this.msg = '';\n }\n\n fromPayload(data: Uint8Array): this {\n if (data.length < 2) {\n throw new Error('STOC_CHAT data too short');\n }\n\n // Read player_type (2 bytes, little endian)\n this.player_type = data[0] | (data[1] << 8);\n\n // Decode remaining bytes as UTF-16LE\n if (data.length > 2) {\n const decoder = new TextDecoder('utf-16le');\n this.msg = decoder.decode(data.slice(2)).replace(/\\0+$/, ''); // Remove trailing nulls\n } else {\n this.msg = '';\n }\n\n return this;\n }\n\n toPayload(): Uint8Array {\n // Encode message to UTF-16LE\n const encoder = new TextEncoder();\n const utf8 = encoder.encode(this.msg);\n const decoder = new TextDecoder('utf-8');\n const text = decoder.decode(utf8);\n\n // Convert to UTF-16LE manually\n const utf16 = new Uint16Array(text.length + 1); // +1 for null terminator\n for (let i = 0; i < text.length; i++) {\n utf16[i] = text.charCodeAt(i);\n }\n utf16[text.length] = 0; // Null terminator\n\n // Create result buffer: player_type (2 bytes) + UTF-16LE string\n const result = new Uint8Array(2 + utf16.byteLength);\n\n // Write player_type (little endian)\n result[0] = this.player_type & 0xff;\n result[1] = (this.player_type >> 8) & 0xff;\n\n // Write UTF-16LE string\n result.set(new Uint8Array(utf16.buffer), 2);\n\n return result;\n }\n\n fromPartial(data: Partial<this>): this {\n if (data.player_type !== undefined) {\n this.player_type = data.player_type;\n }\n if (data.msg !== undefined) {\n this.msg = data.msg;\n }\n return this;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\nexport class YGOProStocHsPlayerEnter extends YGOProStocBase {\n static identifier = 0x20;\n\n @BinaryField('u16', 0, 20)\n name: number[];\n\n @BinaryField('u8', 40)\n pos: number;\n\n // 1 byte padding (note: actual size is 41 bytes, not 42 - workaround in original code)\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\nexport class YGOProStocHsPlayerChange extends YGOProStocBase {\n static identifier = 0x21;\n\n // pos<<4 | state\n @BinaryField('u8', 0)\n status: number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\nexport class YGOProStocHsWatchChange extends YGOProStocBase {\n static identifier = 0x22;\n\n @BinaryField('u16', 0)\n watch_count: number;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_TEAMMATE_SURRENDER has no data (no body)\nexport class YGOProStocTeammateSurrender extends YGOProStocBase {\n static identifier = 0x23;\n}\n", "import { YGOProStocBase } from '../base';\n\n// STOC_FIELD_FINISH has no data (no body)\nexport class YGOProStocFieldFinish extends YGOProStocBase {\n static identifier = 0x30;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProStocBase } from '../base';\n\n// STOC_SRVPRO_ROOMLIST - SRVPro room list protocol\n// Structure for each room entry\nexport class SrvproRoomInfo {\n @BinaryField('utf8', 0, 64)\n roomname: string;\n\n @BinaryField('u8', 64)\n room_status: number;\n\n @BinaryField('i8', 65)\n room_duel_count: number;\n\n @BinaryField('i8', 66)\n room_turn_count: number;\n\n @BinaryField('utf8', 67, 128)\n player1: string;\n\n @BinaryField('i8', 195)\n player1_score: number;\n\n @BinaryField('i32', 196)\n player1_lp: number;\n\n @BinaryField('utf8', 200, 128)\n player2: string;\n\n @BinaryField('i8', 328)\n player2_score: number;\n\n @BinaryField('i32', 329)\n player2_lp: number;\n}\n\nexport class YGOProStocSrvproRoomlist extends YGOProStocBase {\n static identifier = 0x31;\n\n @BinaryField('u16', 0)\n count: number;\n\n @BinaryField(() => SrvproRoomInfo, 2, (obj) => obj.count)\n rooms: SrvproRoomInfo[];\n}\n", "import { RegistryBase } from '../../proto-base/registry-base';\nimport { YGOProStocBase } from './base';\nimport {\n YGOProStocGameMsg,\n YGOProStocErrorMsg,\n YGOProStocSelectHand,\n YGOProStocSelectTp,\n YGOProStocHandResult,\n YGOProStocTpResult,\n YGOProStocChangeSide,\n YGOProStocWaitingSide,\n YGOProStocDeckCount,\n YGOProStocCreateGame,\n YGOProStocJoinGame,\n YGOProStocTypeChange,\n YGOProStocLeaveGame,\n YGOProStocDuelStart,\n YGOProStocDuelEnd,\n YGOProStocReplay,\n YGOProStocTimeLimit,\n YGOProStocChat,\n YGOProStocHsPlayerEnter,\n YGOProStocHsPlayerChange,\n YGOProStocHsWatchChange,\n YGOProStocTeammateSurrender,\n YGOProStocFieldFinish,\n YGOProStocSrvproRoomlist,\n} from './proto';\n\n// STOC format: [length 2 bytes][identifier 1 byte][body]\n// identifierOffset: 2 (identifier is at byte 2, after the 2-byte length)\n// dataOffset: 3 (body starts at byte 3, after length + identifier)\nexport const YGOProStoc = new RegistryBase(YGOProStocBase, {\n identifierOffset: 2,\n dataOffset: 3,\n});\n\nYGOProStoc.register(YGOProStocGameMsg);\nYGOProStoc.register(YGOProStocErrorMsg);\nYGOProStoc.register(YGOProStocSelectHand);\nYGOProStoc.register(YGOProStocSelectTp);\nYGOProStoc.register(YGOProStocHandResult);\nYGOProStoc.register(YGOProStocTpResult);\nYGOProStoc.register(YGOProStocChangeSide);\nYGOProStoc.register(YGOProStocWaitingSide);\nYGOProStoc.register(YGOProStocDeckCount);\nYGOProStoc.register(YGOProStocCreateGame);\nYGOProStoc.register(YGOProStocJoinGame);\nYGOProStoc.register(YGOProStocTypeChange);\nYGOProStoc.register(YGOProStocLeaveGame);\nYGOProStoc.register(YGOProStocDuelStart);\nYGOProStoc.register(YGOProStocDuelEnd);\nYGOProStoc.register(YGOProStocReplay);\nYGOProStoc.register(YGOProStocTimeLimit);\nYGOProStoc.register(YGOProStocChat);\nYGOProStoc.register(YGOProStocHsPlayerEnter);\nYGOProStoc.register(YGOProStocHsPlayerChange);\nYGOProStoc.register(YGOProStocHsWatchChange);\nYGOProStoc.register(YGOProStocTeammateSurrender);\nYGOProStoc.register(YGOProStocFieldFinish);\nYGOProStoc.register(YGOProStocSrvproRoomlist);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|