Commit 215e36a2 authored by chechunchi's avatar chechunchi

add select_unselect_card ctos adatper and helper

parent 62d10b5a
Pipeline #19668 passed with stages
in 5 minutes and 14 seconds
...@@ -117,4 +117,9 @@ export class BufferWriter { ...@@ -117,4 +117,9 @@ export class BufferWriter {
this.dataView.setUint32(this.offset, value, this.littleEndian); this.dataView.setUint32(this.offset, value, this.littleEndian);
this.offset += OFFSET_UINT32; this.offset += OFFSET_UINT32;
} }
writeInt32(value: number) {
this.dataView.setInt32(this.offset, value, this.littleEndian);
this.offset += OFFSET_INT32;
}
} }
...@@ -9,6 +9,7 @@ import adaptSelectEffectYnResponse from "./selectEffectYn"; ...@@ -9,6 +9,7 @@ import adaptSelectEffectYnResponse from "./selectEffectYn";
import adaptSelectPositionResponse from "./selectPosition"; import adaptSelectPositionResponse from "./selectPosition";
import adaptSelectOptionResponse from "./selectOption"; import adaptSelectOptionResponse from "./selectOption";
import adaptSelectBattleCmdResponse from "./selectBattleCmd"; import adaptSelectBattleCmdResponse from "./selectBattleCmd";
import adaptSelectUnselectCardResponse from "./selectUnselectCard";
/* /*
* CTOS CTOS_RESPONSE * CTOS CTOS_RESPONSE
...@@ -64,6 +65,13 @@ export default class CtosResponsePacket extends YgoProPacket { ...@@ -64,6 +65,13 @@ export default class CtosResponsePacket extends YgoProPacket {
break; break;
} }
case "select_unselect_card": {
extraData = adaptSelectUnselectCardResponse(
response.select_unselect_card
);
break;
}
default: { default: {
break; break;
} }
......
...@@ -5,7 +5,7 @@ export default (response: ygopro.CtosGameMsgResponse.SelectChainResponse) => { ...@@ -5,7 +5,7 @@ export default (response: ygopro.CtosGameMsgResponse.SelectChainResponse) => {
const array = new Uint8Array(4); const array = new Uint8Array(4);
const writer = new BufferWriter(array, true); const writer = new BufferWriter(array, true);
writer.writeUint32(response.selected_ptr); writer.writeInt32(response.selected_ptr);
return array; return array;
}; };
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
export default (
response: ygopro.CtosGameMsgResponse.SelectUnselectCardResponse
) => {
if (response.cancel_or_finish) {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
writer.writeInt32(-1);
return array;
} else {
const array = new Uint8Array(2);
const writer = new BufferWriter(array, true);
writer.writeUint8(1);
writer.writeUint8(response.selected_ptr);
return array;
}
};
...@@ -230,3 +230,21 @@ export function sendSelectBattleCmdResponse(value: number) { ...@@ -230,3 +230,21 @@ export function sendSelectBattleCmdResponse(value: number) {
socketMiddleWare({ cmd: socketCmd.SEND, payload }); socketMiddleWare({ cmd: socketCmd.SEND, payload });
} }
export function sendSelectUnselectCardResponse(value: {
cancel_or_finish?: boolean;
selected_ptr?: number;
}) {
const response = new ygopro.YgoCtosMsg({
ctos_response: new ygopro.CtosGameMsgResponse({
select_unselect_card:
new ygopro.CtosGameMsgResponse.SelectUnselectCardResponse({
selected_ptr: value.selected_ptr,
cancel_or_finish: value.cancel_or_finish,
}),
}),
});
const payload = new GameMsgResponse(response).serialize();
socketMiddleWare({ cmd: socketCmd.SEND, payload });
}
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