Commit 5d2523fa authored by Chunchi Che's avatar Chunchi Che

add CtosGameMsgResponse adapter

parent 4668b5dc
......@@ -63,3 +63,30 @@ export class BufferReader {
return cardInfo;
}
}
export class BufferWriter {
dataView: DataView;
littleEndian: boolean;
offset: number;
constructor(data: Uint8Array, littleEndian: boolean) {
this.dataView = new DataView(data.buffer);
this.littleEndian = littleEndian;
this.offset = 0;
}
writeUint8(value: number) {
this.dataView.setUint8(this.offset, value);
this.offset += OFFSET_UINT8;
}
writeInt8(value: number) {
this.dataView.setInt8(this.offset, value);
this.offset += OFFSET_INT8;
}
writeUint32(value: number) {
this.dataView.setUint32(this.offset, value);
this.offset += OFFSET_UINT32;
}
}
import { ygopro } from "../../../idl/ocgcore";
import { YgoProPacket } from "../../packet";
import { CTOS_RESPONSE } from "../../protoDecl";
import adaptSelectIdleCmdResponse from "./selectIdleCmd";
/*
* CTOS CTOS_RESPONSE
*
* @param response: any - 对于服务端传给端上的`GameMsg`,回传一个`Response`
*
* @usage - 告知服务端玩家对局内的操作选择
*
* */
export default class CtosResponsePacket extends YgoProPacket {
constructor(pb: ygopro.YgoCtosMsg) {
const response = pb.ctos_response;
let extraData = new Uint8Array(0);
switch (response.gameMsgResponse) {
case "select_idle_cmd": {
extraData = adaptSelectIdleCmdResponse(response.select_idle_cmd);
break;
}
default: {
break;
}
}
super(extraData.length + 1, CTOS_RESPONSE, extraData);
}
}
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
export default (response: ygopro.CtosGameMsgResponse.SelectIdleCmdResponse) => {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
writer.writeUint32(response.code);
return array;
};
......@@ -10,6 +10,7 @@ export const CTOS_HS_START = 37;
export const CTOS_HAND_RESULT = 3;
export const CTOS_TP_RESULT = 4;
export const CTOS_TIME_CONFIRM = 21;
export const CTOS_RESPONSE = 1;
export const STOC_JOIN_GAME = 18;
export const STOC_CHAT = 25;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment