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
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
2
Merge Requests
2
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
MyCard
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
Pipeline
#20917
passed with stages
in 14 minutes and 51 seconds
Changes
7
Pipelines
1
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 {
#
one_of_decls
:
number
[][]
=
[
[
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
(
...
...
@@ -5479,6 +5479,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5506,6 +5507,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5533,6 +5535,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5560,6 +5563,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5587,6 +5591,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5614,6 +5619,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5641,6 +5647,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5668,6 +5675,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5695,6 +5703,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5722,6 +5731,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5749,6 +5759,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5776,6 +5787,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5803,6 +5815,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5830,6 +5843,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5857,6 +5871,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5884,6 +5899,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5911,6 +5927,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5938,6 +5955,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5965,6 +5983,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -5992,6 +6011,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -6019,6 +6039,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -6046,6 +6067,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -6073,6 +6095,7 @@ export namespace ygopro {
update_data
?:
StocGameMessage
.
MsgUpdateData
;
reload_field
?:
never
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -6100,6 +6123,7 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
StocGameMessage
.
MsgReloadField
;
select_sum
?:
never
;
select_tribute
?:
never
;
}
|
{
start
?:
never
;
...
...
@@ -6127,6 +6151,35 @@ export namespace ygopro {
update_data
?:
never
;
reload_field
?:
never
;
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 {
if
(
"
select_sum
"
in
data
&&
data
.
select_sum
!=
undefined
)
{
this
.
select_sum
=
data
.
select_sum
;
}
if
(
"
select_tribute
"
in
data
&&
data
.
select_tribute
!=
undefined
)
{
this
.
select_tribute
=
data
.
select_tribute
;
}
}
}
get
start
()
{
...
...
@@ -6548,6 +6604,19 @@ export namespace ygopro {
get
has_select_sum
()
{
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
()
{
const
cases
:
{
[
index
:
number
]:
...
...
@@ -6576,7 +6645,8 @@ export namespace ygopro {
|
"
unimplemented
"
|
"
update_data
"
|
"
reload_field
"
|
"
select_sum
"
;
|
"
select_sum
"
|
"
select_tribute
"
;
}
=
{
0
:
"
none
"
,
1
:
"
start
"
,
...
...
@@ -6604,13 +6674,14 @@ export namespace ygopro {
23
:
"
update_data
"
,
24
:
"
reload_field
"
,
25
:
"
select_sum
"
,
26
:
"
select_tribute
"
,
};
return
cases
[
pb_1
.
Message
.
computeOneofCase
(
this
,
[
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 {
select_sum
?:
ReturnType
<
typeof
StocGameMessage
.
MsgSelectSum
.
prototype
.
toObject
>
;
select_tribute
?:
ReturnType
<
typeof
StocGameMessage
.
MsgSelectTribute
.
prototype
.
toObject
>
;
}):
StocGameMessage
{
const
message
=
new
StocGameMessage
({});
if
(
data
.
start
!=
null
)
{
...
...
@@ -6792,6 +6866,11 @@ export namespace ygopro {
data
.
select_sum
);
}
if
(
data
.
select_tribute
!=
null
)
{
message
.
select_tribute
=
StocGameMessage
.
MsgSelectTribute
.
fromObject
(
data
.
select_tribute
);
}
return
message
;
}
toObject
()
{
...
...
@@ -6859,6 +6938,9 @@ export namespace ygopro {
select_sum
?:
ReturnType
<
typeof
StocGameMessage
.
MsgSelectSum
.
prototype
.
toObject
>
;
select_tribute
?:
ReturnType
<
typeof
StocGameMessage
.
MsgSelectTribute
.
prototype
.
toObject
>
;
}
=
{};
if
(
this
.
start
!=
null
)
{
data
.
start
=
this
.
start
.
toObject
();
...
...
@@ -6935,6 +7017,9 @@ export namespace ygopro {
if
(
this
.
select_sum
!=
null
)
{
data
.
select_sum
=
this
.
select_sum
.
toObject
();
}
if
(
this
.
select_tribute
!=
null
)
{
data
.
select_tribute
=
this
.
select_tribute
.
toObject
();
}
return
data
;
}
serialize
():
Uint8Array
;
...
...
@@ -7029,6 +7114,10 @@ export namespace ygopro {
writer
.
writeMessage
(
25
,
this
.
select_sum
,
()
=>
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
();
}
static
deserialize
(
bytes
:
Uint8Array
|
pb_1
.
BinaryReader
):
StocGameMessage
{
...
...
@@ -7229,6 +7318,14 @@ export namespace ygopro {
StocGameMessage
.
MsgSelectSum
.
deserialize
(
reader
))
);
break
;
case
26
:
reader
.
readMessage
(
message
.
select_tribute
,
()
=>
(
message
.
select_tribute
=
StocGameMessage
.
MsgSelectTribute
.
deserialize
(
reader
))
);
break
;
default
:
reader
.
skipField
();
}
...
...
@@ -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
{
#
one_of_decls
:
number
[][]
=
[];
constructor
(
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
View file @
8fb09d50
...
...
@@ -96,7 +96,7 @@ export default class GameMsgAdapter implements StocAdapter {
break
;
}
case
GAME_MSG
.
MSG_SELECT_TRIBUTE
:
{
gameMsg
.
select_
card
=
MsgSelectTributeAdapter
(
gameData
);
gameMsg
.
select_
tribute
=
MsgSelectTributeAdapter
(
gameData
);
break
;
}
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectSum.ts
View file @
8fb09d50
...
...
@@ -50,13 +50,15 @@ export default (data: Uint8Array) => {
const
code
=
reader
.
inner
.
readInt32
();
const
location
=
reader
.
readCardShortLocation
();
const
para
=
reader
.
inner
.
readInt32
();
const
level1
=
para
&
0xffff
;
const
level2
=
para
>>
16
>
0
?
para
>>
16
:
level1
;
msg
.
selectable_cards
.
push
(
new
MsgSelectSum
.
Info
({
code
,
location
,
level1
:
para
&
0xffff
,
level2
:
para
>>
16
,
level1
,
level2
,
response
:
i
,
})
);
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectTribute.ts
View file @
8fb09d50
import
{
ygopro
}
from
"
../../../idl/ocgcore
"
;
import
{
BufferReaderExt
}
from
"
../../bufferIO
"
;
import
MsgSelect
Card
=
ygopro
.
StocGameMessage
.
MsgSelectCard
;
import
MsgSelect
Tribute
=
ygopro
.
StocGameMessage
.
MsgSelectTribute
;
/*
* Msg Select Tribute
...
...
@@ -10,7 +10,6 @@ import MsgSelectCard = ygopro.StocGameMessage.MsgSelectCard;
* */
export
default
(
data
:
Uint8Array
)
=>
{
// FIXME: handle it correctly
const
reader
=
new
BufferReaderExt
(
data
);
const
player
=
reader
.
inner
.
readUint8
();
...
...
@@ -19,25 +18,25 @@ export default (data: Uint8Array) => {
const
max
=
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
++
)
{
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
();
const
location
=
reader
.
readCardShortLocation
();
const
level
=
reader
.
inner
.
readUint8
();
msg
.
cards
.
push
(
new
MsgSelect
Card
.
SelectAbleCard
({
msg
.
selectable_
cards
.
push
(
new
MsgSelect
Tribute
.
Info
({
code
,
location
:
new
ygopro
.
CardLocation
({
controler
,
location
,
sequence
,
}),
location
,
level
,
response
:
i
,
release_param
,
})
);
}
...
...
src/service/duel/gameMsg.ts
View file @
8fb09d50
...
...
@@ -25,6 +25,7 @@ import onUnimplemented from "./unimplemented";
import
onMsgUpdateData
from
"
./updateData
"
;
import
onMsgReloadField
from
"
./reloadField
"
;
import
onMsgSelectSum
from
"
./selectSum
"
;
import
onMsgSelectTribute
from
"
./selectTribute
"
;
import
{
setWaiting
}
from
"
../../reducers/duel/mod
"
;
const
ActiveList
=
[
...
...
@@ -169,6 +170,11 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
break
;
}
case
"
select_tribute
"
:
{
onMsgSelectTribute
(
msg
.
select_tribute
,
dispatch
);
break
;
}
case
"
unimplemented
"
:
{
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