ygopro-msg-encode 1.1.1 → 1.1.2
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/dist/index.cjs +641 -443
- package/dist/index.cjs.map +3 -3
- package/dist/index.mjs +678 -481
- package/dist/index.mjs.map +3 -3
- package/dist/src/protos/common/index.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../index.ts", "../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/
|
|
4
|
-
"sourcesContent": ["export * from './src/binary/binary-meta';\nexport * from './src/binary/fill-binary-fields';\nexport * from './src/protos/common';\nexport * from './src/protos/ctos';\nexport * from './src/protos/stoc';\nexport * from './src/protos/msg';\nexport * from './src/protos/network-enums';\nexport * from './src/vendor/ocgcore-constants';\nexport * from './src/vendor/script-constants';\n", "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 // \u786E\u4FDD\u904D\u5386\u5B8C\u6574\u7684 length\uFF0C\u5982\u679C\u6570\u7EC4\u5143\u7D20\u4E0D\u591F\uFF0C\u5269\u4F59\u90E8\u5206\u4F1A\u4FDD\u6301\u4E3A 0\uFF08zero fill\uFF09\n for (let i = 0; i < length; i++) {\n if (value && i < value.length && value[i]) {\n const itemData = toBinaryFields(value[i], Constructor);\n data.set(itemData, currentOffset);\n currentOffset += itemData.length;\n } else {\n // \u5982\u679C\u5143\u7D20\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u8BE5\u5BF9\u8C61\u7684\u5927\u5C0F\n const emptyInstance = new Constructor();\n const itemData = toBinaryFields(emptyInstance, Constructor);\n currentOffset += itemData.length;\n // \u8FD9\u90E8\u5206\u4F1A\u4FDD\u6301\u4E3A 0\uFF08\u5DF2\u7531 Uint8Array \u521D\u59CB\u5316\uFF09\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 // \u786E\u4FDD\u904D\u5386\u5B8C\u6574\u7684 length\uFF0C\u5982\u679C\u6570\u7EC4\u5143\u7D20\u4E0D\u591F\uFF0C\u5269\u4F59\u90E8\u5206\u4F1A\u4FDD\u6301\u4E3A 0\uFF08zero fill\uFF09\n for (let i = 0; i < length; i++) {\n if (\n value &&\n i < value.length &&\n value[i] !== undefined &&\n value[i] !== null\n ) {\n writeValue(typeStr, offset + i * typeSize, value[i]);\n }\n // \u5982\u679C value \u4E0D\u5B58\u5728\u3001\u7D22\u5F15\u8D85\u51FA\u8303\u56F4\u6216\u503C\u4E3A undefined/null\uFF0C\u5219\u4FDD\u6301\u4E3A 0\uFF08\u5DF2\u7531 Uint8Array \u521D\u59CB\u5316\uFF09\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';\nimport { GameMode } from '../network-enums';\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; // Rule index (0-5), maps to OT values in UI\n\n @BinaryField('u8', 5)\n mode: GameMode;\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';\nimport { HandResult } from '../../network-enums';\n\nexport class YGOProCtosHandResult extends YGOProCtosBase {\n static identifier = 0x3;\n\n @BinaryField('u8', 0)\n res: HandResult;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProCtosBase } from '../base';\nimport { TurnPlayerResult } from '../../network-enums';\n\nexport class YGOProCtosTpResult extends YGOProCtosBase {\n static identifier = 0x4;\n\n @BinaryField('u8', 0)\n res: TurnPlayerResult;\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('utf16', 0, 20)\n name: string;\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('utf16', 20, 20)\n name: string;\n\n @BinaryField('utf16', 60, 20)\n pass: string;\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('utf16', 8, 20)\n pass: string;\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';\nimport { NetPlayerType } from '../../network-enums';\n\nexport class YGOProCtosKick extends YGOProCtosBase {\n static identifier = 0x24;\n\n @BinaryField('u8', 0)\n pos: NetPlayerType;\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 { YGOProMsgBase } from './base';\n\nexport abstract class YGOProMsgResponseBase extends YGOProMsgBase {\n defaultResponse(): Uint8Array | undefined {\n return undefined;\n }\n\n abstract responsePlayer(): number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgAnnounceAttrib extends YGOProMsgResponseBase {\n static identifier = OcgcoreCommonConstants.MSG_ANNOUNCE_ATTRIB;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('u32', 2)\n availableAttributes: number;\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(attributes: number) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, attributes, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgAnnounceCard extends YGOProMsgResponseBase {\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 opcodes: number[];\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(cardCode: number) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, cardCode, true);\n return buffer;\n }\n}\n", "const INDEX_RESPONSE_SYMBOL = Symbol('IndexResponse');\n\nexport interface IndexResponseObject {\n [INDEX_RESPONSE_SYMBOL]: true;\n index: number;\n}\n\nexport const IndexResponse = (index: number): IndexResponseObject => ({\n [INDEX_RESPONSE_SYMBOL]: true,\n index,\n});\n\nexport const isIndexResponse = (obj: any): obj is IndexResponseObject => {\n return obj != null && obj[INDEX_RESPONSE_SYMBOL] === true;\n};\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport class YGOProMsgAnnounceNumber extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(option: IndexResponseObject | number) {\n let index: number;\n\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.numbers.indexOf(option);\n if (index === -1) {\n throw new TypeError(`Number not found: ${option}`);\n }\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, index, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgAnnounceRace extends YGOProMsgResponseBase {\n static identifier = OcgcoreCommonConstants.MSG_ANNOUNCE_RACE;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('u32', 2)\n availableRaces: number;\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(races: number) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, races, true);\n return buffer;\n }\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 { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport enum BattleCmdType {\n ACTIVATE = 0,\n ATTACK = 1,\n TO_M2 = 2,\n TO_EP = 3,\n}\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n type: BattleCmdType,\n option?:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n desc?: number;\n },\n ) {\n let sequence: number;\n\n if (type === BattleCmdType.ACTIVATE) {\n if (option == null) {\n throw new TypeError('Option required for ACTIVATE');\n }\n if (isIndexResponse(option)) {\n sequence = option.index;\n if (sequence < 0 || sequence >= this.activatableCount) {\n throw new TypeError(`Index out of range: ${sequence}`);\n }\n } else {\n const idx = this.activatableCards.findIndex(\n (card) =>\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence) &&\n (option.desc == null || card.desc === option.desc),\n );\n if (idx === -1) {\n throw new TypeError('Activatable card not found');\n }\n sequence = idx;\n }\n } else if (type === BattleCmdType.ATTACK) {\n if (option == null) {\n throw new TypeError('Option required for ATTACK');\n }\n if (isIndexResponse(option)) {\n sequence = option.index;\n if (sequence < 0 || sequence >= this.attackableCount) {\n throw new TypeError(`Index out of range: ${sequence}`);\n }\n } else {\n const idx = this.attackableCards.findIndex(\n (card) =>\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (idx === -1) {\n throw new TypeError('Attackable card not found');\n }\n sequence = idx;\n }\n } else if (type === BattleCmdType.TO_M2) {\n if (this.canM2 === 0) {\n throw new TypeError('Cannot go to M2');\n }\n sequence = 0;\n } else if (type === BattleCmdType.TO_EP) {\n if (this.canEp === 0) {\n throw new TypeError('Cannot go to EP');\n }\n sequence = 0;\n } else {\n throw new TypeError(`Unknown type: ${type}`);\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setUint32(0, (sequence << 16) | type, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n // \u53EA\u6709\u5728\u53EF\u4EE5\u53D6\u6D88\u65F6\u624D\u80FD\u4E0D\u9009\u62E9\n if (this.cancelable === 0) {\n return undefined;\n }\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n cardOptions?: Array<\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n > | null,\n ) {\n if (cardOptions == null) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, -1, true);\n return buffer;\n }\n\n const indices: number[] = [];\n const usedIndices = new Set<number>();\n for (const option of cardOptions) {\n let index: number;\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.cards.findIndex(\n (card, idx) =>\n !usedIndices.has(idx) &&\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n indices.push(index);\n usedIndices.add(index);\n }\n\n const buffer = new Uint8Array(1 + indices.length);\n buffer[0] = indices.length;\n indices.forEach((idx, i) => {\n buffer[1 + i] = idx;\n });\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport class YGOProMsgSelectChain_ChainInfo {\n @BinaryField('u8', 0)\n edesc: number;\n\n @BinaryField('u8', 1)\n forced: number;\n\n @BinaryField('i32', 2)\n code: number;\n\n @BinaryField('u8', 6)\n controller: number;\n\n @BinaryField('u8', 7)\n location: number;\n\n @BinaryField('u8', 8)\n sequence: number;\n\n @BinaryField('u8', 9)\n subsequence: number;\n\n @BinaryField('i32', 10)\n desc: number;\n}\n\nexport class YGOProMsgSelectChain extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n // \u53EA\u6709\u5728\u6CA1\u6709\u5F3A\u5236\u8FDE\u9501\u65F6\u624D\u80FD\u4E0D\u6FC0\u6D3B\n const hasForced = this.chains.some((chain) => chain.forced !== 0);\n if (hasForced) {\n return undefined;\n }\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n option?:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n desc?: number;\n }\n | null,\n ) {\n let index: number;\n\n if (option == null) {\n index = -1;\n } else if (isIndexResponse(option)) {\n index = option.index;\n if (index < -1 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.chains.findIndex(\n (chain) =>\n (option.code == null || chain.code === option.code) &&\n (option.controller == null ||\n chain.controller === option.controller) &&\n (option.location == null || chain.location === option.location) &&\n (option.sequence == null || chain.sequence === option.sequence) &&\n (option.desc == null || chain.desc === option.desc),\n );\n if (index === -1) {\n throw new TypeError('Chain not found');\n }\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, index, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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('u16', 7)\n counterCount: number;\n}\n\nexport class YGOProMsgSelectCounter extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n counterOptions: Array<{\n card:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n };\n count: number;\n }>,\n ) {\n // \u521B\u5EFA\u4E00\u4E2A\u6570\u7EC4\uFF0C\u521D\u59CB\u5316\u4E3A0\n const counterCounts = new Array(this.count).fill(0);\n\n for (const option of counterOptions) {\n let index: number;\n if (isIndexResponse(option.card)) {\n index = option.card.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n const card = option.card as {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n };\n index = this.cards.findIndex(\n (card) =>\n (card.code == null || card.code === card.code) &&\n (card.controller == null || card.controller === card.controller) &&\n (card.location == null || card.location === card.location) &&\n (card.sequence == null || card.sequence === card.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n counterCounts[index] = option.count;\n }\n\n const buffer = new Uint8Array(counterCounts.length * 2);\n const view = new DataView(buffer.buffer);\n counterCounts.forEach((count, i) => {\n view.setUint16(i * 2, count, true);\n });\n return buffer;\n }\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 { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreScriptConstants } from '../../../vendor/script-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport interface SelectablePlace {\n player: number;\n location: number;\n sequence: number;\n}\n\nexport class YGOProMsgSelectPlaceCommon extends YGOProMsgResponseBase {\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 getSelectablePlaces() {\n const places: SelectablePlace[] = [];\n const mask = this.flag >>> 0;\n let pos = 0;\n for (const player of [this.player, 1 - this.player]) {\n for (const location of [\n OcgcoreScriptConstants.LOCATION_MZONE,\n OcgcoreScriptConstants.LOCATION_SZONE,\n ]) {\n for (let sequence = 0; sequence < 8; sequence++) {\n if (!(mask & ((1 << pos) >>> 0))) {\n places.push({ player, location, sequence });\n }\n ++pos;\n }\n }\n }\n return places;\n }\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n places: Array<{ player: number; location: number; sequence: number }>,\n ) {\n const buffer = new Uint8Array(places.length * 3);\n places.forEach((place, i) => {\n if (\n (this.flag >>> 0) &\n ((1 <<\n ((place.player === this.player ? 0 : 16) +\n (place.location === OcgcoreScriptConstants.LOCATION_MZONE ? 0 : 8) +\n place.sequence)) >>>\n 0)\n ) {\n throw new Error('Selected place is not available');\n }\n buffer[i * 3] = place.player;\n buffer[i * 3 + 1] = place.location;\n buffer[i * 3 + 2] = place.sequence;\n });\n return buffer;\n }\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgSelectPlaceCommon } from './select-place-common';\n\nexport class YGOProMsgSelectDisField extends YGOProMsgSelectPlaceCommon {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_DISFIELD;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgSelectEffectYn extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n return this.prepareResponse(false);\n }\n\n prepareResponse(yes: boolean) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, yes ? 1 : 0, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport enum IdleCmdType {\n SUMMON = 0,\n SPSUMMON = 1,\n REPOS = 2,\n MSET = 3,\n SSET = 4,\n ACTIVATE = 5,\n TO_BP = 6,\n TO_EP = 7,\n SHUFFLE = 8,\n}\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 YGOProMsgResponseBase {\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 ssetableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_SimpleCardInfo,\n (obj) =>\n 6 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7,\n (obj) => obj.ssetableCount,\n )\n ssetableCards: YGOProMsgSelectIdleCmd_SimpleCardInfo[];\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.ssetableCount * 7,\n )\n activatableCount: 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.ssetableCount * 7,\n (obj) => obj.activatableCount,\n )\n activatableCards: 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.ssetableCount * 7 +\n obj.activatableCount * 11,\n )\n canBp: number;\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.ssetableCount * 7 +\n obj.activatableCount * 11,\n )\n canEp: number;\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.ssetableCount * 7 +\n obj.activatableCount * 11,\n )\n canShuffle: number;\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n type: IdleCmdType,\n option?:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n desc?: number;\n },\n ) {\n let sequence: number;\n\n if (\n type === IdleCmdType.SUMMON ||\n type === IdleCmdType.SPSUMMON ||\n type === IdleCmdType.REPOS ||\n type === IdleCmdType.MSET ||\n type === IdleCmdType.SSET ||\n type === IdleCmdType.ACTIVATE\n ) {\n if (option == null) {\n throw new TypeError(`Option required for ${IdleCmdType[type]}`);\n }\n\n let cards: any[];\n let maxCount: number;\n let typeName: string;\n\n if (type === IdleCmdType.SUMMON) {\n cards = this.summonableCards;\n maxCount = this.summonableCount;\n typeName = 'Summonable';\n } else if (type === IdleCmdType.SPSUMMON) {\n cards = this.spSummonableCards;\n maxCount = this.spSummonableCount;\n typeName = 'Special summonable';\n } else if (type === IdleCmdType.REPOS) {\n cards = this.reposableCards;\n maxCount = this.reposableCount;\n typeName = 'Repositionable';\n } else if (type === IdleCmdType.MSET) {\n cards = this.msetableCards;\n maxCount = this.msetableCount;\n typeName = 'Monster settable';\n } else if (type === IdleCmdType.SSET) {\n cards = this.ssetableCards;\n maxCount = this.ssetableCount;\n typeName = 'Spell/Trap settable';\n } else {\n // IdleCmdType.ACTIVATE\n cards = this.activatableCards;\n maxCount = this.activatableCount;\n typeName = 'Activatable';\n }\n\n if (isIndexResponse(option)) {\n sequence = option.index;\n if (sequence < 0 || sequence >= maxCount) {\n throw new TypeError(`Index out of range: ${sequence}`);\n }\n } else {\n const idx = cards.findIndex(\n (card) =>\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence) &&\n (option.desc == null || card.desc === option.desc),\n );\n if (idx === -1) {\n throw new TypeError(`${typeName} card not found`);\n }\n sequence = idx;\n }\n } else if (type === IdleCmdType.TO_BP) {\n if (this.canBp === 0) {\n throw new TypeError('Cannot go to BP');\n }\n sequence = 0;\n } else if (type === IdleCmdType.TO_EP) {\n if (this.canEp === 0) {\n throw new TypeError('Cannot go to EP');\n }\n sequence = 0;\n } else if (type === IdleCmdType.SHUFFLE) {\n if (this.canShuffle === 0) {\n throw new TypeError('Cannot shuffle');\n }\n sequence = 0;\n } else {\n throw new TypeError(`Unknown type: ${type}`);\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setUint32(0, (sequence << 16) | type, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport class YGOProMsgSelectOption extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(option: IndexResponseObject | number) {\n let index: number;\n\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.options.indexOf(option);\n if (index === -1) {\n throw new TypeError(`Option not found: ${option}`);\n }\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, index, true);\n return buffer;\n }\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgSelectPlaceCommon } from './select-place-common';\n\nexport class YGOProMsgSelectPlace extends YGOProMsgSelectPlaceCommon {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_PLACE;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgSelectPosition extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(position: number) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, position, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n cardOptions: Array<\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n >,\n ) {\n const indices: number[] = [];\n for (const option of cardOptions) {\n let index: number;\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.cards.findIndex(\n (card) =>\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n indices.push(index);\n }\n\n const buffer = new Uint8Array(1 + indices.length);\n buffer[0] = this.mustSelectCount + indices.length;\n indices.forEach((idx, i) => {\n buffer[1 + i] = idx;\n });\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 releaseParam: number;\n}\n\nexport class YGOProMsgSelectTribute extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n // \u53EA\u6709\u5728\u53EF\u4EE5\u53D6\u6D88\u65F6\u624D\u80FD\u4E0D\u9009\u62E9\n if (this.cancelable === 0) {\n return undefined;\n }\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n cardOptions?: Array<\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n > | null,\n ) {\n if (cardOptions == null) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, -1, true);\n return buffer;\n }\n\n const indices: number[] = [];\n const usedIndices = new Set<number>();\n for (const option of cardOptions) {\n let index: number;\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.cards.findIndex(\n (card, idx) =>\n !usedIndices.has(idx) &&\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n indices.push(index);\n usedIndices.add(index);\n }\n\n const buffer = new Uint8Array(1 + indices.length);\n buffer[0] = indices.length;\n indices.forEach((idx, i) => {\n buffer[1 + i] = idx;\n });\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n // \u53EA\u6709\u5728\u53EF\u4EE5\u53D6\u6D88\u6216\u5B8C\u6210\u65F6\u624D\u80FD\u4E0D\u9009\u62E9\n if (this.cancelable === 0 && this.finishable === 0) {\n return undefined;\n }\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n cardOption?:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n | null,\n ) {\n if (cardOption == null) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, -1, true);\n return buffer;\n }\n\n let index: number;\n if (isIndexResponse(cardOption)) {\n index = cardOption.index;\n const totalCount = this.selectableCount + this.unselectableCount;\n if (index < 0 || index >= totalCount) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n // \u5148\u5728 selectable \u4E2D\u67E5\u627E\n index = this.selectableCards.findIndex(\n (card) =>\n (cardOption.code == null || card.code === cardOption.code) &&\n (cardOption.controller == null ||\n card.controller === cardOption.controller) &&\n (cardOption.location == null ||\n card.location === cardOption.location) &&\n (cardOption.sequence == null ||\n card.sequence === cardOption.sequence),\n );\n // \u5982\u679C\u6CA1\u627E\u5230\uFF0C\u5728 unselectable \u4E2D\u67E5\u627E\n if (index === -1) {\n const unselectIndex = this.unselectableCards.findIndex(\n (card) =>\n (cardOption.code == null || card.code === cardOption.code) &&\n (cardOption.controller == null ||\n card.controller === cardOption.controller) &&\n (cardOption.location == null ||\n card.location === cardOption.location) &&\n (cardOption.sequence == null ||\n card.sequence === cardOption.sequence),\n );\n if (unselectIndex === -1) {\n throw new TypeError('Card not found');\n }\n index = this.selectableCount + unselectIndex;\n }\n }\n\n const buffer = new Uint8Array(2);\n buffer[0] = 1;\n buffer[1] = index;\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgSelectYesNo extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n return this.prepareResponse(false);\n }\n\n prepareResponse(yes: boolean) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, yes ? 1 : 0, true);\n return buffer;\n }\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 { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n sortedOptions?: Array<\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n > | null,\n ) {\n if (sortedOptions == null) {\n return new Uint8Array([0xff]);\n }\n\n const indices: number[] = [];\n const usedIndices = new Set<number>();\n for (const option of sortedOptions) {\n let index: number;\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.cards.findIndex(\n (card, idx) =>\n !usedIndices.has(idx) &&\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n indices.push(index);\n usedIndices.add(index);\n }\n\n const buffer = new Uint8Array(indices.length);\n indices.forEach((idx, i) => {\n buffer[i] = idx;\n });\n return buffer;\n }\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 /**\n * Player type / position (composite field):\n * - Low 4 bits (0x0F): Player number (0=first, 1=second, 2-3 in tag mode)\n * - High 4 bits (0xF0): Observer flag (0x10 = observer)\n *\n * Use `playerNumber` and `observerFlag` getters/setters to access individual components.\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 /**\n * Get/Set player number (low 4 bits, 0-3)\n */\n get playerNumber(): number {\n return this.playerType & 0x0f;\n }\n\n set playerNumber(value: number) {\n this.playerType = (this.playerType & 0xf0) | (value & 0x0f);\n }\n\n /**\n * Get/Set observer flag (high 4 bits, 0x00 or 0x10)\n */\n get observerFlag(): number {\n return this.playerType & 0xf0;\n }\n\n set observerFlag(value: number) {\n this.playerType = (this.playerType & 0x0f) | (value & 0xf0);\n }\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", "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';\nimport { ErrorMessageType } from '../../network-enums';\n\nexport class YGOProStocErrorMsg extends YGOProStocBase {\n static identifier = 0x2;\n\n @BinaryField('u8', 0)\n msg: ErrorMessageType;\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/**\n * Deck count information for a single player\n */\nexport class YGOProStocDeckCount_DeckInfo {\n @BinaryField('i16', 0)\n main: number;\n\n @BinaryField('i16', 2)\n extra: number;\n\n @BinaryField('i16', 4)\n side: number;\n}\n\n/**\n * STOC_DECK_COUNT: int16_t[6]\n *\n * Sent during side deck phase to inform clients of deck counts.\n */\nexport class YGOProStocDeckCount extends YGOProStocBase {\n static identifier = 0x9;\n\n @BinaryField(() => YGOProStocDeckCount_DeckInfo, 0)\n player0DeckCount: YGOProStocDeckCount_DeckInfo;\n\n @BinaryField(() => YGOProStocDeckCount_DeckInfo, 6)\n player1DeckCount: YGOProStocDeckCount_DeckInfo;\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\n/**\n * STOC_TYPE_CHANGE\n *\n * Informs the client of their player type and host status in the room.\n */\nexport class YGOProStocTypeChange extends YGOProStocBase {\n static identifier = 0x13;\n\n /**\n * Composite field:\n * - Low 4 bits (0x0F): Player position (0-7)\n * - High 4 bits (0xF0): Host flag (0x10 = host, 0x00 = not host)\n *\n * Use `playerPosition` and `isHost` getters/setters to access individual components.\n */\n @BinaryField('u8', 0)\n type: number;\n\n /**\n * Get/Set player position (low 4 bits, 0-7)\n */\n get playerPosition(): number {\n return this.type & 0x0f;\n }\n\n set playerPosition(value: number) {\n this.type = (this.type & 0xf0) | (value & 0x0f);\n }\n\n /**\n * Get/Set host flag (high 4 bits)\n * Returns true if this player is the host\n */\n get isHost(): boolean {\n return ((this.type >> 4) & 0x0f) !== 0;\n }\n\n set isHost(value: boolean) {\n if (value) {\n this.type = (this.type & 0x0f) | 0x10;\n } else {\n this.type = this.type & 0x0f;\n }\n }\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; (can be NetPlayerType 0-7 or ChatColor 8-19)\n// uint16_t msg[256]; (UTF-16 string, variable length)\nexport class YGOProStocChat extends YGOProStocBase {\n static identifier = 0x19;\n\n player_type: number; // NetPlayerType (0-7) or ChatColor (8-19)\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('utf16', 0, 20)\n name: string;\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 { PlayerChangeState } from '../../network-enums';\nimport { YGOProStocBase } from '../base';\n\n/**\n * STOC_HS_PLAYER_CHANGE\n *\n * Notifies clients of player state changes in the host screen (pre-game lobby).\n */\nexport class YGOProStocHsPlayerChange extends YGOProStocBase {\n static identifier = 0x21;\n\n /**\n * Composite field: pos<<4 | state\n * - Low 4 bits (0x0F): Player state (PlayerChangeState)\n * - High 4 bits (0xF0): Player position (0-3)\n *\n * Use `playerState` and `playerPosition` getters/setters to access individual components.\n */\n @BinaryField('u8', 0)\n status: number;\n\n /**\n * Get/Set player state (low 4 bits)\n * Can be a PlayerChangeState enum value or a player position (0-7) for position changes\n */\n get playerState(): number {\n return this.status & 0x0f;\n }\n\n set playerState(value: number) {\n this.status = (this.status & 0xf0) | (value & 0x0f);\n }\n\n /**\n * Get/Set player position (high 4 bits, 0-3)\n */\n get playerPosition(): number {\n return (this.status >> 4) & 0x0f;\n }\n\n set playerPosition(value: number) {\n this.status = (this.status & 0x0f) | ((value & 0x0f) << 4);\n }\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';\nimport { RoomStatus } from '../../network-enums';\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: RoomStatus;\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", "/**\n * Network protocol enums\n * These enums are derived from gframe/network.h\n */\n\n/**\n * Hand result (rock-paper-scissors)\n */\nexport enum HandResult {\n ROCK = 1,\n SCISSORS = 2,\n PAPER = 3,\n}\n\n/**\n * Turn player result (first/second)\n */\nexport enum TurnPlayerResult {\n SECOND = 0,\n FIRST = 1,\n}\n\n/**\n * Player type / position\n */\nexport enum NetPlayerType {\n PLAYER1 = 0,\n PLAYER2 = 1,\n PLAYER3 = 2,\n PLAYER4 = 3,\n PLAYER5 = 4,\n PLAYER6 = 5,\n OBSERVER = 7,\n}\n\n/**\n * Chat message colors (used in STOC_Chat.player_type)\n */\nexport enum ChatColor {\n LIGHTBLUE = 8,\n RED = 11,\n GREEN = 12,\n BLUE = 13,\n BABYBLUE = 14,\n PINK = 15,\n YELLOW = 16,\n WHITE = 17,\n GRAY = 18,\n DARKGRAY = 19,\n}\n\n/**\n * Game mode\n */\nexport enum GameMode {\n SINGLE = 0,\n MATCH = 1,\n TAG = 2,\n}\n\n/**\n * Error message type\n */\nexport enum ErrorMessageType {\n JOINERROR = 1,\n DECKERROR = 2,\n SIDEERROR = 3,\n VERERROR = 4,\n}\n\n/**\n * Deck error type (used in high 4 bits of error code)\n */\nexport enum DeckErrorType {\n LFLIST = 1,\n OCGONLY = 2,\n TCGONLY = 3,\n UNKNOWNCARD = 4,\n CARDCOUNT = 5,\n MAINCOUNT = 6,\n EXTRACOUNT = 7,\n SIDECOUNT = 8,\n NOTAVAIL = 9,\n}\n\n/**\n * Player change state\n */\nexport enum PlayerChangeState {\n OBSERVE = 8,\n READY = 9,\n NOTREADY = 10,\n LEAVE = 11,\n}\n\n/**\n * Room status (SRVPro)\n */\nexport enum RoomStatus {\n WAITING = 0,\n DUELING = 1,\n SIDING = 2,\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
3
|
+
"sources": ["../index.ts", "../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/vendor/ocgcore-constants.ts", "../src/protos/common/card-data.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/protos/msg/proto/add-counter.ts", "../src/protos/msg/with-response-base.ts", "../src/protos/msg/proto/announce-attrib.ts", "../src/protos/msg/proto/announce-card.ts", "../src/protos/msg/index-response.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/vendor/script-constants.ts", "../src/protos/msg/proto/select-place-common.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/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", "../src/protos/network-enums.ts"],
|
|
4
|
+
"sourcesContent": ["export * from './src/binary/binary-meta';\nexport * from './src/binary/fill-binary-fields';\nexport * from './src/protos/common';\nexport * from './src/protos/ctos';\nexport * from './src/protos/stoc';\nexport * from './src/protos/msg';\nexport * from './src/protos/network-enums';\nexport * from './src/vendor/ocgcore-constants';\nexport * from './src/vendor/script-constants';\n", "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 // \u786E\u4FDD\u904D\u5386\u5B8C\u6574\u7684 length\uFF0C\u5982\u679C\u6570\u7EC4\u5143\u7D20\u4E0D\u591F\uFF0C\u5269\u4F59\u90E8\u5206\u4F1A\u4FDD\u6301\u4E3A 0\uFF08zero fill\uFF09\n for (let i = 0; i < length; i++) {\n if (value && i < value.length && value[i]) {\n const itemData = toBinaryFields(value[i], Constructor);\n data.set(itemData, currentOffset);\n currentOffset += itemData.length;\n } else {\n // \u5982\u679C\u5143\u7D20\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u8BE5\u5BF9\u8C61\u7684\u5927\u5C0F\n const emptyInstance = new Constructor();\n const itemData = toBinaryFields(emptyInstance, Constructor);\n currentOffset += itemData.length;\n // \u8FD9\u90E8\u5206\u4F1A\u4FDD\u6301\u4E3A 0\uFF08\u5DF2\u7531 Uint8Array \u521D\u59CB\u5316\uFF09\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 // \u786E\u4FDD\u904D\u5386\u5B8C\u6574\u7684 length\uFF0C\u5982\u679C\u6570\u7EC4\u5143\u7D20\u4E0D\u591F\uFF0C\u5269\u4F59\u90E8\u5206\u4F1A\u4FDD\u6301\u4E3A 0\uFF08zero fill\uFF09\n for (let i = 0; i < length; i++) {\n if (\n value &&\n i < value.length &&\n value[i] !== undefined &&\n value[i] !== null\n ) {\n writeValue(typeStr, offset + i * typeSize, value[i]);\n }\n // \u5982\u679C value \u4E0D\u5B58\u5728\u3001\u7D22\u5F15\u8D85\u51FA\u8303\u56F4\u6216\u503C\u4E3A undefined/null\uFF0C\u5219\u4FDD\u6301\u4E3A 0\uFF08\u5DF2\u7531 Uint8Array \u521D\u59CB\u5316\uFF09\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';\nimport { GameMode } from '../network-enums';\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; // Rule index (0-5), maps to OT values in UI\n\n @BinaryField('u8', 5)\n mode: GameMode;\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", "// 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 { PayloadBase } from '../../proto-base/payload-base';\nimport { OcgcoreCommonConstants } from '../../vendor/ocgcore-constants';\n\n// Constants from card_data.h\nconst CARD_ARTWORK_VERSIONS_OFFSET = 20;\nconst CARD_BLACK_LUSTER_SOLDIER2 = 5405695;\n\n// Double name cards\nconst CARD_MARINE_DOLPHIN = 78734254;\nconst CARD_TWINKLE_MOSS = 13857930;\n\n// Helper functions\nfunction checkSetcode(setcode: number, value: number): boolean {\n const settype = value & 0x0fff;\n const setsubtype = value & 0xf000;\n return (\n setcode &&\n (setcode & 0x0fff) === settype &&\n (setcode & setsubtype) === setsubtype\n );\n}\n\nfunction isAlternative(code: number, alias: number): boolean {\n if (code === CARD_BLACK_LUSTER_SOLDIER2) {\n return false;\n }\n return (\n alias &&\n alias < code + CARD_ARTWORK_VERSIONS_OFFSET &&\n code < alias + CARD_ARTWORK_VERSIONS_OFFSET\n );\n}\n\nexport class CardData extends PayloadBase {\n @BinaryField('u32', 0)\n code: number;\n\n @BinaryField('u32', 4)\n alias: number;\n\n @BinaryField('u16', 8, 16)\n setcode: number[];\n\n @BinaryField('u32', 40)\n type: number;\n\n @BinaryField('u32', 44)\n level: number;\n\n @BinaryField('u32', 48)\n attribute: number;\n\n @BinaryField('u32', 52)\n race: number;\n\n @BinaryField('i32', 56)\n attack: number;\n\n @BinaryField('i32', 60)\n defense: number;\n\n @BinaryField('u32', 64)\n lscale: number;\n\n @BinaryField('u32', 68)\n rscale: number;\n\n @BinaryField('u32', 72)\n linkMarker: number;\n\n /**\n * Check if this card belongs to a specific setcode\n * @param value The setcode value to check against\n * @returns true if the card belongs to the setcode\n */\n isSetCard(value: number): boolean {\n for (const x of this.setcode) {\n if (!x) {\n return false;\n }\n if (checkSetcode(x, value)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Get the original code of this card (handles alternate artworks)\n * @returns The original card code\n */\n getOriginalCode(): number {\n return isAlternative(this.code, this.alias) ? this.alias : this.code;\n }\n\n /**\n * Check if this card can be declared with the given opcode filter\n * @param opcode Array of opcodes that define the filter expression\n * @returns true if the card can be declared\n */\n isDeclarable(opcode: number[]): boolean {\n const stack: number[] = [];\n\n for (const it of opcode) {\n switch (it) {\n case OcgcoreCommonConstants.OPCODE_ADD: {\n if (stack.length >= 2) {\n const rhs = stack.pop()!;\n const lhs = stack.pop()!;\n stack.push(lhs + rhs);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_SUB: {\n if (stack.length >= 2) {\n const rhs = stack.pop()!;\n const lhs = stack.pop()!;\n stack.push(lhs - rhs);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_MUL: {\n if (stack.length >= 2) {\n const rhs = stack.pop()!;\n const lhs = stack.pop()!;\n stack.push(lhs * rhs);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_DIV: {\n if (stack.length >= 2) {\n const rhs = stack.pop()!;\n const lhs = stack.pop()!;\n stack.push(Math.floor(lhs / rhs));\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_AND: {\n if (stack.length >= 2) {\n const rhs = stack.pop()!;\n const lhs = stack.pop()!;\n stack.push(lhs && rhs ? 1 : 0);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_OR: {\n if (stack.length >= 2) {\n const rhs = stack.pop()!;\n const lhs = stack.pop()!;\n stack.push(lhs || rhs ? 1 : 0);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_NEG: {\n if (stack.length >= 1) {\n const val = stack.pop()!;\n stack.push(-val);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_NOT: {\n if (stack.length >= 1) {\n const val = stack.pop()!;\n stack.push(!val ? 1 : 0);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_ISCODE: {\n if (stack.length >= 1) {\n const code = stack.pop()!;\n stack.push(this.code === code ? 1 : 0);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_ISSETCARD: {\n if (stack.length >= 1) {\n const setCode = stack.pop()!;\n const res = this.isSetCard(setCode);\n stack.push(res ? 1 : 0);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_ISTYPE: {\n if (stack.length >= 1) {\n const val = stack.pop()!;\n stack.push(this.type & val ? 1 : 0);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_ISRACE: {\n if (stack.length >= 1) {\n const raceVal = stack.pop()!;\n stack.push(this.race & raceVal ? 1 : 0);\n }\n break;\n }\n case OcgcoreCommonConstants.OPCODE_ISATTRIBUTE: {\n if (stack.length >= 1) {\n const attributeVal = stack.pop()!;\n stack.push(this.attribute & attributeVal ? 1 : 0);\n }\n break;\n }\n default: {\n // Push literal value\n stack.push(it);\n break;\n }\n }\n }\n\n if (stack.length !== 1 || stack[0] === 0) {\n return false;\n }\n\n // Additional checks from the original C++ code\n return (\n this.code === CARD_MARINE_DOLPHIN ||\n this.code === CARD_TWINKLE_MOSS ||\n (!this.alias &&\n (this.type &\n (OcgcoreCommonConstants.TYPE_MONSTER |\n OcgcoreCommonConstants.TYPE_TOKEN)) !==\n (OcgcoreCommonConstants.TYPE_MONSTER |\n OcgcoreCommonConstants.TYPE_TOKEN))\n );\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';\nimport { HandResult } from '../../network-enums';\n\nexport class YGOProCtosHandResult extends YGOProCtosBase {\n static identifier = 0x3;\n\n @BinaryField('u8', 0)\n res: HandResult;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { YGOProCtosBase } from '../base';\nimport { TurnPlayerResult } from '../../network-enums';\n\nexport class YGOProCtosTpResult extends YGOProCtosBase {\n static identifier = 0x4;\n\n @BinaryField('u8', 0)\n res: TurnPlayerResult;\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('utf16', 0, 20)\n name: string;\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('utf16', 20, 20)\n name: string;\n\n @BinaryField('utf16', 60, 20)\n pass: string;\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('utf16', 8, 20)\n pass: string;\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';\nimport { NetPlayerType } from '../../network-enums';\n\nexport class YGOProCtosKick extends YGOProCtosBase {\n static identifier = 0x24;\n\n @BinaryField('u8', 0)\n pos: NetPlayerType;\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", "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 { YGOProMsgBase } from './base';\n\nexport abstract class YGOProMsgResponseBase extends YGOProMsgBase {\n defaultResponse(): Uint8Array | undefined {\n return undefined;\n }\n\n abstract responsePlayer(): number;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgAnnounceAttrib extends YGOProMsgResponseBase {\n static identifier = OcgcoreCommonConstants.MSG_ANNOUNCE_ATTRIB;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('u32', 2)\n availableAttributes: number;\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(attributes: number) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, attributes, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgAnnounceCard extends YGOProMsgResponseBase {\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 opcodes: number[];\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(cardCode: number) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, cardCode, true);\n return buffer;\n }\n}\n", "const INDEX_RESPONSE_SYMBOL = Symbol('IndexResponse');\n\nexport interface IndexResponseObject {\n [INDEX_RESPONSE_SYMBOL]: true;\n index: number;\n}\n\nexport const IndexResponse = (index: number): IndexResponseObject => ({\n [INDEX_RESPONSE_SYMBOL]: true,\n index,\n});\n\nexport const isIndexResponse = (obj: any): obj is IndexResponseObject => {\n return obj != null && obj[INDEX_RESPONSE_SYMBOL] === true;\n};\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport class YGOProMsgAnnounceNumber extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(option: IndexResponseObject | number) {\n let index: number;\n\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.numbers.indexOf(option);\n if (index === -1) {\n throw new TypeError(`Number not found: ${option}`);\n }\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, index, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgAnnounceRace extends YGOProMsgResponseBase {\n static identifier = OcgcoreCommonConstants.MSG_ANNOUNCE_RACE;\n\n @BinaryField('u8', 0)\n player: number;\n\n @BinaryField('u8', 1)\n count: number;\n\n @BinaryField('u32', 2)\n availableRaces: number;\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(races: number) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, races, true);\n return buffer;\n }\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 { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport enum BattleCmdType {\n ACTIVATE = 0,\n ATTACK = 1,\n TO_M2 = 2,\n TO_EP = 3,\n}\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n type: BattleCmdType,\n option?:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n desc?: number;\n },\n ) {\n let sequence: number;\n\n if (type === BattleCmdType.ACTIVATE) {\n if (option == null) {\n throw new TypeError('Option required for ACTIVATE');\n }\n if (isIndexResponse(option)) {\n sequence = option.index;\n if (sequence < 0 || sequence >= this.activatableCount) {\n throw new TypeError(`Index out of range: ${sequence}`);\n }\n } else {\n const idx = this.activatableCards.findIndex(\n (card) =>\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence) &&\n (option.desc == null || card.desc === option.desc),\n );\n if (idx === -1) {\n throw new TypeError('Activatable card not found');\n }\n sequence = idx;\n }\n } else if (type === BattleCmdType.ATTACK) {\n if (option == null) {\n throw new TypeError('Option required for ATTACK');\n }\n if (isIndexResponse(option)) {\n sequence = option.index;\n if (sequence < 0 || sequence >= this.attackableCount) {\n throw new TypeError(`Index out of range: ${sequence}`);\n }\n } else {\n const idx = this.attackableCards.findIndex(\n (card) =>\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (idx === -1) {\n throw new TypeError('Attackable card not found');\n }\n sequence = idx;\n }\n } else if (type === BattleCmdType.TO_M2) {\n if (this.canM2 === 0) {\n throw new TypeError('Cannot go to M2');\n }\n sequence = 0;\n } else if (type === BattleCmdType.TO_EP) {\n if (this.canEp === 0) {\n throw new TypeError('Cannot go to EP');\n }\n sequence = 0;\n } else {\n throw new TypeError(`Unknown type: ${type}`);\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setUint32(0, (sequence << 16) | type, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n // \u53EA\u6709\u5728\u53EF\u4EE5\u53D6\u6D88\u65F6\u624D\u80FD\u4E0D\u9009\u62E9\n if (this.cancelable === 0) {\n return undefined;\n }\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n cardOptions?: Array<\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n > | null,\n ) {\n if (cardOptions == null) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, -1, true);\n return buffer;\n }\n\n const indices: number[] = [];\n const usedIndices = new Set<number>();\n for (const option of cardOptions) {\n let index: number;\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.cards.findIndex(\n (card, idx) =>\n !usedIndices.has(idx) &&\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n indices.push(index);\n usedIndices.add(index);\n }\n\n const buffer = new Uint8Array(1 + indices.length);\n buffer[0] = indices.length;\n indices.forEach((idx, i) => {\n buffer[1 + i] = idx;\n });\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport class YGOProMsgSelectChain_ChainInfo {\n @BinaryField('u8', 0)\n edesc: number;\n\n @BinaryField('u8', 1)\n forced: number;\n\n @BinaryField('i32', 2)\n code: number;\n\n @BinaryField('u8', 6)\n controller: number;\n\n @BinaryField('u8', 7)\n location: number;\n\n @BinaryField('u8', 8)\n sequence: number;\n\n @BinaryField('u8', 9)\n subsequence: number;\n\n @BinaryField('i32', 10)\n desc: number;\n}\n\nexport class YGOProMsgSelectChain extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n // \u53EA\u6709\u5728\u6CA1\u6709\u5F3A\u5236\u8FDE\u9501\u65F6\u624D\u80FD\u4E0D\u6FC0\u6D3B\n const hasForced = this.chains.some((chain) => chain.forced !== 0);\n if (hasForced) {\n return undefined;\n }\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n option?:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n desc?: number;\n }\n | null,\n ) {\n let index: number;\n\n if (option == null) {\n index = -1;\n } else if (isIndexResponse(option)) {\n index = option.index;\n if (index < -1 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.chains.findIndex(\n (chain) =>\n (option.code == null || chain.code === option.code) &&\n (option.controller == null ||\n chain.controller === option.controller) &&\n (option.location == null || chain.location === option.location) &&\n (option.sequence == null || chain.sequence === option.sequence) &&\n (option.desc == null || chain.desc === option.desc),\n );\n if (index === -1) {\n throw new TypeError('Chain not found');\n }\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, index, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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('u16', 7)\n counterCount: number;\n}\n\nexport class YGOProMsgSelectCounter extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n counterOptions: Array<{\n card:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n };\n count: number;\n }>,\n ) {\n // \u521B\u5EFA\u4E00\u4E2A\u6570\u7EC4\uFF0C\u521D\u59CB\u5316\u4E3A0\n const counterCounts = new Array(this.count).fill(0);\n\n for (const option of counterOptions) {\n let index: number;\n if (isIndexResponse(option.card)) {\n index = option.card.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n const card = option.card as {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n };\n index = this.cards.findIndex(\n (card) =>\n (card.code == null || card.code === card.code) &&\n (card.controller == null || card.controller === card.controller) &&\n (card.location == null || card.location === card.location) &&\n (card.sequence == null || card.sequence === card.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n counterCounts[index] = option.count;\n }\n\n const buffer = new Uint8Array(counterCounts.length * 2);\n const view = new DataView(buffer.buffer);\n counterCounts.forEach((count, i) => {\n view.setUint16(i * 2, count, true);\n });\n return buffer;\n }\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 { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreScriptConstants } from '../../../vendor/script-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport interface SelectablePlace {\n player: number;\n location: number;\n sequence: number;\n}\n\nexport class YGOProMsgSelectPlaceCommon extends YGOProMsgResponseBase {\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 getSelectablePlaces() {\n const places: SelectablePlace[] = [];\n const mask = this.flag >>> 0;\n let pos = 0;\n for (const player of [this.player, 1 - this.player]) {\n for (const location of [\n OcgcoreScriptConstants.LOCATION_MZONE,\n OcgcoreScriptConstants.LOCATION_SZONE,\n ]) {\n for (let sequence = 0; sequence < 8; sequence++) {\n if (!(mask & ((1 << pos) >>> 0))) {\n places.push({ player, location, sequence });\n }\n ++pos;\n }\n }\n }\n return places;\n }\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n places: Array<{ player: number; location: number; sequence: number }>,\n ) {\n const buffer = new Uint8Array(places.length * 3);\n places.forEach((place, i) => {\n if (\n (this.flag >>> 0) &\n ((1 <<\n ((place.player === this.player ? 0 : 16) +\n (place.location === OcgcoreScriptConstants.LOCATION_MZONE ? 0 : 8) +\n place.sequence)) >>>\n 0)\n ) {\n throw new Error('Selected place is not available');\n }\n buffer[i * 3] = place.player;\n buffer[i * 3 + 1] = place.location;\n buffer[i * 3 + 2] = place.sequence;\n });\n return buffer;\n }\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgSelectPlaceCommon } from './select-place-common';\n\nexport class YGOProMsgSelectDisField extends YGOProMsgSelectPlaceCommon {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_DISFIELD;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgSelectEffectYn extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n return this.prepareResponse(false);\n }\n\n prepareResponse(yes: boolean) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, yes ? 1 : 0, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport enum IdleCmdType {\n SUMMON = 0,\n SPSUMMON = 1,\n REPOS = 2,\n MSET = 3,\n SSET = 4,\n ACTIVATE = 5,\n TO_BP = 6,\n TO_EP = 7,\n SHUFFLE = 8,\n}\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 YGOProMsgResponseBase {\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 ssetableCount: number;\n\n @BinaryField(\n () => YGOProMsgSelectIdleCmd_SimpleCardInfo,\n (obj) =>\n 6 +\n obj.summonableCount * 7 +\n obj.spSummonableCount * 7 +\n obj.reposableCount * 7 +\n obj.msetableCount * 7,\n (obj) => obj.ssetableCount,\n )\n ssetableCards: YGOProMsgSelectIdleCmd_SimpleCardInfo[];\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.ssetableCount * 7,\n )\n activatableCount: 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.ssetableCount * 7,\n (obj) => obj.activatableCount,\n )\n activatableCards: 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.ssetableCount * 7 +\n obj.activatableCount * 11,\n )\n canBp: number;\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.ssetableCount * 7 +\n obj.activatableCount * 11,\n )\n canEp: number;\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.ssetableCount * 7 +\n obj.activatableCount * 11,\n )\n canShuffle: number;\n\n responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n type: IdleCmdType,\n option?:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n desc?: number;\n },\n ) {\n let sequence: number;\n\n if (\n type === IdleCmdType.SUMMON ||\n type === IdleCmdType.SPSUMMON ||\n type === IdleCmdType.REPOS ||\n type === IdleCmdType.MSET ||\n type === IdleCmdType.SSET ||\n type === IdleCmdType.ACTIVATE\n ) {\n if (option == null) {\n throw new TypeError(`Option required for ${IdleCmdType[type]}`);\n }\n\n let cards: any[];\n let maxCount: number;\n let typeName: string;\n\n if (type === IdleCmdType.SUMMON) {\n cards = this.summonableCards;\n maxCount = this.summonableCount;\n typeName = 'Summonable';\n } else if (type === IdleCmdType.SPSUMMON) {\n cards = this.spSummonableCards;\n maxCount = this.spSummonableCount;\n typeName = 'Special summonable';\n } else if (type === IdleCmdType.REPOS) {\n cards = this.reposableCards;\n maxCount = this.reposableCount;\n typeName = 'Repositionable';\n } else if (type === IdleCmdType.MSET) {\n cards = this.msetableCards;\n maxCount = this.msetableCount;\n typeName = 'Monster settable';\n } else if (type === IdleCmdType.SSET) {\n cards = this.ssetableCards;\n maxCount = this.ssetableCount;\n typeName = 'Spell/Trap settable';\n } else {\n // IdleCmdType.ACTIVATE\n cards = this.activatableCards;\n maxCount = this.activatableCount;\n typeName = 'Activatable';\n }\n\n if (isIndexResponse(option)) {\n sequence = option.index;\n if (sequence < 0 || sequence >= maxCount) {\n throw new TypeError(`Index out of range: ${sequence}`);\n }\n } else {\n const idx = cards.findIndex(\n (card) =>\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence) &&\n (option.desc == null || card.desc === option.desc),\n );\n if (idx === -1) {\n throw new TypeError(`${typeName} card not found`);\n }\n sequence = idx;\n }\n } else if (type === IdleCmdType.TO_BP) {\n if (this.canBp === 0) {\n throw new TypeError('Cannot go to BP');\n }\n sequence = 0;\n } else if (type === IdleCmdType.TO_EP) {\n if (this.canEp === 0) {\n throw new TypeError('Cannot go to EP');\n }\n sequence = 0;\n } else if (type === IdleCmdType.SHUFFLE) {\n if (this.canShuffle === 0) {\n throw new TypeError('Cannot shuffle');\n }\n sequence = 0;\n } else {\n throw new TypeError(`Unknown type: ${type}`);\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setUint32(0, (sequence << 16) | type, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\n\nexport class YGOProMsgSelectOption extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(option: IndexResponseObject | number) {\n let index: number;\n\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.options.indexOf(option);\n if (index === -1) {\n throw new TypeError(`Option not found: ${option}`);\n }\n }\n\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, index, true);\n return buffer;\n }\n}\n", "import { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgSelectPlaceCommon } from './select-place-common';\n\nexport class YGOProMsgSelectPlace extends YGOProMsgSelectPlaceCommon {\n static identifier = OcgcoreCommonConstants.MSG_SELECT_PLACE;\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgSelectPosition extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(position: number) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, position, true);\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n prepareResponse(\n cardOptions: Array<\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n >,\n ) {\n const indices: number[] = [];\n for (const option of cardOptions) {\n let index: number;\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.cards.findIndex(\n (card) =>\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n indices.push(index);\n }\n\n const buffer = new Uint8Array(1 + indices.length);\n buffer[0] = this.mustSelectCount + indices.length;\n indices.forEach((idx, i) => {\n buffer[1 + i] = idx;\n });\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 releaseParam: number;\n}\n\nexport class YGOProMsgSelectTribute extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n // \u53EA\u6709\u5728\u53EF\u4EE5\u53D6\u6D88\u65F6\u624D\u80FD\u4E0D\u9009\u62E9\n if (this.cancelable === 0) {\n return undefined;\n }\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n cardOptions?: Array<\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n > | null,\n ) {\n if (cardOptions == null) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, -1, true);\n return buffer;\n }\n\n const indices: number[] = [];\n const usedIndices = new Set<number>();\n for (const option of cardOptions) {\n let index: number;\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.cards.findIndex(\n (card, idx) =>\n !usedIndices.has(idx) &&\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n indices.push(index);\n usedIndices.add(index);\n }\n\n const buffer = new Uint8Array(1 + indices.length);\n buffer[0] = indices.length;\n indices.forEach((idx, i) => {\n buffer[1 + i] = idx;\n });\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n // \u53EA\u6709\u5728\u53EF\u4EE5\u53D6\u6D88\u6216\u5B8C\u6210\u65F6\u624D\u80FD\u4E0D\u9009\u62E9\n if (this.cancelable === 0 && this.finishable === 0) {\n return undefined;\n }\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n cardOption?:\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n | null,\n ) {\n if (cardOption == null) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, -1, true);\n return buffer;\n }\n\n let index: number;\n if (isIndexResponse(cardOption)) {\n index = cardOption.index;\n const totalCount = this.selectableCount + this.unselectableCount;\n if (index < 0 || index >= totalCount) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n // \u5148\u5728 selectable \u4E2D\u67E5\u627E\n index = this.selectableCards.findIndex(\n (card) =>\n (cardOption.code == null || card.code === cardOption.code) &&\n (cardOption.controller == null ||\n card.controller === cardOption.controller) &&\n (cardOption.location == null ||\n card.location === cardOption.location) &&\n (cardOption.sequence == null ||\n card.sequence === cardOption.sequence),\n );\n // \u5982\u679C\u6CA1\u627E\u5230\uFF0C\u5728 unselectable \u4E2D\u67E5\u627E\n if (index === -1) {\n const unselectIndex = this.unselectableCards.findIndex(\n (card) =>\n (cardOption.code == null || card.code === cardOption.code) &&\n (cardOption.controller == null ||\n card.controller === cardOption.controller) &&\n (cardOption.location == null ||\n card.location === cardOption.location) &&\n (cardOption.sequence == null ||\n card.sequence === cardOption.sequence),\n );\n if (unselectIndex === -1) {\n throw new TypeError('Card not found');\n }\n index = this.selectableCount + unselectIndex;\n }\n }\n\n const buffer = new Uint8Array(2);\n buffer[0] = 1;\n buffer[1] = index;\n return buffer;\n }\n}\n", "import { BinaryField } from '../../../binary/binary-meta';\nimport { OcgcoreCommonConstants } from '../../../vendor/ocgcore-constants';\nimport { YGOProMsgResponseBase } from '../with-response-base';\n\nexport class YGOProMsgSelectYesNo extends YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n return this.prepareResponse(false);\n }\n\n prepareResponse(yes: boolean) {\n const buffer = new Uint8Array(4);\n const view = new DataView(buffer.buffer);\n view.setInt32(0, yes ? 1 : 0, true);\n return buffer;\n }\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 { YGOProMsgResponseBase } from '../with-response-base';\nimport {\n IndexResponse,\n IndexResponseObject,\n isIndexResponse,\n} from '../index-response';\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 YGOProMsgResponseBase {\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 responsePlayer() {\n return this.player;\n }\n\n defaultResponse() {\n return this.prepareResponse(null);\n }\n\n prepareResponse(\n sortedOptions?: Array<\n | IndexResponseObject\n | {\n code?: number;\n controller?: number;\n location?: number;\n sequence?: number;\n }\n > | null,\n ) {\n if (sortedOptions == null) {\n return new Uint8Array([0xff]);\n }\n\n const indices: number[] = [];\n const usedIndices = new Set<number>();\n for (const option of sortedOptions) {\n let index: number;\n if (isIndexResponse(option)) {\n index = option.index;\n if (index < 0 || index >= this.count) {\n throw new TypeError(`Index out of range: ${index}`);\n }\n } else {\n index = this.cards.findIndex(\n (card, idx) =>\n !usedIndices.has(idx) &&\n (option.code == null || card.code === option.code) &&\n (option.controller == null ||\n card.controller === option.controller) &&\n (option.location == null || card.location === option.location) &&\n (option.sequence == null || card.sequence === option.sequence),\n );\n if (index === -1) {\n throw new TypeError('Card not found');\n }\n }\n indices.push(index);\n usedIndices.add(index);\n }\n\n const buffer = new Uint8Array(indices.length);\n indices.forEach((idx, i) => {\n buffer[i] = idx;\n });\n return buffer;\n }\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 /**\n * Player type / position (composite field):\n * - Low 4 bits (0x0F): Player number (0=first, 1=second, 2-3 in tag mode)\n * - High 4 bits (0xF0): Observer flag (0x10 = observer)\n *\n * Use `playerNumber` and `observerFlag` getters/setters to access individual components.\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 /**\n * Get/Set player number (low 4 bits, 0-3)\n */\n get playerNumber(): number {\n return this.playerType & 0x0f;\n }\n\n set playerNumber(value: number) {\n this.playerType = (this.playerType & 0xf0) | (value & 0x0f);\n }\n\n /**\n * Get/Set observer flag (high 4 bits, 0x00 or 0x10)\n */\n get observerFlag(): number {\n return this.playerType & 0xf0;\n }\n\n set observerFlag(value: number) {\n this.playerType = (this.playerType & 0x0f) | (value & 0xf0);\n }\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", "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';\nimport { ErrorMessageType } from '../../network-enums';\n\nexport class YGOProStocErrorMsg extends YGOProStocBase {\n static identifier = 0x2;\n\n @BinaryField('u8', 0)\n msg: ErrorMessageType;\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/**\n * Deck count information for a single player\n */\nexport class YGOProStocDeckCount_DeckInfo {\n @BinaryField('i16', 0)\n main: number;\n\n @BinaryField('i16', 2)\n extra: number;\n\n @BinaryField('i16', 4)\n side: number;\n}\n\n/**\n * STOC_DECK_COUNT: int16_t[6]\n *\n * Sent during side deck phase to inform clients of deck counts.\n */\nexport class YGOProStocDeckCount extends YGOProStocBase {\n static identifier = 0x9;\n\n @BinaryField(() => YGOProStocDeckCount_DeckInfo, 0)\n player0DeckCount: YGOProStocDeckCount_DeckInfo;\n\n @BinaryField(() => YGOProStocDeckCount_DeckInfo, 6)\n player1DeckCount: YGOProStocDeckCount_DeckInfo;\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\n/**\n * STOC_TYPE_CHANGE\n *\n * Informs the client of their player type and host status in the room.\n */\nexport class YGOProStocTypeChange extends YGOProStocBase {\n static identifier = 0x13;\n\n /**\n * Composite field:\n * - Low 4 bits (0x0F): Player position (0-7)\n * - High 4 bits (0xF0): Host flag (0x10 = host, 0x00 = not host)\n *\n * Use `playerPosition` and `isHost` getters/setters to access individual components.\n */\n @BinaryField('u8', 0)\n type: number;\n\n /**\n * Get/Set player position (low 4 bits, 0-7)\n */\n get playerPosition(): number {\n return this.type & 0x0f;\n }\n\n set playerPosition(value: number) {\n this.type = (this.type & 0xf0) | (value & 0x0f);\n }\n\n /**\n * Get/Set host flag (high 4 bits)\n * Returns true if this player is the host\n */\n get isHost(): boolean {\n return ((this.type >> 4) & 0x0f) !== 0;\n }\n\n set isHost(value: boolean) {\n if (value) {\n this.type = (this.type & 0x0f) | 0x10;\n } else {\n this.type = this.type & 0x0f;\n }\n }\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; (can be NetPlayerType 0-7 or ChatColor 8-19)\n// uint16_t msg[256]; (UTF-16 string, variable length)\nexport class YGOProStocChat extends YGOProStocBase {\n static identifier = 0x19;\n\n player_type: number; // NetPlayerType (0-7) or ChatColor (8-19)\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('utf16', 0, 20)\n name: string;\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 { PlayerChangeState } from '../../network-enums';\nimport { YGOProStocBase } from '../base';\n\n/**\n * STOC_HS_PLAYER_CHANGE\n *\n * Notifies clients of player state changes in the host screen (pre-game lobby).\n */\nexport class YGOProStocHsPlayerChange extends YGOProStocBase {\n static identifier = 0x21;\n\n /**\n * Composite field: pos<<4 | state\n * - Low 4 bits (0x0F): Player state (PlayerChangeState)\n * - High 4 bits (0xF0): Player position (0-3)\n *\n * Use `playerState` and `playerPosition` getters/setters to access individual components.\n */\n @BinaryField('u8', 0)\n status: number;\n\n /**\n * Get/Set player state (low 4 bits)\n * Can be a PlayerChangeState enum value or a player position (0-7) for position changes\n */\n get playerState(): number {\n return this.status & 0x0f;\n }\n\n set playerState(value: number) {\n this.status = (this.status & 0xf0) | (value & 0x0f);\n }\n\n /**\n * Get/Set player position (high 4 bits, 0-3)\n */\n get playerPosition(): number {\n return (this.status >> 4) & 0x0f;\n }\n\n set playerPosition(value: number) {\n this.status = (this.status & 0x0f) | ((value & 0x0f) << 4);\n }\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';\nimport { RoomStatus } from '../../network-enums';\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: RoomStatus;\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", "/**\n * Network protocol enums\n * These enums are derived from gframe/network.h\n */\n\n/**\n * Hand result (rock-paper-scissors)\n */\nexport enum HandResult {\n ROCK = 1,\n SCISSORS = 2,\n PAPER = 3,\n}\n\n/**\n * Turn player result (first/second)\n */\nexport enum TurnPlayerResult {\n SECOND = 0,\n FIRST = 1,\n}\n\n/**\n * Player type / position\n */\nexport enum NetPlayerType {\n PLAYER1 = 0,\n PLAYER2 = 1,\n PLAYER3 = 2,\n PLAYER4 = 3,\n PLAYER5 = 4,\n PLAYER6 = 5,\n OBSERVER = 7,\n}\n\n/**\n * Chat message colors (used in STOC_Chat.player_type)\n */\nexport enum ChatColor {\n LIGHTBLUE = 8,\n RED = 11,\n GREEN = 12,\n BLUE = 13,\n BABYBLUE = 14,\n PINK = 15,\n YELLOW = 16,\n WHITE = 17,\n GRAY = 18,\n DARKGRAY = 19,\n}\n\n/**\n * Game mode\n */\nexport enum GameMode {\n SINGLE = 0,\n MATCH = 1,\n TAG = 2,\n}\n\n/**\n * Error message type\n */\nexport enum ErrorMessageType {\n JOINERROR = 1,\n DECKERROR = 2,\n SIDEERROR = 3,\n VERERROR = 4,\n}\n\n/**\n * Deck error type (used in high 4 bits of error code)\n */\nexport enum DeckErrorType {\n LFLIST = 1,\n OCGONLY = 2,\n TCGONLY = 3,\n UNKNOWNCARD = 4,\n CARDCOUNT = 5,\n MAINCOUNT = 6,\n EXTRACOUNT = 7,\n SIDECOUNT = 8,\n NOTAVAIL = 9,\n}\n\n/**\n * Player change state\n */\nexport enum PlayerChangeState {\n OBSERVE = 8,\n READY = 9,\n NOTREADY = 10,\n LEAVE = 11,\n}\n\n/**\n * Room status (SRVPro)\n */\nexport enum RoomStatus {\n WAITING = 0,\n DUELING = 1,\n SIDING = 2,\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["YGOProDeck", "BattleCmdType", "buffer", "card", "IdleCmdType", "buffer", "buffer", "HandResult", "TurnPlayerResult", "NetPlayerType", "ChatColor", "GameMode", "ErrorMessageType", "DeckErrorType", "PlayerChangeState", "RoomStatus"]
|
|
7
7
|
}
|