Commit 3bfe5d4e authored by Chunchi Che's avatar Chunchi Che

Merge branch 'feat/tribute' into 'main'

Feat/tribute

See merge request mycard/Neos!144
parents fb466b56 9e794fb0
neos-protobuf @ 9711eef5
Subproject commit 3383e74b3f523574a91d4d41fa3a7a3602728cda Subproject commit 9711eef553da455be0d01238dae7f026d8d5650e
...@@ -8618,6 +8618,7 @@ export namespace ygopro { ...@@ -8618,6 +8618,7 @@ export namespace ygopro {
code?: number; code?: number;
location?: CardLocation; location?: CardLocation;
response?: number; response?: number;
release_param?: number;
} }
) { ) {
super(); super();
...@@ -8639,6 +8640,9 @@ export namespace ygopro { ...@@ -8639,6 +8640,9 @@ export namespace ygopro {
if ("response" in data && data.response != undefined) { if ("response" in data && data.response != undefined) {
this.response = data.response; this.response = data.response;
} }
if ("release_param" in data && data.release_param != undefined) {
this.release_param = data.release_param;
}
} }
} }
get code() { get code() {
...@@ -8666,10 +8670,17 @@ export namespace ygopro { ...@@ -8666,10 +8670,17 @@ export namespace ygopro {
set response(value: number) { set response(value: number) {
pb_1.Message.setField(this, 3, value); pb_1.Message.setField(this, 3, value);
} }
get release_param() {
return pb_1.Message.getFieldWithDefault(this, 4, 0) as number;
}
set release_param(value: number) {
pb_1.Message.setField(this, 4, value);
}
static fromObject(data: { static fromObject(data: {
code?: number; code?: number;
location?: ReturnType<typeof CardLocation.prototype.toObject>; location?: ReturnType<typeof CardLocation.prototype.toObject>;
response?: number; response?: number;
release_param?: number;
}): SelectAbleCard { }): SelectAbleCard {
const message = new SelectAbleCard({}); const message = new SelectAbleCard({});
if (data.code != null) { if (data.code != null) {
...@@ -8681,6 +8692,9 @@ export namespace ygopro { ...@@ -8681,6 +8692,9 @@ export namespace ygopro {
if (data.response != null) { if (data.response != null) {
message.response = data.response; message.response = data.response;
} }
if (data.release_param != null) {
message.release_param = data.release_param;
}
return message; return message;
} }
toObject() { toObject() {
...@@ -8688,6 +8702,7 @@ export namespace ygopro { ...@@ -8688,6 +8702,7 @@ export namespace ygopro {
code?: number; code?: number;
location?: ReturnType<typeof CardLocation.prototype.toObject>; location?: ReturnType<typeof CardLocation.prototype.toObject>;
response?: number; response?: number;
release_param?: number;
} = {}; } = {};
if (this.code != null) { if (this.code != null) {
data.code = this.code; data.code = this.code;
...@@ -8698,6 +8713,9 @@ export namespace ygopro { ...@@ -8698,6 +8713,9 @@ export namespace ygopro {
if (this.response != null) { if (this.response != null) {
data.response = this.response; data.response = this.response;
} }
if (this.release_param != null) {
data.release_param = this.release_param;
}
return data; return data;
} }
serialize(): Uint8Array; serialize(): Uint8Array;
...@@ -8710,6 +8728,7 @@ export namespace ygopro { ...@@ -8710,6 +8728,7 @@ export namespace ygopro {
this.location.serialize(writer) this.location.serialize(writer)
); );
if (this.response != 0) writer.writeInt32(3, this.response); if (this.response != 0) writer.writeInt32(3, this.response);
if (this.release_param != 0) writer.writeInt32(4, this.release_param);
if (!w) return writer.getResultBuffer(); if (!w) return writer.getResultBuffer();
} }
static deserialize( static deserialize(
...@@ -8735,6 +8754,9 @@ export namespace ygopro { ...@@ -8735,6 +8754,9 @@ export namespace ygopro {
case 3: case 3:
message.response = reader.readInt32(); message.response = reader.readInt32();
break; break;
case 4:
message.release_param = reader.readInt32();
break;
default: default:
reader.skipField(); reader.skipField();
} }
......
...@@ -37,6 +37,7 @@ export const MSG_SELECT_IDLE_CMD = 11; ...@@ -37,6 +37,7 @@ export const MSG_SELECT_IDLE_CMD = 11;
export const MSG_SELECT_PLACE = 18; export const MSG_SELECT_PLACE = 18;
export const MSG_MOVE = 50; export const MSG_MOVE = 50;
export const MSG_SELECT_CARD = 15; export const MSG_SELECT_CARD = 15;
export const MSG_SELECT_TRIBUTE = 20;
export const MSG_SELECT_CHAIN = 16; export const MSG_SELECT_CHAIN = 16;
export const MSG_SELECT_EFFECTYN = 12; export const MSG_SELECT_EFFECTYN = 12;
export const MSG_SELECT_POSITION = 19; export const MSG_SELECT_POSITION = 19;
......
...@@ -14,6 +14,7 @@ import MsgHintAdapter from "./hint"; ...@@ -14,6 +14,7 @@ import MsgHintAdapter from "./hint";
import MsgSelectIdleCmdAdapter from "./selectIdleCmd"; import MsgSelectIdleCmdAdapter from "./selectIdleCmd";
import MsgSelectPlaceAdapter from "./selectPlace"; import MsgSelectPlaceAdapter from "./selectPlace";
import MsgSelectCardAdapter from "./selectCard"; import MsgSelectCardAdapter from "./selectCard";
import MsgSelectTributeAdapter from "./selectTribute";
import MsgSelectChainAdapter from "./selectChain"; import MsgSelectChainAdapter from "./selectChain";
import MsgSelectEffectYnAdapter from "./selectEffectYn"; import MsgSelectEffectYnAdapter from "./selectEffectYn";
import MsgSelectPositionAdapter from "./selectPosition"; import MsgSelectPositionAdapter from "./selectPosition";
...@@ -90,6 +91,11 @@ export default class GameMsgAdapter implements StocAdapter { ...@@ -90,6 +91,11 @@ export default class GameMsgAdapter implements StocAdapter {
break; break;
} }
case GAME_MSG.MSG_SELECT_TRIBUTE: {
gameMsg.select_card = MsgSelectTributeAdapter(gameData);
break;
}
case GAME_MSG.MSG_SELECT_CHAIN: { case GAME_MSG.MSG_SELECT_CHAIN: {
gameMsg.select_chain = MsgSelectChainAdapter(gameData); gameMsg.select_chain = MsgSelectChainAdapter(gameData);
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReaderExt } from "../../bufferIO";
import MsgSelectCard = ygopro.StocGameMessage.MsgSelectCard;
/*
* Msg Select Tribute
*
* @param - see: https://code.mycard.moe/mycard/neos-protobuf/-/blob/main/idl/ocgcore.neos-protobuf
* @usage - 玩家可选择的祭品
* */
export default (data: Uint8Array) => {
const reader = new BufferReaderExt(data);
const player = reader.inner.readUint8();
const cancelable = reader.inner.readUint8() != 0;
const min = reader.inner.readUint8();
const max = reader.inner.readUint8();
const count = reader.inner.readUint8();
const msg = new MsgSelectCard({ player, cancelable, min, max });
for (let i = 0; i < count; i++) {
const code = reader.inner.readUint32();
const controler = reader.inner.readUint8();
const location = reader.inner.readUint8();
const sequence = reader.inner.readUint8();
const release_param = reader.inner.readUint8();
msg.cards.push(
new MsgSelectCard.SelectAbleCard({
code,
location: new ygopro.CardLocation({
controler,
location,
sequence,
}),
response: i,
release_param,
})
);
}
return msg;
};
...@@ -16,6 +16,8 @@ export default (selectCard: MsgSelectCard, dispatch: AppDispatch) => { ...@@ -16,6 +16,8 @@ export default (selectCard: MsgSelectCard, dispatch: AppDispatch) => {
const max = selectCard.max; const max = selectCard.max;
const cards = selectCard.cards; const cards = selectCard.cards;
// TODO: handle release_param
dispatch(setCheckCardModalMinMax({ min, max })); dispatch(setCheckCardModalMinMax({ min, max }));
dispatch(setCheckCardModalOnSubmit("sendSelectCardResponse")); dispatch(setCheckCardModalOnSubmit("sendSelectCardResponse"));
......
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