Commit 8a9039bf authored by Chunchi Che's avatar Chunchi Che

Merge branch 'feat/service/select_chain_response' into 'main'

Feat/service/select chain response

See merge request mycard/Neos!63
parents f38abf22 3a76038f
neos-protobuf @ 779d9d9c
Subproject commit e34d37c57a4bbbefcd18c790856f19bf947955e7 Subproject commit 779d9d9c18d393df432570d80753a6fd9134c21e
This diff is collapsed.
...@@ -4,6 +4,7 @@ import { CTOS_RESPONSE } from "../../protoDecl"; ...@@ -4,6 +4,7 @@ import { CTOS_RESPONSE } from "../../protoDecl";
import adaptSelectIdleCmdResponse from "./selectIdleCmd"; import adaptSelectIdleCmdResponse from "./selectIdleCmd";
import adaptSelectPlaceResponse from "./selectPlace"; import adaptSelectPlaceResponse from "./selectPlace";
import adaptSelectCardResponse from "./selectCard"; import adaptSelectCardResponse from "./selectCard";
import adaptSelectChainResponse from "./selectChain";
/* /*
* CTOS CTOS_RESPONSE * CTOS CTOS_RESPONSE
...@@ -34,6 +35,11 @@ export default class CtosResponsePacket extends YgoProPacket { ...@@ -34,6 +35,11 @@ export default class CtosResponsePacket extends YgoProPacket {
break; break;
} }
case "select_chain": {
extraData = adaptSelectChainResponse(response.select_chain);
break;
}
default: { default: {
break; break;
} }
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
export default (response: ygopro.CtosGameMsgResponse.SelectChainResponse) => {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
writer.writeUint32(response.selected_ptr);
return array;
};
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "../../bufferIO"; import { BufferReader } from "../../bufferIO";
import MsgSelectChain = ygopro.StocGameMessage.MsgSelectChain; import MsgSelectChain = ygopro.StocGameMessage.MsgSelectChain;
import { numberToChainFlag } from "../../util";
/* /*
* Msg Select Chain * Msg Select Chain
...@@ -37,7 +38,7 @@ export default (data: Uint8Array) => { ...@@ -37,7 +38,7 @@ export default (data: Uint8Array) => {
msg.chains.push( msg.chains.push(
new MsgSelectChain.Chain({ new MsgSelectChain.Chain({
flag, flag: numberToChainFlag(flag),
code, code,
location, location,
effect_description: effect_desc, effect_description: effect_desc,
......
...@@ -191,3 +191,22 @@ export function numberToCardPosition( ...@@ -191,3 +191,22 @@ export function numberToCardPosition(
} }
} }
} }
export function numberToChainFlag(
flag: number
): ygopro.StocGameMessage.MsgSelectChain.ChainFlag | undefined {
switch (flag) {
case 0: {
return ygopro.StocGameMessage.MsgSelectChain.ChainFlag.COMMON;
}
case 1: {
return ygopro.StocGameMessage.MsgSelectChain.ChainFlag.EDESC_OPERATION;
}
case 2: {
return ygopro.StocGameMessage.MsgSelectChain.ChainFlag.EDESC_RESET;
}
default: {
return undefined;
}
}
}
...@@ -163,3 +163,16 @@ export function sendSelectCardResponse(value: number[]) { ...@@ -163,3 +163,16 @@ export function sendSelectCardResponse(value: number[]) {
socketMiddleWare({ cmd: socketCmd.SEND, payload }); socketMiddleWare({ cmd: socketCmd.SEND, payload });
} }
export function sendSelectChainResponse(value: number) {
const response = new ygopro.YgoCtosMsg({
ctos_response: new ygopro.CtosGameMsgResponse({
select_chain: new ygopro.CtosGameMsgResponse.SelectChainResponse({
selected_ptr: value,
}),
}),
});
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