Commit 09e86476 authored by Chunchi Che's avatar Chunchi Che

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

Feat/service/time limit confirm

See merge request mycard/Neos!38
parents de6a77e6 e7926dd5
neos-protobuf @ cd2ef52b
Subproject commit e79dc1f25c8daf84c19a367b263cb17f46a1f291 Subproject commit cd2ef52b2642e59cc021b44e9816fd8622b2a8cb
...@@ -12,7 +12,7 @@ export namespace ygopro { ...@@ -12,7 +12,7 @@ export namespace ygopro {
PAPER = 3, PAPER = 3,
} }
export class YgoCtosMsg extends pb_1.Message { export class YgoCtosMsg extends pb_1.Message {
#one_of_decls: number[][] = [[1, 2, 3, 4, 5, 6, 7, 8]]; #one_of_decls: number[][] = [[1, 2, 3, 4, 5, 6, 7, 8, 9]];
constructor( constructor(
data?: data?:
| any[] | any[]
...@@ -26,6 +26,7 @@ export namespace ygopro { ...@@ -26,6 +26,7 @@ export namespace ygopro {
ctos_hs_not_ready?: never; ctos_hs_not_ready?: never;
ctos_hand_result?: never; ctos_hand_result?: never;
ctos_tp_result?: never; ctos_tp_result?: never;
ctos_time_confirm?: never;
} }
| { | {
ctos_player_info?: never; ctos_player_info?: never;
...@@ -36,6 +37,7 @@ export namespace ygopro { ...@@ -36,6 +37,7 @@ export namespace ygopro {
ctos_hs_not_ready?: never; ctos_hs_not_ready?: never;
ctos_hand_result?: never; ctos_hand_result?: never;
ctos_tp_result?: never; ctos_tp_result?: never;
ctos_time_confirm?: never;
} }
| { | {
ctos_player_info?: never; ctos_player_info?: never;
...@@ -46,6 +48,7 @@ export namespace ygopro { ...@@ -46,6 +48,7 @@ export namespace ygopro {
ctos_hs_not_ready?: never; ctos_hs_not_ready?: never;
ctos_hand_result?: never; ctos_hand_result?: never;
ctos_tp_result?: never; ctos_tp_result?: never;
ctos_time_confirm?: never;
} }
| { | {
ctos_player_info?: never; ctos_player_info?: never;
...@@ -56,6 +59,7 @@ export namespace ygopro { ...@@ -56,6 +59,7 @@ export namespace ygopro {
ctos_hs_not_ready?: never; ctos_hs_not_ready?: never;
ctos_hand_result?: never; ctos_hand_result?: never;
ctos_tp_result?: never; ctos_tp_result?: never;
ctos_time_confirm?: never;
} }
| { | {
ctos_player_info?: never; ctos_player_info?: never;
...@@ -66,6 +70,7 @@ export namespace ygopro { ...@@ -66,6 +70,7 @@ export namespace ygopro {
ctos_hs_not_ready?: never; ctos_hs_not_ready?: never;
ctos_hand_result?: never; ctos_hand_result?: never;
ctos_tp_result?: never; ctos_tp_result?: never;
ctos_time_confirm?: never;
} }
| { | {
ctos_player_info?: never; ctos_player_info?: never;
...@@ -76,6 +81,7 @@ export namespace ygopro { ...@@ -76,6 +81,7 @@ export namespace ygopro {
ctos_hs_not_ready?: CtosHsNotReady; ctos_hs_not_ready?: CtosHsNotReady;
ctos_hand_result?: never; ctos_hand_result?: never;
ctos_tp_result?: never; ctos_tp_result?: never;
ctos_time_confirm?: never;
} }
| { | {
ctos_player_info?: never; ctos_player_info?: never;
...@@ -86,6 +92,7 @@ export namespace ygopro { ...@@ -86,6 +92,7 @@ export namespace ygopro {
ctos_hs_not_ready?: never; ctos_hs_not_ready?: never;
ctos_hand_result?: CtosHandResult; ctos_hand_result?: CtosHandResult;
ctos_tp_result?: never; ctos_tp_result?: never;
ctos_time_confirm?: never;
} }
| { | {
ctos_player_info?: never; ctos_player_info?: never;
...@@ -96,6 +103,18 @@ export namespace ygopro { ...@@ -96,6 +103,18 @@ export namespace ygopro {
ctos_hs_not_ready?: never; ctos_hs_not_ready?: never;
ctos_hand_result?: never; ctos_hand_result?: never;
ctos_tp_result?: CtosTpResult; ctos_tp_result?: CtosTpResult;
ctos_time_confirm?: never;
}
| {
ctos_player_info?: never;
ctos_join_game?: never;
ctos_update_deck?: never;
ctos_hs_ready?: never;
ctos_hs_start?: never;
ctos_hs_not_ready?: never;
ctos_hand_result?: never;
ctos_tp_result?: never;
ctos_time_confirm?: CtosTimeConfirm;
} }
)) ))
) { ) {
...@@ -136,6 +155,12 @@ export namespace ygopro { ...@@ -136,6 +155,12 @@ export namespace ygopro {
if ("ctos_tp_result" in data && data.ctos_tp_result != undefined) { if ("ctos_tp_result" in data && data.ctos_tp_result != undefined) {
this.ctos_tp_result = data.ctos_tp_result; this.ctos_tp_result = data.ctos_tp_result;
} }
if (
"ctos_time_confirm" in data &&
data.ctos_time_confirm != undefined
) {
this.ctos_time_confirm = data.ctos_time_confirm;
}
} }
} }
get ctos_player_info() { get ctos_player_info() {
...@@ -234,6 +259,19 @@ export namespace ygopro { ...@@ -234,6 +259,19 @@ export namespace ygopro {
get has_ctos_tp_result() { get has_ctos_tp_result() {
return pb_1.Message.getField(this, 8) != null; return pb_1.Message.getField(this, 8) != null;
} }
get ctos_time_confirm() {
return pb_1.Message.getWrapperField(
this,
CtosTimeConfirm,
9
) as CtosTimeConfirm;
}
set ctos_time_confirm(value: CtosTimeConfirm) {
pb_1.Message.setOneofWrapperField(this, 9, this.#one_of_decls[0], value);
}
get has_ctos_time_confirm() {
return pb_1.Message.getField(this, 9) != null;
}
get msg() { get msg() {
const cases: { const cases: {
[index: number]: [index: number]:
...@@ -245,7 +283,8 @@ export namespace ygopro { ...@@ -245,7 +283,8 @@ export namespace ygopro {
| "ctos_hs_start" | "ctos_hs_start"
| "ctos_hs_not_ready" | "ctos_hs_not_ready"
| "ctos_hand_result" | "ctos_hand_result"
| "ctos_tp_result"; | "ctos_tp_result"
| "ctos_time_confirm";
} = { } = {
0: "none", 0: "none",
1: "ctos_player_info", 1: "ctos_player_info",
...@@ -256,9 +295,10 @@ export namespace ygopro { ...@@ -256,9 +295,10 @@ export namespace ygopro {
6: "ctos_hs_not_ready", 6: "ctos_hs_not_ready",
7: "ctos_hand_result", 7: "ctos_hand_result",
8: "ctos_tp_result", 8: "ctos_tp_result",
9: "ctos_time_confirm",
}; };
return cases[ return cases[
pb_1.Message.computeOneofCase(this, [1, 2, 3, 4, 5, 6, 7, 8]) pb_1.Message.computeOneofCase(this, [1, 2, 3, 4, 5, 6, 7, 8, 9])
]; ];
} }
static fromObject(data: { static fromObject(data: {
...@@ -270,6 +310,7 @@ export namespace ygopro { ...@@ -270,6 +310,7 @@ export namespace ygopro {
ctos_hs_not_ready?: ReturnType<typeof CtosHsNotReady.prototype.toObject>; ctos_hs_not_ready?: ReturnType<typeof CtosHsNotReady.prototype.toObject>;
ctos_hand_result?: ReturnType<typeof CtosHandResult.prototype.toObject>; ctos_hand_result?: ReturnType<typeof CtosHandResult.prototype.toObject>;
ctos_tp_result?: ReturnType<typeof CtosTpResult.prototype.toObject>; ctos_tp_result?: ReturnType<typeof CtosTpResult.prototype.toObject>;
ctos_time_confirm?: ReturnType<typeof CtosTimeConfirm.prototype.toObject>;
}): YgoCtosMsg { }): YgoCtosMsg {
const message = new YgoCtosMsg({}); const message = new YgoCtosMsg({});
if (data.ctos_player_info != null) { if (data.ctos_player_info != null) {
...@@ -304,6 +345,11 @@ export namespace ygopro { ...@@ -304,6 +345,11 @@ export namespace ygopro {
if (data.ctos_tp_result != null) { if (data.ctos_tp_result != null) {
message.ctos_tp_result = CtosTpResult.fromObject(data.ctos_tp_result); message.ctos_tp_result = CtosTpResult.fromObject(data.ctos_tp_result);
} }
if (data.ctos_time_confirm != null) {
message.ctos_time_confirm = CtosTimeConfirm.fromObject(
data.ctos_time_confirm
);
}
return message; return message;
} }
toObject() { toObject() {
...@@ -318,6 +364,9 @@ export namespace ygopro { ...@@ -318,6 +364,9 @@ export namespace ygopro {
>; >;
ctos_hand_result?: ReturnType<typeof CtosHandResult.prototype.toObject>; ctos_hand_result?: ReturnType<typeof CtosHandResult.prototype.toObject>;
ctos_tp_result?: ReturnType<typeof CtosTpResult.prototype.toObject>; ctos_tp_result?: ReturnType<typeof CtosTpResult.prototype.toObject>;
ctos_time_confirm?: ReturnType<
typeof CtosTimeConfirm.prototype.toObject
>;
} = {}; } = {};
if (this.ctos_player_info != null) { if (this.ctos_player_info != null) {
data.ctos_player_info = this.ctos_player_info.toObject(); data.ctos_player_info = this.ctos_player_info.toObject();
...@@ -343,6 +392,9 @@ export namespace ygopro { ...@@ -343,6 +392,9 @@ export namespace ygopro {
if (this.ctos_tp_result != null) { if (this.ctos_tp_result != null) {
data.ctos_tp_result = this.ctos_tp_result.toObject(); data.ctos_tp_result = this.ctos_tp_result.toObject();
} }
if (this.ctos_time_confirm != null) {
data.ctos_time_confirm = this.ctos_time_confirm.toObject();
}
return data; return data;
} }
serialize(): Uint8Array; serialize(): Uint8Array;
...@@ -381,6 +433,10 @@ export namespace ygopro { ...@@ -381,6 +433,10 @@ export namespace ygopro {
writer.writeMessage(8, this.ctos_tp_result, () => writer.writeMessage(8, this.ctos_tp_result, () =>
this.ctos_tp_result.serialize(writer) this.ctos_tp_result.serialize(writer)
); );
if (this.has_ctos_time_confirm)
writer.writeMessage(9, this.ctos_time_confirm, () =>
this.ctos_time_confirm.serialize(writer)
);
if (!w) return writer.getResultBuffer(); if (!w) return writer.getResultBuffer();
} }
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): YgoCtosMsg { static deserialize(bytes: Uint8Array | pb_1.BinaryReader): YgoCtosMsg {
...@@ -444,6 +500,14 @@ export namespace ygopro { ...@@ -444,6 +500,14 @@ export namespace ygopro {
() => (message.ctos_tp_result = CtosTpResult.deserialize(reader)) () => (message.ctos_tp_result = CtosTpResult.deserialize(reader))
); );
break; break;
case 9:
reader.readMessage(
message.ctos_time_confirm,
() =>
(message.ctos_time_confirm =
CtosTimeConfirm.deserialize(reader))
);
break;
default: default:
reader.skipField(); reader.skipField();
} }
...@@ -458,7 +522,7 @@ export namespace ygopro { ...@@ -458,7 +522,7 @@ export namespace ygopro {
} }
} }
export class YgoStocMsg extends pb_1.Message { export class YgoStocMsg extends pb_1.Message {
#one_of_decls: number[][] = [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]; #one_of_decls: number[][] = [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]];
constructor( constructor(
data?: data?:
| any[] | any[]
...@@ -476,6 +540,7 @@ export namespace ygopro { ...@@ -476,6 +540,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -490,6 +555,7 @@ export namespace ygopro { ...@@ -490,6 +555,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -504,6 +570,7 @@ export namespace ygopro { ...@@ -504,6 +570,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -518,6 +585,7 @@ export namespace ygopro { ...@@ -518,6 +585,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -532,6 +600,7 @@ export namespace ygopro { ...@@ -532,6 +600,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -546,6 +615,7 @@ export namespace ygopro { ...@@ -546,6 +615,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -560,6 +630,7 @@ export namespace ygopro { ...@@ -560,6 +630,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -574,6 +645,7 @@ export namespace ygopro { ...@@ -574,6 +645,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -588,6 +660,7 @@ export namespace ygopro { ...@@ -588,6 +660,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -602,6 +675,7 @@ export namespace ygopro { ...@@ -602,6 +675,7 @@ export namespace ygopro {
stoc_deck_count?: StocDeckCount; stoc_deck_count?: StocDeckCount;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -616,6 +690,7 @@ export namespace ygopro { ...@@ -616,6 +690,7 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: StocDuelStart; stoc_duel_start?: StocDuelStart;
stoc_game_msg?: never; stoc_game_msg?: never;
stoc_time_limit?: never;
} }
| { | {
stoc_join_game?: never; stoc_join_game?: never;
...@@ -630,6 +705,22 @@ export namespace ygopro { ...@@ -630,6 +705,22 @@ export namespace ygopro {
stoc_deck_count?: never; stoc_deck_count?: never;
stoc_duel_start?: never; stoc_duel_start?: never;
stoc_game_msg?: StocGameMessage; stoc_game_msg?: StocGameMessage;
stoc_time_limit?: never;
}
| {
stoc_join_game?: never;
stoc_chat?: never;
stoc_hs_player_enter?: never;
stoc_type_change?: never;
stoc_hs_player_change?: never;
stoc_hs_watch_change?: never;
stoc_select_hand?: never;
stoc_hand_result?: never;
stoc_select_tp?: never;
stoc_deck_count?: never;
stoc_duel_start?: never;
stoc_game_msg?: never;
stoc_time_limit?: StocTimeLimit;
} }
)) ))
) { ) {
...@@ -688,6 +779,9 @@ export namespace ygopro { ...@@ -688,6 +779,9 @@ export namespace ygopro {
if ("stoc_game_msg" in data && data.stoc_game_msg != undefined) { if ("stoc_game_msg" in data && data.stoc_game_msg != undefined) {
this.stoc_game_msg = data.stoc_game_msg; this.stoc_game_msg = data.stoc_game_msg;
} }
if ("stoc_time_limit" in data && data.stoc_time_limit != undefined) {
this.stoc_time_limit = data.stoc_time_limit;
}
} }
} }
get stoc_join_game() { get stoc_join_game() {
...@@ -842,6 +936,19 @@ export namespace ygopro { ...@@ -842,6 +936,19 @@ export namespace ygopro {
get has_stoc_game_msg() { get has_stoc_game_msg() {
return pb_1.Message.getField(this, 12) != null; return pb_1.Message.getField(this, 12) != null;
} }
get stoc_time_limit() {
return pb_1.Message.getWrapperField(
this,
StocTimeLimit,
13
) as StocTimeLimit;
}
set stoc_time_limit(value: StocTimeLimit) {
pb_1.Message.setOneofWrapperField(this, 13, this.#one_of_decls[0], value);
}
get has_stoc_time_limit() {
return pb_1.Message.getField(this, 13) != null;
}
get msg() { get msg() {
const cases: { const cases: {
[index: number]: [index: number]:
...@@ -857,7 +964,8 @@ export namespace ygopro { ...@@ -857,7 +964,8 @@ export namespace ygopro {
| "stoc_select_tp" | "stoc_select_tp"
| "stoc_deck_count" | "stoc_deck_count"
| "stoc_duel_start" | "stoc_duel_start"
| "stoc_game_msg"; | "stoc_game_msg"
| "stoc_time_limit";
} = { } = {
0: "none", 0: "none",
1: "stoc_join_game", 1: "stoc_join_game",
...@@ -872,11 +980,12 @@ export namespace ygopro { ...@@ -872,11 +980,12 @@ export namespace ygopro {
10: "stoc_deck_count", 10: "stoc_deck_count",
11: "stoc_duel_start", 11: "stoc_duel_start",
12: "stoc_game_msg", 12: "stoc_game_msg",
13: "stoc_time_limit",
}; };
return cases[ return cases[
pb_1.Message.computeOneofCase( pb_1.Message.computeOneofCase(
this, this,
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
) )
]; ];
} }
...@@ -899,6 +1008,7 @@ export namespace ygopro { ...@@ -899,6 +1008,7 @@ export namespace ygopro {
stoc_deck_count?: ReturnType<typeof StocDeckCount.prototype.toObject>; stoc_deck_count?: ReturnType<typeof StocDeckCount.prototype.toObject>;
stoc_duel_start?: ReturnType<typeof StocDuelStart.prototype.toObject>; stoc_duel_start?: ReturnType<typeof StocDuelStart.prototype.toObject>;
stoc_game_msg?: ReturnType<typeof StocGameMessage.prototype.toObject>; stoc_game_msg?: ReturnType<typeof StocGameMessage.prototype.toObject>;
stoc_time_limit?: ReturnType<typeof StocTimeLimit.prototype.toObject>;
}): YgoStocMsg { }): YgoStocMsg {
const message = new YgoStocMsg({}); const message = new YgoStocMsg({});
if (data.stoc_join_game != null) { if (data.stoc_join_game != null) {
...@@ -953,6 +1063,11 @@ export namespace ygopro { ...@@ -953,6 +1063,11 @@ export namespace ygopro {
if (data.stoc_game_msg != null) { if (data.stoc_game_msg != null) {
message.stoc_game_msg = StocGameMessage.fromObject(data.stoc_game_msg); message.stoc_game_msg = StocGameMessage.fromObject(data.stoc_game_msg);
} }
if (data.stoc_time_limit != null) {
message.stoc_time_limit = StocTimeLimit.fromObject(
data.stoc_time_limit
);
}
return message; return message;
} }
toObject() { toObject() {
...@@ -975,6 +1090,7 @@ export namespace ygopro { ...@@ -975,6 +1090,7 @@ export namespace ygopro {
stoc_deck_count?: ReturnType<typeof StocDeckCount.prototype.toObject>; stoc_deck_count?: ReturnType<typeof StocDeckCount.prototype.toObject>;
stoc_duel_start?: ReturnType<typeof StocDuelStart.prototype.toObject>; stoc_duel_start?: ReturnType<typeof StocDuelStart.prototype.toObject>;
stoc_game_msg?: ReturnType<typeof StocGameMessage.prototype.toObject>; stoc_game_msg?: ReturnType<typeof StocGameMessage.prototype.toObject>;
stoc_time_limit?: ReturnType<typeof StocTimeLimit.prototype.toObject>;
} = {}; } = {};
if (this.stoc_join_game != null) { if (this.stoc_join_game != null) {
data.stoc_join_game = this.stoc_join_game.toObject(); data.stoc_join_game = this.stoc_join_game.toObject();
...@@ -1012,6 +1128,9 @@ export namespace ygopro { ...@@ -1012,6 +1128,9 @@ export namespace ygopro {
if (this.stoc_game_msg != null) { if (this.stoc_game_msg != null) {
data.stoc_game_msg = this.stoc_game_msg.toObject(); data.stoc_game_msg = this.stoc_game_msg.toObject();
} }
if (this.stoc_time_limit != null) {
data.stoc_time_limit = this.stoc_time_limit.toObject();
}
return data; return data;
} }
serialize(): Uint8Array; serialize(): Uint8Array;
...@@ -1066,6 +1185,10 @@ export namespace ygopro { ...@@ -1066,6 +1185,10 @@ export namespace ygopro {
writer.writeMessage(12, this.stoc_game_msg, () => writer.writeMessage(12, this.stoc_game_msg, () =>
this.stoc_game_msg.serialize(writer) this.stoc_game_msg.serialize(writer)
); );
if (this.has_stoc_time_limit)
writer.writeMessage(13, this.stoc_time_limit, () =>
this.stoc_time_limit.serialize(writer)
);
if (!w) return writer.getResultBuffer(); if (!w) return writer.getResultBuffer();
} }
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): YgoStocMsg { static deserialize(bytes: Uint8Array | pb_1.BinaryReader): YgoStocMsg {
...@@ -1161,6 +1284,13 @@ export namespace ygopro { ...@@ -1161,6 +1284,13 @@ export namespace ygopro {
(message.stoc_game_msg = StocGameMessage.deserialize(reader)) (message.stoc_game_msg = StocGameMessage.deserialize(reader))
); );
break; break;
case 13:
reader.readMessage(
message.stoc_time_limit,
() =>
(message.stoc_time_limit = StocTimeLimit.deserialize(reader))
);
break;
default: default:
reader.skipField(); reader.skipField();
} }
...@@ -1824,6 +1954,57 @@ export namespace ygopro { ...@@ -1824,6 +1954,57 @@ export namespace ygopro {
SECOND = 2, SECOND = 2,
} }
} }
export class CtosTimeConfirm extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(data?: any[] | {}) {
super();
pb_1.Message.initialize(
this,
Array.isArray(data) ? data : [],
0,
-1,
[],
this.#one_of_decls
);
if (!Array.isArray(data) && typeof data == "object") {
}
}
static fromObject(data: {}): CtosTimeConfirm {
const message = new CtosTimeConfirm({});
return message;
}
toObject() {
const data: {} = {};
return data;
}
serialize(): Uint8Array;
serialize(w: pb_1.BinaryWriter): void;
serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
const writer = w || new pb_1.BinaryWriter();
if (!w) return writer.getResultBuffer();
}
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): CtosTimeConfirm {
const reader =
bytes instanceof pb_1.BinaryReader
? bytes
: new pb_1.BinaryReader(bytes),
message = new CtosTimeConfirm();
while (reader.nextField()) {
if (reader.isEndGroup()) break;
switch (reader.getFieldNumber()) {
default:
reader.skipField();
}
}
return message;
}
serializeBinary(): Uint8Array {
return this.serialize();
}
static deserializeBinary(bytes: Uint8Array): CtosTimeConfirm {
return CtosTimeConfirm.deserialize(bytes);
}
}
export class StocJoinGame extends pb_1.Message { export class StocJoinGame extends pb_1.Message {
#one_of_decls: number[][] = []; #one_of_decls: number[][] = [];
constructor( constructor(
...@@ -3099,6 +3280,108 @@ export namespace ygopro { ...@@ -3099,6 +3280,108 @@ export namespace ygopro {
return StocDuelStart.deserialize(bytes); return StocDuelStart.deserialize(bytes);
} }
} }
export class StocTimeLimit extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(
data?:
| any[]
| {
player?: number;
left_time?: number;
}
) {
super();
pb_1.Message.initialize(
this,
Array.isArray(data) ? data : [],
0,
-1,
[],
this.#one_of_decls
);
if (!Array.isArray(data) && typeof data == "object") {
if ("player" in data && data.player != undefined) {
this.player = data.player;
}
if ("left_time" in data && data.left_time != undefined) {
this.left_time = data.left_time;
}
}
}
get player() {
return pb_1.Message.getFieldWithDefault(this, 1, 0) as number;
}
set player(value: number) {
pb_1.Message.setField(this, 1, value);
}
get left_time() {
return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
}
set left_time(value: number) {
pb_1.Message.setField(this, 2, value);
}
static fromObject(data: {
player?: number;
left_time?: number;
}): StocTimeLimit {
const message = new StocTimeLimit({});
if (data.player != null) {
message.player = data.player;
}
if (data.left_time != null) {
message.left_time = data.left_time;
}
return message;
}
toObject() {
const data: {
player?: number;
left_time?: number;
} = {};
if (this.player != null) {
data.player = this.player;
}
if (this.left_time != null) {
data.left_time = this.left_time;
}
return data;
}
serialize(): Uint8Array;
serialize(w: pb_1.BinaryWriter): void;
serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
const writer = w || new pb_1.BinaryWriter();
if (this.player != 0) writer.writeInt32(1, this.player);
if (this.left_time != 0) writer.writeInt32(2, this.left_time);
if (!w) return writer.getResultBuffer();
}
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StocTimeLimit {
const reader =
bytes instanceof pb_1.BinaryReader
? bytes
: new pb_1.BinaryReader(bytes),
message = new StocTimeLimit();
while (reader.nextField()) {
if (reader.isEndGroup()) break;
switch (reader.getFieldNumber()) {
case 1:
message.player = reader.readInt32();
break;
case 2:
message.left_time = reader.readInt32();
break;
default:
reader.skipField();
}
}
return message;
}
serializeBinary(): Uint8Array {
return this.serialize();
}
static deserializeBinary(bytes: Uint8Array): StocTimeLimit {
return StocTimeLimit.deserialize(bytes);
}
}
export class StocGameMessage extends pb_1.Message { export class StocGameMessage extends pb_1.Message {
#one_of_decls: number[][] = [[1, 2, 3, 4, 5, 6]]; #one_of_decls: number[][] = [[1, 2, 3, 4, 5, 6]];
constructor( constructor(
......
...@@ -13,6 +13,7 @@ import { ...@@ -13,6 +13,7 @@ import {
STOC_DECK_COUNT, STOC_DECK_COUNT,
STOC_DUEL_START, STOC_DUEL_START,
STOC_GAME_MSG, STOC_GAME_MSG,
STOC_TIME_LIMIT,
} from "./protoDecl"; } from "./protoDecl";
import StocChat from "./stoc/stocChat"; import StocChat from "./stoc/stocChat";
import StocJoinGame from "./stoc/stocJoinGame"; import StocJoinGame from "./stoc/stocJoinGame";
...@@ -23,6 +24,7 @@ import StocTypeChange from "./stoc/stocTypeChange"; ...@@ -23,6 +24,7 @@ import StocTypeChange from "./stoc/stocTypeChange";
import StocSelectHand from "./stoc/stocSelectHand"; import StocSelectHand from "./stoc/stocSelectHand";
import StocSelectTp from "./stoc/stocSelectTp"; import StocSelectTp from "./stoc/stocSelectTp";
import StocDeckCount from "./stoc/stocDeckCount"; import StocDeckCount from "./stoc/stocDeckCount";
import StocTimeLimit from "./stoc/stocTimeLimit";
import StocGameMsg from "./stoc/stocGameMsg/mod"; import StocGameMsg from "./stoc/stocGameMsg/mod";
/* /*
...@@ -94,6 +96,11 @@ export function adaptStoc(packet: YgoProPacket): ygopro.YgoStocMsg { ...@@ -94,6 +96,11 @@ export function adaptStoc(packet: YgoProPacket): ygopro.YgoStocMsg {
break; break;
} }
case STOC_TIME_LIMIT: {
pb = new StocTimeLimit(packet).upcast();
break;
}
default: { default: {
break; break;
} }
......
import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket } from "../packet";
import { CTOS_TIME_CONFIRM } from "../protoDecl";
/*
* CTOS CTOS_TIME_CONFIRM
*
* @param - null
*
* @usage - 确认计时?
*
* */
export default class CtosTimeConfirm extends YgoProPacket {
constructor(_: ygopro.YgoCtosMsg) {
super(1, CTOS_TIME_CONFIRM, new Uint8Array(0));
}
}
...@@ -9,6 +9,7 @@ export const CTOS_HS_READY = 34; ...@@ -9,6 +9,7 @@ export const CTOS_HS_READY = 34;
export const CTOS_HS_START = 37; export const CTOS_HS_START = 37;
export const CTOS_HAND_RESULT = 3; export const CTOS_HAND_RESULT = 3;
export const CTOS_TP_RESULT = 4; export const CTOS_TP_RESULT = 4;
export const CTOS_TIME_CONFIRM = 21;
export const STOC_JOIN_GAME = 18; export const STOC_JOIN_GAME = 18;
export const STOC_CHAT = 25; export const STOC_CHAT = 25;
...@@ -22,6 +23,7 @@ export const STOC_HAND_RESULT = 5; ...@@ -22,6 +23,7 @@ export const STOC_HAND_RESULT = 5;
export const STOC_DECK_COUNT = 9; export const STOC_DECK_COUNT = 9;
export const STOC_DUEL_START = 21; export const STOC_DUEL_START = 21;
export const STOC_GAME_MSG = 1; export const STOC_GAME_MSG = 1;
export const STOC_TIME_LIMIT = 24;
export const MSG_START = 4; export const MSG_START = 4;
export const MSG_DRAW = 90; export const MSG_DRAW = 90;
......
import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet";
import { BufferReader } from "../bufferIO";
/*
* STOC TimeLimit
*
* @usage - 同时客户端/前端时间限制
* */
export default class TimeLimit implements StocAdapter {
packet: YgoProPacket;
constructor(packet: YgoProPacket) {
this.packet = packet;
}
upcast(): ygopro.YgoStocMsg {
const reader = new BufferReader(this.packet.exData, true);
const player = reader.readInt8();
const leftTime = reader.readUint16();
return new ygopro.YgoStocMsg({
stoc_time_limit: new ygopro.StocTimeLimit({
player,
left_time: leftTime,
}),
});
}
}
...@@ -12,6 +12,7 @@ import HsReadyAdapter from "./ocgAdapter/ctos/ctosHsReady"; ...@@ -12,6 +12,7 @@ import HsReadyAdapter from "./ocgAdapter/ctos/ctosHsReady";
import HsStartAdapter from "./ocgAdapter/ctos/ctosHsStart"; import HsStartAdapter from "./ocgAdapter/ctos/ctosHsStart";
import HandResult from "./ocgAdapter/ctos/ctosHandResult"; import HandResult from "./ocgAdapter/ctos/ctosHandResult";
import TpResult from "./ocgAdapter/ctos/ctosTpResult"; import TpResult from "./ocgAdapter/ctos/ctosTpResult";
import TimeConfirm from "./ocgAdapter/ctos/ctosTimeConfirm";
export function sendUpdateDeck(deck: IDeck) { export function sendUpdateDeck(deck: IDeck) {
const updateDeck = new ygopro.YgoCtosMsg({ const updateDeck = new ygopro.YgoCtosMsg({
...@@ -107,3 +108,12 @@ export function sendTpResult(isFirst: boolean) { ...@@ -107,3 +108,12 @@ export function sendTpResult(isFirst: boolean) {
socketMiddleWare({ cmd: socketCmd.SEND, payload }); socketMiddleWare({ cmd: socketCmd.SEND, payload });
} }
export function sendTimeConfirm() {
const timeConfirm = new ygopro.YgoCtosMsg({
ctos_time_confirm: new ygopro.CtosTimeConfirm({}),
});
const payload = new TimeConfirm(timeConfirm).serialize();
socketMiddleWare({ cmd: socketCmd.SEND, payload });
}
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { InitInfo, infoInitImpl } from "./initInfoSlice"; import { InitInfo, infoInitImpl } from "./initInfoSlice";
import { TimeLimit, updateTimeLimitImpl } from "./timeLimit";
import { import {
Hands, Hands,
handsCase, handsCase,
...@@ -21,6 +22,8 @@ export interface DuelState { ...@@ -21,6 +22,8 @@ export interface DuelState {
opInitInfo?: InitInfo; // 对手的初始状态 opInitInfo?: InitInfo; // 对手的初始状态
meHands?: Hands; // 自己的手牌 meHands?: Hands; // 自己的手牌
opHands?: Hands; // 对手的手牌 opHands?: Hands; // 对手的手牌
meTimeLimit?: TimeLimit; // 自己的计时
opTimeLimit?: TimeLimit; // 对手的计时
currentPlayer?: number; // 当前的操作方 currentPlayer?: number; // 当前的操作方
currentPhase?: string; // 当前的阶段 currentPhase?: string; // 当前的阶段
} }
...@@ -37,6 +40,7 @@ const duelSlice = createSlice({ ...@@ -37,6 +40,7 @@ const duelSlice = createSlice({
infoInit: infoInitImpl, infoInit: infoInitImpl,
updateTurn: newTurnImpl, updateTurn: newTurnImpl,
updatePhase: newPhaseImpl, updatePhase: newPhaseImpl,
updateTimeLimit: updateTimeLimitImpl,
// 手牌相关`Reducer` // 手牌相关`Reducer`
clearHandsInteractivity: clearHandsInteractivityImpl, clearHandsInteractivity: clearHandsInteractivityImpl,
...@@ -54,6 +58,7 @@ export const { ...@@ -54,6 +58,7 @@ export const {
updatePhase, updatePhase,
clearHandsInteractivity, clearHandsInteractivity,
addHandsInteractivity, addHandsInteractivity,
updateTimeLimit,
} = duelSlice.actions; } = duelSlice.actions;
export const selectDuelHsStart = (state: RootState) => { export const selectDuelHsStart = (state: RootState) => {
return state.duel.meInitInfo != null; return state.duel.meInitInfo != null;
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { judgeSelf } from "./util";
export interface TimeLimit {
leftTime: number;
}
// 更新计时
export const updateTimeLimitImpl: CaseReducer<
DuelState,
PayloadAction<[number, number]>
> = (state, action) => {
const player = action.payload[0];
const leftTime = action.payload[1];
if (judgeSelf(player, state)) {
state.meTimeLimit = { leftTime };
} else {
state.opTimeLimit = { leftTime };
}
};
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { store } from "../../store";
import { updateTimeLimit } from "../../reducers/duel/mod";
import { sendTimeConfirm } from "../../api/ocgcore/ocgHelper";
export default function handleTimeLimit(timeLimit: ygopro.StocTimeLimit) {
const dispatch = store.dispatch;
dispatch(updateTimeLimit([timeLimit.player, timeLimit.left_time]));
sendTimeConfirm();
}
...@@ -14,6 +14,7 @@ import handleSelectHand from "./mora/selectHand"; ...@@ -14,6 +14,7 @@ import handleSelectHand from "./mora/selectHand";
import handleSelectTp from "./mora/selectTp"; import handleSelectTp from "./mora/selectTp";
import handleDeckCount from "./mora/deckCount"; import handleDeckCount from "./mora/deckCount";
import handleGameMsg from "./duel/gameMsg"; import handleGameMsg from "./duel/gameMsg";
import handleTimeLimit from "./duel/timeLimit";
/* /*
* 先将从长连接中读取到的二进制数据通过Adapter转成protobuf结构体, * 先将从长连接中读取到的二进制数据通过Adapter转成protobuf结构体,
...@@ -87,6 +88,11 @@ export default function handleSocketMessage(e: MessageEvent) { ...@@ -87,6 +88,11 @@ export default function handleSocketMessage(e: MessageEvent) {
break; break;
} }
case "stoc_time_limit": {
handleTimeLimit(pb.stoc_time_limit);
break;
}
default: { default: {
console.log(packet); console.log(packet);
......
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