Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
N
Neos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
love_飞影
Neos
Commits
8fb09d50
Commit
8fb09d50
authored
Mar 25, 2023
by
Chunchi Che
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/select_tribute' into 'main'
Fix/select tribute See merge request
!152
parents
9750ad07
84aa34c6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
521 additions
and
22 deletions
+521
-22
neos-protobuf
neos-protobuf
+1
-1
src/api/ocgcore/idl/ocgcore.ts
src/api/ocgcore/idl/ocgcore.ts
+459
-3
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
+1
-1
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectSum.ts
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectSum.ts
+4
-2
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectTribute.ts
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectTribute.ts
+14
-15
src/service/duel/gameMsg.ts
src/service/duel/gameMsg.ts
+6
-0
src/service/duel/selectTribute.ts
src/service/duel/selectTribute.ts
+36
-0
No files found.
neos-protobuf
@
12d819b3
Subproject commit
3090fbcb9d0c51fa7aa20b3e313917d971cf15ca
Subproject commit
12d819b3b0c69b334f475b01fdbf2f7fc6f5e2d9
src/api/ocgcore/idl/ocgcore.ts
View file @
8fb09d50
...
@@ -5446,7 +5446,7 @@ export namespace ygopro {
...
@@ -5446,7 +5446,7 @@ export namespace ygopro {
#one_of_decls: number[][] = [
#one_of_decls: number[][] = [
[
[
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21
,
22
,
23
,
24
,
25
,
21, 22, 23, 24, 25,
26,
],
],
];
];
constructor(
constructor(
...
@@ -5479,6 +5479,7 @@ export namespace ygopro {
...
@@ -5479,6 +5479,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5506,6 +5507,7 @@ export namespace ygopro {
...
@@ -5506,6 +5507,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5533,6 +5535,7 @@ export namespace ygopro {
...
@@ -5533,6 +5535,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5560,6 +5563,7 @@ export namespace ygopro {
...
@@ -5560,6 +5563,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5587,6 +5591,7 @@ export namespace ygopro {
...
@@ -5587,6 +5591,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5614,6 +5619,7 @@ export namespace ygopro {
...
@@ -5614,6 +5619,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5641,6 +5647,7 @@ export namespace ygopro {
...
@@ -5641,6 +5647,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5668,6 +5675,7 @@ export namespace ygopro {
...
@@ -5668,6 +5675,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5695,6 +5703,7 @@ export namespace ygopro {
...
@@ -5695,6 +5703,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5722,6 +5731,7 @@ export namespace ygopro {
...
@@ -5722,6 +5731,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5749,6 +5759,7 @@ export namespace ygopro {
...
@@ -5749,6 +5759,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5776,6 +5787,7 @@ export namespace ygopro {
...
@@ -5776,6 +5787,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5803,6 +5815,7 @@ export namespace ygopro {
...
@@ -5803,6 +5815,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5830,6 +5843,7 @@ export namespace ygopro {
...
@@ -5830,6 +5843,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5857,6 +5871,7 @@ export namespace ygopro {
...
@@ -5857,6 +5871,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5884,6 +5899,7 @@ export namespace ygopro {
...
@@ -5884,6 +5899,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5911,6 +5927,7 @@ export namespace ygopro {
...
@@ -5911,6 +5927,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5938,6 +5955,7 @@ export namespace ygopro {
...
@@ -5938,6 +5955,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5965,6 +5983,7 @@ export namespace ygopro {
...
@@ -5965,6 +5983,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -5992,6 +6011,7 @@ export namespace ygopro {
...
@@ -5992,6 +6011,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -6019,6 +6039,7 @@ export namespace ygopro {
...
@@ -6019,6 +6039,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -6046,6 +6067,7 @@ export namespace ygopro {
...
@@ -6046,6 +6067,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -6073,6 +6095,7 @@ export namespace ygopro {
...
@@ -6073,6 +6095,7 @@ export namespace ygopro {
update_data?: StocGameMessage.MsgUpdateData;
update_data?: StocGameMessage.MsgUpdateData;
reload_field?: never;
reload_field?: never;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -6100,6 +6123,7 @@ export namespace ygopro {
...
@@ -6100,6 +6123,7 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: StocGameMessage.MsgReloadField;
reload_field?: StocGameMessage.MsgReloadField;
select_sum?: never;
select_sum?: never;
select_tribute?: never;
}
}
| {
| {
start?: never;
start?: never;
...
@@ -6127,6 +6151,35 @@ export namespace ygopro {
...
@@ -6127,6 +6151,35 @@ export namespace ygopro {
update_data?: never;
update_data?: never;
reload_field?: never;
reload_field?: never;
select_sum?: StocGameMessage.MsgSelectSum;
select_sum?: StocGameMessage.MsgSelectSum;
select_tribute?: never;
}
| {
start?: never;
draw?: never;
new_turn?: never;
new_phase?: never;
hint?: never;
select_idle_cmd?: never;
select_place?: never;
move?: never;
select_card?: never;
select_chain?: never;
select_effect_yn?: never;
select_position?: never;
select_option?: never;
shuffle_hand?: never;
select_battle_cmd?: never;
pos_change?: never;
select_unselect_card?: never;
select_yes_no?: never;
update_hp?: never;
win?: never;
wait?: never;
unimplemented?: never;
update_data?: never;
reload_field?: never;
select_sum?: never;
select_tribute?: StocGameMessage.MsgSelectTribute;
}
}
))
))
) {
) {
...
@@ -6221,6 +6274,9 @@ export namespace ygopro {
...
@@ -6221,6 +6274,9 @@ export namespace ygopro {
if ("select_sum" in data && data.select_sum != undefined) {
if ("select_sum" in data && data.select_sum != undefined) {
this.select_sum = data.select_sum;
this.select_sum = data.select_sum;
}
}
if ("select_tribute" in data && data.select_tribute != undefined) {
this.select_tribute = data.select_tribute;
}
}
}
}
}
get start() {
get start() {
...
@@ -6548,6 +6604,19 @@ export namespace ygopro {
...
@@ -6548,6 +6604,19 @@ export namespace ygopro {
get has_select_sum() {
get has_select_sum() {
return pb_1.Message.getField(this, 25) != null;
return pb_1.Message.getField(this, 25) != null;
}
}
get select_tribute() {
return pb_1.Message.getWrapperField(
this,
StocGameMessage.MsgSelectTribute,
26
) as StocGameMessage.MsgSelectTribute;
}
set select_tribute(value: StocGameMessage.MsgSelectTribute) {
pb_1.Message.setOneofWrapperField(this, 26, this.#one_of_decls[0], value);
}
get has_select_tribute() {
return pb_1.Message.getField(this, 26) != null;
}
get gameMsg() {
get gameMsg() {
const cases: {
const cases: {
[index: number]:
[index: number]:
...
@@ -6576,7 +6645,8 @@ export namespace ygopro {
...
@@ -6576,7 +6645,8 @@ export namespace ygopro {
| "unimplemented"
| "unimplemented"
| "update_data"
| "update_data"
| "reload_field"
| "reload_field"
|
"
select_sum
"
;
| "select_sum"
| "select_tribute";
} = {
} = {
0: "none",
0: "none",
1: "start",
1: "start",
...
@@ -6604,13 +6674,14 @@ export namespace ygopro {
...
@@ -6604,13 +6674,14 @@ export namespace ygopro {
23: "update_data",
23: "update_data",
24: "reload_field",
24: "reload_field",
25: "select_sum",
25: "select_sum",
26: "select_tribute",
};
};
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, 13, 14, 15, 16, 17, 18, 19,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20
,
21
,
22
,
23
,
24
,
25
,
20, 21, 22, 23, 24, 25,
26,
]
]
)
)
];
];
...
@@ -6679,6 +6750,9 @@ export namespace ygopro {
...
@@ -6679,6 +6750,9 @@ export namespace ygopro {
select_sum?: ReturnType<
select_sum?: ReturnType<
typeof StocGameMessage.MsgSelectSum.prototype.toObject
typeof StocGameMessage.MsgSelectSum.prototype.toObject
>;
>;
select_tribute?: ReturnType<
typeof StocGameMessage.MsgSelectTribute.prototype.toObject
>;
}): StocGameMessage {
}): StocGameMessage {
const message = new StocGameMessage({});
const message = new StocGameMessage({});
if (data.start != null) {
if (data.start != null) {
...
@@ -6792,6 +6866,11 @@ export namespace ygopro {
...
@@ -6792,6 +6866,11 @@ export namespace ygopro {
data.select_sum
data.select_sum
);
);
}
}
if (data.select_tribute != null) {
message.select_tribute = StocGameMessage.MsgSelectTribute.fromObject(
data.select_tribute
);
}
return message;
return message;
}
}
toObject() {
toObject() {
...
@@ -6859,6 +6938,9 @@ export namespace ygopro {
...
@@ -6859,6 +6938,9 @@ export namespace ygopro {
select_sum?: ReturnType<
select_sum?: ReturnType<
typeof StocGameMessage.MsgSelectSum.prototype.toObject
typeof StocGameMessage.MsgSelectSum.prototype.toObject
>;
>;
select_tribute?: ReturnType<
typeof StocGameMessage.MsgSelectTribute.prototype.toObject
>;
} = {};
} = {};
if (this.start != null) {
if (this.start != null) {
data.start = this.start.toObject();
data.start = this.start.toObject();
...
@@ -6935,6 +7017,9 @@ export namespace ygopro {
...
@@ -6935,6 +7017,9 @@ export namespace ygopro {
if (this.select_sum != null) {
if (this.select_sum != null) {
data.select_sum = this.select_sum.toObject();
data.select_sum = this.select_sum.toObject();
}
}
if (this.select_tribute != null) {
data.select_tribute = this.select_tribute.toObject();
}
return data;
return data;
}
}
serialize(): Uint8Array;
serialize(): Uint8Array;
...
@@ -7029,6 +7114,10 @@ export namespace ygopro {
...
@@ -7029,6 +7114,10 @@ export namespace ygopro {
writer.writeMessage(25, this.select_sum, () =>
writer.writeMessage(25, this.select_sum, () =>
this.select_sum.serialize(writer)
this.select_sum.serialize(writer)
);
);
if (this.has_select_tribute)
writer.writeMessage(26, this.select_tribute, () =>
this.select_tribute.serialize(writer)
);
if (!w) return writer.getResultBuffer();
if (!w) return writer.getResultBuffer();
}
}
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StocGameMessage {
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StocGameMessage {
...
@@ -7229,6 +7318,14 @@ export namespace ygopro {
...
@@ -7229,6 +7318,14 @@ export namespace ygopro {
StocGameMessage.MsgSelectSum.deserialize(reader))
StocGameMessage.MsgSelectSum.deserialize(reader))
);
);
break;
break;
case 26:
reader.readMessage(
message.select_tribute,
() =>
(message.select_tribute =
StocGameMessage.MsgSelectTribute.deserialize(reader))
);
break;
default:
default:
reader.skipField();
reader.skipField();
}
}
...
@@ -11430,6 +11527,365 @@ export namespace ygopro {
...
@@ -11430,6 +11527,365 @@ export namespace ygopro {
}
}
}
}
}
}
export class MsgSelectTribute extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(
data?:
| any[]
| {
player?: number;
cancelable?: boolean;
min?: number;
max?: number;
selectable_cards?: StocGameMessage.MsgSelectTribute.Info[];
}
) {
super();
pb_1.Message.initialize(
this,
Array.isArray(data) ? data : [],
0,
-1,
[5],
this.#one_of_decls
);
if (!Array.isArray(data) && typeof data == "object") {
if ("player" in data && data.player != undefined) {
this.player = data.player;
}
if ("cancelable" in data && data.cancelable != undefined) {
this.cancelable = data.cancelable;
}
if ("min" in data && data.min != undefined) {
this.min = data.min;
}
if ("max" in data && data.max != undefined) {
this.max = data.max;
}
if (
"selectable_cards" in data &&
data.selectable_cards != undefined
) {
this.selectable_cards = data.selectable_cards;
}
}
}
get player() {
return pb_1.Message.getFieldWithDefault(this, 1, 0) as number;
}
set player(value: number) {
pb_1.Message.setField(this, 1, value);
}
get cancelable() {
return pb_1.Message.getFieldWithDefault(this, 2, false) as boolean;
}
set cancelable(value: boolean) {
pb_1.Message.setField(this, 2, value);
}
get min() {
return pb_1.Message.getFieldWithDefault(this, 3, 0) as number;
}
set min(value: number) {
pb_1.Message.setField(this, 3, value);
}
get max() {
return pb_1.Message.getFieldWithDefault(this, 4, 0) as number;
}
set max(value: number) {
pb_1.Message.setField(this, 4, value);
}
get selectable_cards() {
return pb_1.Message.getRepeatedWrapperField(
this,
StocGameMessage.MsgSelectTribute.Info,
5
) as StocGameMessage.MsgSelectTribute.Info[];
}
set selectable_cards(value: StocGameMessage.MsgSelectTribute.Info[]) {
pb_1.Message.setRepeatedWrapperField(this, 5, value);
}
static fromObject(data: {
player?: number;
cancelable?: boolean;
min?: number;
max?: number;
selectable_cards?: ReturnType<
typeof StocGameMessage.MsgSelectTribute.Info.prototype.toObject
>[];
}): MsgSelectTribute {
const message = new MsgSelectTribute({});
if (data.player != null) {
message.player = data.player;
}
if (data.cancelable != null) {
message.cancelable = data.cancelable;
}
if (data.min != null) {
message.min = data.min;
}
if (data.max != null) {
message.max = data.max;
}
if (data.selectable_cards != null) {
message.selectable_cards = data.selectable_cards.map((item) =>
StocGameMessage.MsgSelectTribute.Info.fromObject(item)
);
}
return message;
}
toObject() {
const data: {
player?: number;
cancelable?: boolean;
min?: number;
max?: number;
selectable_cards?: ReturnType<
typeof StocGameMessage.MsgSelectTribute.Info.prototype.toObject
>[];
} = {};
if (this.player != null) {
data.player = this.player;
}
if (this.cancelable != null) {
data.cancelable = this.cancelable;
}
if (this.min != null) {
data.min = this.min;
}
if (this.max != null) {
data.max = this.max;
}
if (this.selectable_cards != null) {
data.selectable_cards = this.selectable_cards.map(
(item: StocGameMessage.MsgSelectTribute.Info) => item.toObject()
);
}
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.cancelable != false) writer.writeBool(2, this.cancelable);
if (this.min != 0) writer.writeInt32(3, this.min);
if (this.max != 0) writer.writeInt32(4, this.max);
if (this.selectable_cards.length)
writer.writeRepeatedMessage(
5,
this.selectable_cards,
(item: StocGameMessage.MsgSelectTribute.Info) =>
item.serialize(writer)
);
if (!w) return writer.getResultBuffer();
}
static deserialize(
bytes: Uint8Array | pb_1.BinaryReader
): MsgSelectTribute {
const reader =
bytes instanceof pb_1.BinaryReader
? bytes
: new pb_1.BinaryReader(bytes),
message = new MsgSelectTribute();
while (reader.nextField()) {
if (reader.isEndGroup()) break;
switch (reader.getFieldNumber()) {
case 1:
message.player = reader.readInt32();
break;
case 2:
message.cancelable = reader.readBool();
break;
case 3:
message.min = reader.readInt32();
break;
case 4:
message.max = reader.readInt32();
break;
case 5:
reader.readMessage(message.selectable_cards, () =>
pb_1.Message.addToRepeatedWrapperField(
message,
5,
StocGameMessage.MsgSelectTribute.Info.deserialize(reader),
StocGameMessage.MsgSelectTribute.Info
)
);
break;
default:
reader.skipField();
}
}
return message;
}
serializeBinary(): Uint8Array {
return this.serialize();
}
static deserializeBinary(bytes: Uint8Array): MsgSelectTribute {
return MsgSelectTribute.deserialize(bytes);
}
}
export namespace MsgSelectTribute {
export class Info extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(
data?:
| any[]
| {
code?: number;
location?: CardLocation;
level?: number;
response?: 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 ("code" in data && data.code != undefined) {
this.code = data.code;
}
if ("location" in data && data.location != undefined) {
this.location = data.location;
}
if ("level" in data && data.level != undefined) {
this.level = data.level;
}
if ("response" in data && data.response != undefined) {
this.response = data.response;
}
}
}
get code() {
return pb_1.Message.getFieldWithDefault(this, 1, 0) as number;
}
set code(value: number) {
pb_1.Message.setField(this, 1, value);
}
get location() {
return pb_1.Message.getWrapperField(
this,
CardLocation,
2
) as CardLocation;
}
set location(value: CardLocation) {
pb_1.Message.setWrapperField(this, 2, value);
}
get has_location() {
return pb_1.Message.getField(this, 2) != null;
}
get level() {
return pb_1.Message.getFieldWithDefault(this, 3, 0) as number;
}
set level(value: number) {
pb_1.Message.setField(this, 3, value);
}
get response() {
return pb_1.Message.getFieldWithDefault(this, 4, 0) as number;
}
set response(value: number) {
pb_1.Message.setField(this, 4, value);
}
static fromObject(data: {
code?: number;
location?: ReturnType<typeof CardLocation.prototype.toObject>;
level?: number;
response?: number;
}): Info {
const message = new Info({});
if (data.code != null) {
message.code = data.code;
}
if (data.location != null) {
message.location = CardLocation.fromObject(data.location);
}
if (data.level != null) {
message.level = data.level;
}
if (data.response != null) {
message.response = data.response;
}
return message;
}
toObject() {
const data: {
code?: number;
location?: ReturnType<typeof CardLocation.prototype.toObject>;
level?: number;
response?: number;
} = {};
if (this.code != null) {
data.code = this.code;
}
if (this.location != null) {
data.location = this.location.toObject();
}
if (this.level != null) {
data.level = this.level;
}
if (this.response != null) {
data.response = this.response;
}
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.code != 0) writer.writeInt32(1, this.code);
if (this.has_location)
writer.writeMessage(2, this.location, () =>
this.location.serialize(writer)
);
if (this.level != 0) writer.writeInt32(3, this.level);
if (this.response != 0) writer.writeInt32(4, this.response);
if (!w) return writer.getResultBuffer();
}
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Info {
const reader =
bytes instanceof pb_1.BinaryReader
? bytes
: new pb_1.BinaryReader(bytes),
message = new Info();
while (reader.nextField()) {
if (reader.isEndGroup()) break;
switch (reader.getFieldNumber()) {
case 1:
message.code = reader.readInt32();
break;
case 2:
reader.readMessage(
message.location,
() => (message.location = CardLocation.deserialize(reader))
);
break;
case 3:
message.level = reader.readInt32();
break;
case 4:
message.response = reader.readInt32();
break;
default:
reader.skipField();
}
}
return message;
}
serializeBinary(): Uint8Array {
return this.serialize();
}
static deserializeBinary(bytes: Uint8Array): Info {
return Info.deserialize(bytes);
}
}
}
export class MsgSelectSum extends pb_1.Message {
export class MsgSelectSum extends pb_1.Message {
#one_of_decls: number[][] = [];
#one_of_decls: number[][] = [];
constructor(
constructor(
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
View file @
8fb09d50
...
@@ -96,7 +96,7 @@ export default class GameMsgAdapter implements StocAdapter {
...
@@ -96,7 +96,7 @@ export default class GameMsgAdapter implements StocAdapter {
break
;
break
;
}
}
case
GAME_MSG
.
MSG_SELECT_TRIBUTE
:
{
case
GAME_MSG
.
MSG_SELECT_TRIBUTE
:
{
gameMsg
.
select_
card
=
MsgSelectTributeAdapter
(
gameData
);
gameMsg
.
select_
tribute
=
MsgSelectTributeAdapter
(
gameData
);
break
;
break
;
}
}
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectSum.ts
View file @
8fb09d50
...
@@ -50,13 +50,15 @@ export default (data: Uint8Array) => {
...
@@ -50,13 +50,15 @@ export default (data: Uint8Array) => {
const
code
=
reader
.
inner
.
readInt32
();
const
code
=
reader
.
inner
.
readInt32
();
const
location
=
reader
.
readCardShortLocation
();
const
location
=
reader
.
readCardShortLocation
();
const
para
=
reader
.
inner
.
readInt32
();
const
para
=
reader
.
inner
.
readInt32
();
const
level1
=
para
&
0xffff
;
const
level2
=
para
>>
16
>
0
?
para
>>
16
:
level1
;
msg
.
selectable_cards
.
push
(
msg
.
selectable_cards
.
push
(
new
MsgSelectSum
.
Info
({
new
MsgSelectSum
.
Info
({
code
,
code
,
location
,
location
,
level1
:
para
&
0xffff
,
level1
,
level2
:
para
>>
16
,
level2
,
response
:
i
,
response
:
i
,
})
})
);
);
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectTribute.ts
View file @
8fb09d50
import
{
ygopro
}
from
"
../../../idl/ocgcore
"
;
import
{
ygopro
}
from
"
../../../idl/ocgcore
"
;
import
{
BufferReaderExt
}
from
"
../../bufferIO
"
;
import
{
BufferReaderExt
}
from
"
../../bufferIO
"
;
import
MsgSelect
Card
=
ygopro
.
StocGameMessage
.
MsgSelectCard
;
import
MsgSelect
Tribute
=
ygopro
.
StocGameMessage
.
MsgSelectTribute
;
/*
/*
* Msg Select Tribute
* Msg Select Tribute
...
@@ -10,7 +10,6 @@ import MsgSelectCard = ygopro.StocGameMessage.MsgSelectCard;
...
@@ -10,7 +10,6 @@ import MsgSelectCard = ygopro.StocGameMessage.MsgSelectCard;
* */
* */
export
default
(
data
:
Uint8Array
)
=>
{
export
default
(
data
:
Uint8Array
)
=>
{
// FIXME: handle it correctly
const
reader
=
new
BufferReaderExt
(
data
);
const
reader
=
new
BufferReaderExt
(
data
);
const
player
=
reader
.
inner
.
readUint8
();
const
player
=
reader
.
inner
.
readUint8
();
...
@@ -19,25 +18,25 @@ export default (data: Uint8Array) => {
...
@@ -19,25 +18,25 @@ export default (data: Uint8Array) => {
const
max
=
reader
.
inner
.
readUint8
();
const
max
=
reader
.
inner
.
readUint8
();
const
count
=
reader
.
inner
.
readUint8
();
const
count
=
reader
.
inner
.
readUint8
();
const
msg
=
new
MsgSelectCard
({
player
,
cancelable
,
min
,
max
});
const
msg
=
new
MsgSelectTribute
({
player
,
cancelable
,
min
,
max
,
selectable_cards
:
[],
});
for
(
let
i
=
0
;
i
<
count
;
i
++
)
{
for
(
let
i
=
0
;
i
<
count
;
i
++
)
{
const
code
=
reader
.
inner
.
readUint32
();
const
code
=
reader
.
inner
.
readUint32
();
const
controler
=
reader
.
inner
.
readUint8
();
const
location
=
reader
.
readCardShortLocation
();
const
location
=
reader
.
inner
.
readUint8
();
const
level
=
reader
.
inner
.
readUint8
();
const
sequence
=
reader
.
inner
.
readUint8
();
const
release_param
=
reader
.
inner
.
readUint8
();
msg
.
cards
.
push
(
msg
.
selectable_
cards
.
push
(
new
MsgSelect
Card
.
SelectAbleCard
({
new
MsgSelect
Tribute
.
Info
({
code
,
code
,
location
:
new
ygopro
.
CardLocation
({
location
,
controler
,
level
,
location
,
sequence
,
}),
response
:
i
,
response
:
i
,
release_param
,
})
})
);
);
}
}
...
...
src/service/duel/gameMsg.ts
View file @
8fb09d50
...
@@ -25,6 +25,7 @@ import onUnimplemented from "./unimplemented";
...
@@ -25,6 +25,7 @@ import onUnimplemented from "./unimplemented";
import
onMsgUpdateData
from
"
./updateData
"
;
import
onMsgUpdateData
from
"
./updateData
"
;
import
onMsgReloadField
from
"
./reloadField
"
;
import
onMsgReloadField
from
"
./reloadField
"
;
import
onMsgSelectSum
from
"
./selectSum
"
;
import
onMsgSelectSum
from
"
./selectSum
"
;
import
onMsgSelectTribute
from
"
./selectTribute
"
;
import
{
setWaiting
}
from
"
../../reducers/duel/mod
"
;
import
{
setWaiting
}
from
"
../../reducers/duel/mod
"
;
const
ActiveList
=
[
const
ActiveList
=
[
...
@@ -169,6 +170,11 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
...
@@ -169,6 +170,11 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
break
;
break
;
}
}
case
"
select_tribute
"
:
{
onMsgSelectTribute
(
msg
.
select_tribute
,
dispatch
);
break
;
}
case
"
unimplemented
"
:
{
case
"
unimplemented
"
:
{
onUnimplemented
(
msg
.
unimplemented
,
dispatch
);
onUnimplemented
(
msg
.
unimplemented
,
dispatch
);
...
...
src/service/duel/selectTribute.ts
0 → 100644
View file @
8fb09d50
import
{
ygopro
}
from
"
../../api/ocgcore/idl/ocgcore
"
;
import
{
setCheckCardModalV3AllLevel
,
setCheckCardModalV3IsOpen
,
setCheckCardModalV3MinMax
,
setCheckCardModalV3OverFlow
,
}
from
"
../../reducers/duel/mod
"
;
import
{
fetchCheckCardMetasV3
}
from
"
../../reducers/duel/modal/checkCardModalV3Slice
"
;
import
{
AppDispatch
}
from
"
../../store
"
;
import
MsgSelectTribute
=
ygopro
.
StocGameMessage
.
MsgSelectTribute
;
export
default
(
selectTribute
:
MsgSelectTribute
,
dispatch
:
AppDispatch
)
=>
{
// TODO: 当玩家选择卡数大于`max`时,是否也合法?
dispatch
(
setCheckCardModalV3OverFlow
(
true
));
dispatch
(
setCheckCardModalV3AllLevel
(
0
));
dispatch
(
setCheckCardModalV3MinMax
({
min
:
selectTribute
.
min
,
max
:
selectTribute
.
max
,
})
);
dispatch
(
fetchCheckCardMetasV3
({
mustSelect
:
false
,
options
:
selectTribute
.
selectable_cards
.
map
((
card
)
=>
{
return
{
code
:
card
.
code
,
level1
:
card
.
level
,
level2
:
card
.
level
,
response
:
card
.
response
,
};
}),
})
);
dispatch
(
setCheckCardModalV3IsOpen
(
true
));
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment