Commit 50a9dc97 authored by chechunchi's avatar chechunchi

add MsgSelectChainAdapter and service

parent e6d01903
......@@ -35,3 +35,4 @@ export const MSG_SELECT_IDLE_CMD = 11;
export const MSG_SELECT_PLACE = 18;
export const MSG_MOVE = 50;
export const MSG_SELECT_CARD = 15;
export const MSG_SELECT_CHAIN = 16;
......@@ -15,6 +15,7 @@ import MsgSelectIdleCmdAdapter from "./selectIdleCmd";
import MsgSelectPlaceAdapter from "./selectPlace";
import MsgMoveAdapter from "./move";
import MsgSelectCardAdapter from "./selectCard";
import MsgSelectChainAdapter from "./selectChain";
/*
* STOC GameMsg
......@@ -85,6 +86,11 @@ export default class GameMsgAdapter implements StocAdapter {
break;
}
case GAME_MSG.MSG_SELECT_CHAIN: {
gameMsg.select_chain = MsgSelectChainAdapter(gameData);
break;
}
default: {
console.log("Unhandled GameMessage function=", func);
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "../../bufferIO";
import MsgSelectChain = ygopro.StocGameMessage.MsgSelectChain;
/*
* Msg Select Chain
*
* @param - see: https://code.mycard.moe/mycard/neos-protobuf/-/blob/main/idl/ocgcore.neos-protobuf
* @usage - 玩家选择连锁
*
* */
export default (data: Uint8Array) => {
const reader = new BufferReader(data, true);
const player = reader.readUint8();
const count = reader.readUint8();
const spCount = reader.readUint8();
const forced = reader.readUint8() == 0;
const hint0 = reader.readUint32();
const hint1 = reader.readUint32();
const msg = new MsgSelectChain({
player,
special_count: spCount,
forced,
hint0,
hint1,
chains: [],
});
for (let i = 0; i < count; i++) {
const flag = reader.readUint8();
const code = reader.readUint32();
const location = reader.readCardLocation();
const effect_desc = reader.readUint32();
msg.chains.push(
new MsgSelectChain.Chain({
flag,
code,
location,
effect_description: effect_desc,
response: i,
})
);
}
return msg;
};
......@@ -9,6 +9,7 @@ import onMsgSelectIdleCmd from "./selectIdleCmd";
import onMsgSelectPlace from "./selectPlace";
import onMsgMove from "./move";
import onMsgSelectCard from "./selectCard";
import onMsgSelectChain from "./selectChain";
export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
const dispatch = store.dispatch;
......@@ -78,6 +79,13 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
break;
}
case "select_chain": {
const selectChain = msg.select_chain;
onMsgSelectChain(selectChain, dispatch);
break;
}
default: {
break;
}
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store";
import MsgSelectChain = ygopro.StocGameMessage.MsgSelectChain;
export default (selectChain: MsgSelectChain, dispatch: AppDispatch) => {
console.log(selectChain);
};
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