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
baichixing
Neos
Commits
6811be94
Commit
6811be94
authored
Jan 02, 2023
by
Chunchi Che
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat/service/select_card' into 'main'
Feat/service/select card See merge request
!60
parents
ae0cafb9
8ddec62c
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
661 additions
and
39 deletions
+661
-39
neos-protobuf
neos-protobuf
+1
-1
src/api/ocgcore/idl/ocgcore.ts
src/api/ocgcore/idl/ocgcore.ts
+543
-6
src/api/ocgcore/ocgAdapter/bufferIO.ts
src/api/ocgcore/ocgAdapter/bufferIO.ts
+25
-0
src/api/ocgcore/ocgAdapter/ctos/ctosGameMsgResponse/mod.ts
src/api/ocgcore/ocgAdapter/ctos/ctosGameMsgResponse/mod.ts
+6
-0
src/api/ocgcore/ocgAdapter/ctos/ctosGameMsgResponse/selectCard.ts
...ocgcore/ocgAdapter/ctos/ctosGameMsgResponse/selectCard.ts
+14
-0
src/api/ocgcore/ocgAdapter/protoDecl.ts
src/api/ocgcore/ocgAdapter/protoDecl.ts
+1
-0
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
+6
-0
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/move.ts
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/move.ts
+2
-31
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectCard.ts
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectCard.ts
+33
-0
src/api/ocgcore/ocgAdapter/util.ts
src/api/ocgcore/ocgAdapter/util.ts
+1
-0
src/api/ocgcore/ocgHelper.ts
src/api/ocgcore/ocgHelper.ts
+13
-0
src/service/duel/gameMsg.ts
src/service/duel/gameMsg.ts
+8
-0
src/service/duel/selectCard.ts
src/service/duel/selectCard.ts
+8
-0
src/ui/Duel/cardListModal.tsx
src/ui/Duel/cardListModal.tsx
+0
-1
No files found.
neos-protobuf
@
07651117
Subproject commit
621489ace4b9d2ecb653fe0da25279b68154d206
Subproject commit
07651117cd5f99d81740c2419383a88904ba6557
src/api/ocgcore/idl/ocgcore.ts
View file @
6811be94
...
@@ -2412,7 +2412,7 @@ export namespace ygopro {
...
@@ -2412,7 +2412,7 @@ export namespace ygopro {
}
}
}
}
export
class
CtosGameMsgResponse
extends
pb_1
.
Message
{
export
class
CtosGameMsgResponse
extends
pb_1
.
Message
{
#
one_of_decls
:
number
[][]
=
[[
1
,
2
]];
#
one_of_decls
:
number
[][]
=
[[
1
,
2
,
3
]];
constructor
(
constructor
(
data
?:
data
?:
|
any
[]
|
any
[]
...
@@ -2420,10 +2420,17 @@ export namespace ygopro {
...
@@ -2420,10 +2420,17 @@ export namespace ygopro {
|
{
|
{
select_idle_cmd
?:
CtosGameMsgResponse
.
SelectIdleCmdResponse
;
select_idle_cmd
?:
CtosGameMsgResponse
.
SelectIdleCmdResponse
;
select_place
?:
never
;
select_place
?:
never
;
select_card
?:
never
;
}
}
|
{
|
{
select_idle_cmd
?:
never
;
select_idle_cmd
?:
never
;
select_place
?:
CtosGameMsgResponse
.
SelectPlaceResponse
;
select_place
?:
CtosGameMsgResponse
.
SelectPlaceResponse
;
select_card
?:
never
;
}
|
{
select_idle_cmd
?:
never
;
select_place
?:
never
;
select_card
?:
CtosGameMsgResponse
.
SelectCardResponse
;
}
}
))
))
)
{
)
{
...
@@ -2443,6 +2450,9 @@ export namespace ygopro {
...
@@ -2443,6 +2450,9 @@ export namespace ygopro {
if
(
"
select_place
"
in
data
&&
data
.
select_place
!=
undefined
)
{
if
(
"
select_place
"
in
data
&&
data
.
select_place
!=
undefined
)
{
this
.
select_place
=
data
.
select_place
;
this
.
select_place
=
data
.
select_place
;
}
}
if
(
"
select_card
"
in
data
&&
data
.
select_card
!=
undefined
)
{
this
.
select_card
=
data
.
select_card
;
}
}
}
}
}
get
select_idle_cmd
()
{
get
select_idle_cmd
()
{
...
@@ -2471,15 +2481,33 @@ export namespace ygopro {
...
@@ -2471,15 +2481,33 @@ export namespace ygopro {
get
has_select_place
()
{
get
has_select_place
()
{
return
pb_1
.
Message
.
getField
(
this
,
2
)
!=
null
;
return
pb_1
.
Message
.
getField
(
this
,
2
)
!=
null
;
}
}
get
select_card
()
{
return
pb_1
.
Message
.
getWrapperField
(
this
,
CtosGameMsgResponse
.
SelectCardResponse
,
3
)
as
CtosGameMsgResponse
.
SelectCardResponse
;
}
set
select_card
(
value
:
CtosGameMsgResponse
.
SelectCardResponse
)
{
pb_1
.
Message
.
setOneofWrapperField
(
this
,
3
,
this
.
#
one_of_decls
[
0
],
value
);
}
get
has_select_card
()
{
return
pb_1
.
Message
.
getField
(
this
,
3
)
!=
null
;
}
get
gameMsgResponse
()
{
get
gameMsgResponse
()
{
const
cases
:
{
const
cases
:
{
[
index
:
number
]:
"
none
"
|
"
select_idle_cmd
"
|
"
select_place
"
;
[
index
:
number
]:
|
"
none
"
|
"
select_idle_cmd
"
|
"
select_place
"
|
"
select_card
"
;
}
=
{
}
=
{
0
:
"
none
"
,
0
:
"
none
"
,
1
:
"
select_idle_cmd
"
,
1
:
"
select_idle_cmd
"
,
2
:
"
select_place
"
,
2
:
"
select_place
"
,
3
:
"
select_card
"
,
};
};
return
cases
[
pb_1
.
Message
.
computeOneofCase
(
this
,
[
1
,
2
])];
return
cases
[
pb_1
.
Message
.
computeOneofCase
(
this
,
[
1
,
2
,
3
])];
}
}
static
fromObject
(
data
:
{
static
fromObject
(
data
:
{
select_idle_cmd
?:
ReturnType
<
select_idle_cmd
?:
ReturnType
<
...
@@ -2488,6 +2516,9 @@ export namespace ygopro {
...
@@ -2488,6 +2516,9 @@ export namespace ygopro {
select_place
?:
ReturnType
<
select_place
?:
ReturnType
<
typeof
CtosGameMsgResponse
.
SelectPlaceResponse
.
prototype
.
toObject
typeof
CtosGameMsgResponse
.
SelectPlaceResponse
.
prototype
.
toObject
>
;
>
;
select_card
?:
ReturnType
<
typeof
CtosGameMsgResponse
.
SelectCardResponse
.
prototype
.
toObject
>
;
}):
CtosGameMsgResponse
{
}):
CtosGameMsgResponse
{
const
message
=
new
CtosGameMsgResponse
({});
const
message
=
new
CtosGameMsgResponse
({});
if
(
data
.
select_idle_cmd
!=
null
)
{
if
(
data
.
select_idle_cmd
!=
null
)
{
...
@@ -2500,6 +2531,11 @@ export namespace ygopro {
...
@@ -2500,6 +2531,11 @@ export namespace ygopro {
message
.
select_place
=
message
.
select_place
=
CtosGameMsgResponse
.
SelectPlaceResponse
.
fromObject
(
data
.
select_place
);
CtosGameMsgResponse
.
SelectPlaceResponse
.
fromObject
(
data
.
select_place
);
}
}
if
(
data
.
select_card
!=
null
)
{
message
.
select_card
=
CtosGameMsgResponse
.
SelectCardResponse
.
fromObject
(
data
.
select_card
);
}
return
message
;
return
message
;
}
}
toObject
()
{
toObject
()
{
...
@@ -2510,6 +2546,9 @@ export namespace ygopro {
...
@@ -2510,6 +2546,9 @@ export namespace ygopro {
select_place
?:
ReturnType
<
select_place
?:
ReturnType
<
typeof
CtosGameMsgResponse
.
SelectPlaceResponse
.
prototype
.
toObject
typeof
CtosGameMsgResponse
.
SelectPlaceResponse
.
prototype
.
toObject
>
;
>
;
select_card
?:
ReturnType
<
typeof
CtosGameMsgResponse
.
SelectCardResponse
.
prototype
.
toObject
>
;
}
=
{};
}
=
{};
if
(
this
.
select_idle_cmd
!=
null
)
{
if
(
this
.
select_idle_cmd
!=
null
)
{
data
.
select_idle_cmd
=
this
.
select_idle_cmd
.
toObject
();
data
.
select_idle_cmd
=
this
.
select_idle_cmd
.
toObject
();
...
@@ -2517,6 +2556,9 @@ export namespace ygopro {
...
@@ -2517,6 +2556,9 @@ export namespace ygopro {
if
(
this
.
select_place
!=
null
)
{
if
(
this
.
select_place
!=
null
)
{
data
.
select_place
=
this
.
select_place
.
toObject
();
data
.
select_place
=
this
.
select_place
.
toObject
();
}
}
if
(
this
.
select_card
!=
null
)
{
data
.
select_card
=
this
.
select_card
.
toObject
();
}
return
data
;
return
data
;
}
}
serialize
():
Uint8Array
;
serialize
():
Uint8Array
;
...
@@ -2531,6 +2573,10 @@ export namespace ygopro {
...
@@ -2531,6 +2573,10 @@ export namespace ygopro {
writer
.
writeMessage
(
2
,
this
.
select_place
,
()
=>
writer
.
writeMessage
(
2
,
this
.
select_place
,
()
=>
this
.
select_place
.
serialize
(
writer
)
this
.
select_place
.
serialize
(
writer
)
);
);
if
(
this
.
has_select_card
)
writer
.
writeMessage
(
3
,
this
.
select_card
,
()
=>
this
.
select_card
.
serialize
(
writer
)
);
if
(
!
w
)
return
writer
.
getResultBuffer
();
if
(
!
w
)
return
writer
.
getResultBuffer
();
}
}
static
deserialize
(
static
deserialize
(
...
@@ -2560,6 +2606,14 @@ export namespace ygopro {
...
@@ -2560,6 +2606,14 @@ export namespace ygopro {
CtosGameMsgResponse
.
SelectPlaceResponse
.
deserialize
(
reader
))
CtosGameMsgResponse
.
SelectPlaceResponse
.
deserialize
(
reader
))
);
);
break
;
break
;
case
3
:
reader
.
readMessage
(
message
.
select_card
,
()
=>
(
message
.
select_card
=
CtosGameMsgResponse
.
SelectCardResponse
.
deserialize
(
reader
))
);
break
;
default
:
default
:
reader
.
skipField
();
reader
.
skipField
();
}
}
...
@@ -2784,6 +2838,89 @@ export namespace ygopro {
...
@@ -2784,6 +2838,89 @@ export namespace ygopro {
return
SelectPlaceResponse
.
deserialize
(
bytes
);
return
SelectPlaceResponse
.
deserialize
(
bytes
);
}
}
}
}
export
class
SelectCardResponse
extends
pb_1
.
Message
{
#
one_of_decls
:
number
[][]
=
[];
constructor
(
data
?:
|
any
[]
|
{
selected_ptrs
?:
number
[];
}
)
{
super
();
pb_1
.
Message
.
initialize
(
this
,
Array
.
isArray
(
data
)
?
data
:
[],
0
,
-
1
,
[
1
],
this
.
#
one_of_decls
);
if
(
!
Array
.
isArray
(
data
)
&&
typeof
data
==
"
object
"
)
{
if
(
"
selected_ptrs
"
in
data
&&
data
.
selected_ptrs
!=
undefined
)
{
this
.
selected_ptrs
=
data
.
selected_ptrs
;
}
}
}
get
selected_ptrs
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
1
,
[])
as
number
[];
}
set
selected_ptrs
(
value
:
number
[])
{
pb_1
.
Message
.
setField
(
this
,
1
,
value
);
}
static
fromObject
(
data
:
{
selected_ptrs
?:
number
[];
}):
SelectCardResponse
{
const
message
=
new
SelectCardResponse
({});
if
(
data
.
selected_ptrs
!=
null
)
{
message
.
selected_ptrs
=
data
.
selected_ptrs
;
}
return
message
;
}
toObject
()
{
const
data
:
{
selected_ptrs
?:
number
[];
}
=
{};
if
(
this
.
selected_ptrs
!=
null
)
{
data
.
selected_ptrs
=
this
.
selected_ptrs
;
}
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
.
selected_ptrs
.
length
)
writer
.
writePackedInt32
(
1
,
this
.
selected_ptrs
);
if
(
!
w
)
return
writer
.
getResultBuffer
();
}
static
deserialize
(
bytes
:
Uint8Array
|
pb_1
.
BinaryReader
):
SelectCardResponse
{
const
reader
=
bytes
instanceof
pb_1
.
BinaryReader
?
bytes
:
new
pb_1
.
BinaryReader
(
bytes
),
message
=
new
SelectCardResponse
();
while
(
reader
.
nextField
())
{
if
(
reader
.
isEndGroup
())
break
;
switch
(
reader
.
getFieldNumber
())
{
case
1
:
message
.
selected_ptrs
=
reader
.
readPackedInt32
();
break
;
default
:
reader
.
skipField
();
}
}
return
message
;
}
serializeBinary
():
Uint8Array
{
return
this
.
serialize
();
}
static
deserializeBinary
(
bytes
:
Uint8Array
):
SelectCardResponse
{
return
SelectCardResponse
.
deserialize
(
bytes
);
}
}
}
}
export
class
StocJoinGame
extends
pb_1
.
Message
{
export
class
StocJoinGame
extends
pb_1
.
Message
{
#
one_of_decls
:
number
[][]
=
[];
#
one_of_decls
:
number
[][]
=
[];
...
@@ -4163,7 +4300,7 @@ export namespace ygopro {
...
@@ -4163,7 +4300,7 @@ export namespace ygopro {
}
}
}
}
export
class
StocGameMessage
extends
pb_1
.
Message
{
export
class
StocGameMessage
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
[]
...
@@ -4177,6 +4314,7 @@ export namespace ygopro {
...
@@ -4177,6 +4314,7 @@ export namespace ygopro {
select_idle_cmd
?:
never
;
select_idle_cmd
?:
never
;
select_place
?:
never
;
select_place
?:
never
;
move
?:
never
;
move
?:
never
;
select_card
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -4187,6 +4325,7 @@ export namespace ygopro {
...
@@ -4187,6 +4325,7 @@ export namespace ygopro {
select_idle_cmd
?:
never
;
select_idle_cmd
?:
never
;
select_place
?:
never
;
select_place
?:
never
;
move
?:
never
;
move
?:
never
;
select_card
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -4197,6 +4336,7 @@ export namespace ygopro {
...
@@ -4197,6 +4336,7 @@ export namespace ygopro {
select_idle_cmd
?:
never
;
select_idle_cmd
?:
never
;
select_place
?:
never
;
select_place
?:
never
;
move
?:
never
;
move
?:
never
;
select_card
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -4207,6 +4347,7 @@ export namespace ygopro {
...
@@ -4207,6 +4347,7 @@ export namespace ygopro {
select_idle_cmd
?:
never
;
select_idle_cmd
?:
never
;
select_place
?:
never
;
select_place
?:
never
;
move
?:
never
;
move
?:
never
;
select_card
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -4217,6 +4358,7 @@ export namespace ygopro {
...
@@ -4217,6 +4358,7 @@ export namespace ygopro {
select_idle_cmd
?:
never
;
select_idle_cmd
?:
never
;
select_place
?:
never
;
select_place
?:
never
;
move
?:
never
;
move
?:
never
;
select_card
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -4227,6 +4369,7 @@ export namespace ygopro {
...
@@ -4227,6 +4369,7 @@ export namespace ygopro {
select_idle_cmd
?:
StocGameMessage
.
MsgSelectIdleCmd
;
select_idle_cmd
?:
StocGameMessage
.
MsgSelectIdleCmd
;
select_place
?:
never
;
select_place
?:
never
;
move
?:
never
;
move
?:
never
;
select_card
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -4237,6 +4380,7 @@ export namespace ygopro {
...
@@ -4237,6 +4380,7 @@ export namespace ygopro {
select_idle_cmd
?:
never
;
select_idle_cmd
?:
never
;
select_place
?:
StocGameMessage
.
MsgSelectPlace
;
select_place
?:
StocGameMessage
.
MsgSelectPlace
;
move
?:
never
;
move
?:
never
;
select_card
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -4247,6 +4391,18 @@ export namespace ygopro {
...
@@ -4247,6 +4391,18 @@ export namespace ygopro {
select_idle_cmd
?:
never
;
select_idle_cmd
?:
never
;
select_place
?:
never
;
select_place
?:
never
;
move
?:
StocGameMessage
.
MsgMove
;
move
?:
StocGameMessage
.
MsgMove
;
select_card
?:
never
;
}
|
{
start
?:
never
;
draw
?:
never
;
new_turn
?:
never
;
new_phase
?:
never
;
hint
?:
never
;
select_idle_cmd
?:
never
;
select_place
?:
never
;
move
?:
never
;
select_card
?:
StocGameMessage
.
MsgSelectCard
;
}
}
))
))
)
{
)
{
...
@@ -4284,6 +4440,9 @@ export namespace ygopro {
...
@@ -4284,6 +4440,9 @@ export namespace ygopro {
if
(
"
move
"
in
data
&&
data
.
move
!=
undefined
)
{
if
(
"
move
"
in
data
&&
data
.
move
!=
undefined
)
{
this
.
move
=
data
.
move
;
this
.
move
=
data
.
move
;
}
}
if
(
"
select_card
"
in
data
&&
data
.
select_card
!=
undefined
)
{
this
.
select_card
=
data
.
select_card
;
}
}
}
}
}
get
start
()
{
get
start
()
{
...
@@ -4390,6 +4549,19 @@ export namespace ygopro {
...
@@ -4390,6 +4549,19 @@ export namespace ygopro {
get
has_move
()
{
get
has_move
()
{
return
pb_1
.
Message
.
getField
(
this
,
8
)
!=
null
;
return
pb_1
.
Message
.
getField
(
this
,
8
)
!=
null
;
}
}
get
select_card
()
{
return
pb_1
.
Message
.
getWrapperField
(
this
,
StocGameMessage
.
MsgSelectCard
,
9
)
as
StocGameMessage
.
MsgSelectCard
;
}
set
select_card
(
value
:
StocGameMessage
.
MsgSelectCard
)
{
pb_1
.
Message
.
setOneofWrapperField
(
this
,
9
,
this
.
#
one_of_decls
[
0
],
value
);
}
get
has_select_card
()
{
return
pb_1
.
Message
.
getField
(
this
,
9
)
!=
null
;
}
get
gameMsg
()
{
get
gameMsg
()
{
const
cases
:
{
const
cases
:
{
[
index
:
number
]:
[
index
:
number
]:
...
@@ -4401,7 +4573,8 @@ export namespace ygopro {
...
@@ -4401,7 +4573,8 @@ export namespace ygopro {
|
"
hint
"
|
"
hint
"
|
"
select_idle_cmd
"
|
"
select_idle_cmd
"
|
"
select_place
"
|
"
select_place
"
|
"
move
"
;
|
"
move
"
|
"
select_card
"
;
}
=
{
}
=
{
0
:
"
none
"
,
0
:
"
none
"
,
1
:
"
start
"
,
1
:
"
start
"
,
...
@@ -4412,9 +4585,10 @@ export namespace ygopro {
...
@@ -4412,9 +4585,10 @@ export namespace ygopro {
6
:
"
select_idle_cmd
"
,
6
:
"
select_idle_cmd
"
,
7
:
"
select_place
"
,
7
:
"
select_place
"
,
8
:
"
move
"
,
8
:
"
move
"
,
9
:
"
select_card
"
,
};
};
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
:
{
...
@@ -4434,6 +4608,9 @@ export namespace ygopro {
...
@@ -4434,6 +4608,9 @@ export namespace ygopro {
typeof
StocGameMessage
.
MsgSelectPlace
.
prototype
.
toObject
typeof
StocGameMessage
.
MsgSelectPlace
.
prototype
.
toObject
>
;
>
;
move
?:
ReturnType
<
typeof
StocGameMessage
.
MsgMove
.
prototype
.
toObject
>
;
move
?:
ReturnType
<
typeof
StocGameMessage
.
MsgMove
.
prototype
.
toObject
>
;
select_card
?:
ReturnType
<
typeof
StocGameMessage
.
MsgSelectCard
.
prototype
.
toObject
>
;
}):
StocGameMessage
{
}):
StocGameMessage
{
const
message
=
new
StocGameMessage
({});
const
message
=
new
StocGameMessage
({});
if
(
data
.
start
!=
null
)
{
if
(
data
.
start
!=
null
)
{
...
@@ -4466,6 +4643,11 @@ export namespace ygopro {
...
@@ -4466,6 +4643,11 @@ export namespace ygopro {
if
(
data
.
move
!=
null
)
{
if
(
data
.
move
!=
null
)
{
message
.
move
=
StocGameMessage
.
MsgMove
.
fromObject
(
data
.
move
);
message
.
move
=
StocGameMessage
.
MsgMove
.
fromObject
(
data
.
move
);
}
}
if
(
data
.
select_card
!=
null
)
{
message
.
select_card
=
StocGameMessage
.
MsgSelectCard
.
fromObject
(
data
.
select_card
);
}
return
message
;
return
message
;
}
}
toObject
()
{
toObject
()
{
...
@@ -4486,6 +4668,9 @@ export namespace ygopro {
...
@@ -4486,6 +4668,9 @@ export namespace ygopro {
typeof
StocGameMessage
.
MsgSelectPlace
.
prototype
.
toObject
typeof
StocGameMessage
.
MsgSelectPlace
.
prototype
.
toObject
>
;
>
;
move
?:
ReturnType
<
typeof
StocGameMessage
.
MsgMove
.
prototype
.
toObject
>
;
move
?:
ReturnType
<
typeof
StocGameMessage
.
MsgMove
.
prototype
.
toObject
>
;
select_card
?:
ReturnType
<
typeof
StocGameMessage
.
MsgSelectCard
.
prototype
.
toObject
>
;
}
=
{};
}
=
{};
if
(
this
.
start
!=
null
)
{
if
(
this
.
start
!=
null
)
{
data
.
start
=
this
.
start
.
toObject
();
data
.
start
=
this
.
start
.
toObject
();
...
@@ -4511,6 +4696,9 @@ export namespace ygopro {
...
@@ -4511,6 +4696,9 @@ export namespace ygopro {
if
(
this
.
move
!=
null
)
{
if
(
this
.
move
!=
null
)
{
data
.
move
=
this
.
move
.
toObject
();
data
.
move
=
this
.
move
.
toObject
();
}
}
if
(
this
.
select_card
!=
null
)
{
data
.
select_card
=
this
.
select_card
.
toObject
();
}
return
data
;
return
data
;
}
}
serialize
():
Uint8Array
;
serialize
():
Uint8Array
;
...
@@ -4541,6 +4729,10 @@ export namespace ygopro {
...
@@ -4541,6 +4729,10 @@ export namespace ygopro {
);
);
if
(
this
.
has_move
)
if
(
this
.
has_move
)
writer
.
writeMessage
(
8
,
this
.
move
,
()
=>
this
.
move
.
serialize
(
writer
));
writer
.
writeMessage
(
8
,
this
.
move
,
()
=>
this
.
move
.
serialize
(
writer
));
if
(
this
.
has_select_card
)
writer
.
writeMessage
(
9
,
this
.
select_card
,
()
=>
this
.
select_card
.
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
{
...
@@ -4609,6 +4801,14 @@ export namespace ygopro {
...
@@ -4609,6 +4801,14 @@ export namespace ygopro {
()
=>
(
message
.
move
=
StocGameMessage
.
MsgMove
.
deserialize
(
reader
))
()
=>
(
message
.
move
=
StocGameMessage
.
MsgMove
.
deserialize
(
reader
))
);
);
break
;
break
;
case
9
:
reader
.
readMessage
(
message
.
select_card
,
()
=>
(
message
.
select_card
=
StocGameMessage
.
MsgSelectCard
.
deserialize
(
reader
))
);
break
;
default
:
default
:
reader
.
skipField
();
reader
.
skipField
();
}
}
...
@@ -6240,5 +6440,342 @@ export namespace ygopro {
...
@@ -6240,5 +6440,342 @@ export namespace ygopro {
return
MsgMove
.
deserialize
(
bytes
);
return
MsgMove
.
deserialize
(
bytes
);
}
}
}
}
export
class
MsgSelectCard
extends
pb_1
.
Message
{
#
one_of_decls
:
number
[][]
=
[];
constructor
(
data
?:
|
any
[]
|
{
player
?:
number
;
cancelable
?:
boolean
;
min
?:
number
;
max
?:
number
;
cards
?:
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
[];
}
)
{
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
(
"
cards
"
in
data
&&
data
.
cards
!=
undefined
)
{
this
.
cards
=
data
.
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
cards
()
{
return
pb_1
.
Message
.
getRepeatedWrapperField
(
this
,
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
,
5
)
as
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
[];
}
set
cards
(
value
:
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
[])
{
pb_1
.
Message
.
setRepeatedWrapperField
(
this
,
5
,
value
);
}
static
fromObject
(
data
:
{
player
?:
number
;
cancelable
?:
boolean
;
min
?:
number
;
max
?:
number
;
cards
?:
ReturnType
<
typeof
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
.
prototype
.
toObject
>
[];
}):
MsgSelectCard
{
const
message
=
new
MsgSelectCard
({});
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
.
cards
!=
null
)
{
message
.
cards
=
data
.
cards
.
map
((
item
)
=>
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
.
fromObject
(
item
)
);
}
return
message
;
}
toObject
()
{
const
data
:
{
player
?:
number
;
cancelable
?:
boolean
;
min
?:
number
;
max
?:
number
;
cards
?:
ReturnType
<
typeof
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
.
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
.
cards
!=
null
)
{
data
.
cards
=
this
.
cards
.
map
(
(
item
:
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
)
=>
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
.
cards
.
length
)
writer
.
writeRepeatedMessage
(
5
,
this
.
cards
,
(
item
:
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
)
=>
item
.
serialize
(
writer
)
);
if
(
!
w
)
return
writer
.
getResultBuffer
();
}
static
deserialize
(
bytes
:
Uint8Array
|
pb_1
.
BinaryReader
):
MsgSelectCard
{
const
reader
=
bytes
instanceof
pb_1
.
BinaryReader
?
bytes
:
new
pb_1
.
BinaryReader
(
bytes
),
message
=
new
MsgSelectCard
();
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
.
cards
,
()
=>
pb_1
.
Message
.
addToRepeatedWrapperField
(
message
,
5
,
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
.
deserialize
(
reader
),
StocGameMessage
.
MsgSelectCard
.
SelectAbleCard
)
);
break
;
default
:
reader
.
skipField
();
}
}
return
message
;
}
serializeBinary
():
Uint8Array
{
return
this
.
serialize
();
}
static
deserializeBinary
(
bytes
:
Uint8Array
):
MsgSelectCard
{
return
MsgSelectCard
.
deserialize
(
bytes
);
}
}
export
namespace
MsgSelectCard
{
export
class
SelectAbleCard
extends
pb_1
.
Message
{
#
one_of_decls
:
number
[][]
=
[];
constructor
(
data
?:
|
any
[]
|
{
code
?:
number
;
location
?:
CardLocation
;
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
(
"
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
response
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
3
,
0
)
as
number
;
}
set
response
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
3
,
value
);
}
static
fromObject
(
data
:
{
code
?:
number
;
location
?:
ReturnType
<
typeof
CardLocation
.
prototype
.
toObject
>
;
response
?:
number
;
}):
SelectAbleCard
{
const
message
=
new
SelectAbleCard
({});
if
(
data
.
code
!=
null
)
{
message
.
code
=
data
.
code
;
}
if
(
data
.
location
!=
null
)
{
message
.
location
=
CardLocation
.
fromObject
(
data
.
location
);
}
if
(
data
.
response
!=
null
)
{
message
.
response
=
data
.
response
;
}
return
message
;
}
toObject
()
{
const
data
:
{
code
?:
number
;
location
?:
ReturnType
<
typeof
CardLocation
.
prototype
.
toObject
>
;
response
?:
number
;
}
=
{};
if
(
this
.
code
!=
null
)
{
data
.
code
=
this
.
code
;
}
if
(
this
.
location
!=
null
)
{
data
.
location
=
this
.
location
.
toObject
();
}
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
.
response
!=
0
)
writer
.
writeInt32
(
3
,
this
.
response
);
if
(
!
w
)
return
writer
.
getResultBuffer
();
}
static
deserialize
(
bytes
:
Uint8Array
|
pb_1
.
BinaryReader
):
SelectAbleCard
{
const
reader
=
bytes
instanceof
pb_1
.
BinaryReader
?
bytes
:
new
pb_1
.
BinaryReader
(
bytes
),
message
=
new
SelectAbleCard
();
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
.
response
=
reader
.
readInt32
();
break
;
default
:
reader
.
skipField
();
}
}
return
message
;
}
serializeBinary
():
Uint8Array
{
return
this
.
serialize
();
}
static
deserializeBinary
(
bytes
:
Uint8Array
):
SelectAbleCard
{
return
SelectAbleCard
.
deserialize
(
bytes
);
}
}
}
}
}
}
}
src/api/ocgcore/ocgAdapter/bufferIO.ts
View file @
6811be94
import
{
ygopro
}
from
"
../idl/ocgcore
"
;
import
{
ygopro
}
from
"
../idl/ocgcore
"
;
import
{
numberToCardPosition
,
numberToCardZone
}
from
"
./util
"
;
const
OFFSET_UINT8
=
1
;
const
OFFSET_UINT8
=
1
;
const
OFFSET_INT8
=
1
;
const
OFFSET_INT8
=
1
;
...
@@ -62,6 +63,30 @@ export class BufferReader {
...
@@ -62,6 +63,30 @@ export class BufferReader {
return
cardInfo
;
return
cardInfo
;
}
}
readCardLocation
(
overlay
?:
boolean
):
ygopro
.
CardLocation
{
const
controler
=
this
.
readUint8
();
const
location
=
this
.
readUint8
();
const
sequence
=
this
.
readUint8
();
const
ss
=
this
.
readUint8
();
const
cardLocation
=
new
ygopro
.
CardLocation
({
controler
,
location
:
numberToCardZone
(
location
),
sequence
,
});
if
(
overlay
&&
overlay
)
{
cardLocation
.
overlay_sequence
=
ss
;
}
else
{
const
position
=
numberToCardPosition
(
ss
);
if
(
position
)
{
cardLocation
.
position
=
position
;
}
}
return
cardLocation
;
}
}
}
export
class
BufferWriter
{
export
class
BufferWriter
{
...
...
src/api/ocgcore/ocgAdapter/ctos/ctosGameMsgResponse/mod.ts
View file @
6811be94
...
@@ -3,6 +3,7 @@ import { YgoProPacket } from "../../packet";
...
@@ -3,6 +3,7 @@ import { YgoProPacket } from "../../packet";
import
{
CTOS_RESPONSE
}
from
"
../../protoDecl
"
;
import
{
CTOS_RESPONSE
}
from
"
../../protoDecl
"
;
import
adaptSelectIdleCmdResponse
from
"
./selectIdleCmd
"
;
import
adaptSelectIdleCmdResponse
from
"
./selectIdleCmd
"
;
import
adaptSelectPlaceResponse
from
"
./selectPlace
"
;
import
adaptSelectPlaceResponse
from
"
./selectPlace
"
;
import
adaptSelectCardResponse
from
"
./selectCard
"
;
/*
/*
* CTOS CTOS_RESPONSE
* CTOS CTOS_RESPONSE
...
@@ -28,6 +29,11 @@ export default class CtosResponsePacket extends YgoProPacket {
...
@@ -28,6 +29,11 @@ export default class CtosResponsePacket extends YgoProPacket {
break
;
break
;
}
}
case
"
select_card
"
:
{
extraData
=
adaptSelectCardResponse
(
response
.
select_card
);
break
;
}
default
:
{
default
:
{
break
;
break
;
}
}
...
...
src/api/ocgcore/ocgAdapter/ctos/ctosGameMsgResponse/selectCard.ts
0 → 100644
View file @
6811be94
import
{
ygopro
}
from
"
../../../idl/ocgcore
"
;
import
{
BufferWriter
}
from
"
../../bufferIO
"
;
export
default
(
response
:
ygopro
.
CtosGameMsgResponse
.
SelectCardResponse
)
=>
{
const
array
=
new
Uint8Array
(
1
+
response
.
selected_ptrs
.
length
);
const
writer
=
new
BufferWriter
(
array
,
true
);
writer
.
writeUint8
(
response
.
selected_ptrs
.
length
);
for
(
const
ptr
of
response
.
selected_ptrs
)
{
writer
.
writeUint8
(
ptr
);
}
return
array
;
};
src/api/ocgcore/ocgAdapter/protoDecl.ts
View file @
6811be94
...
@@ -34,3 +34,4 @@ export const MSG_HINT = 2;
...
@@ -34,3 +34,4 @@ export const MSG_HINT = 2;
export
const
MSG_SELECT_IDLE_CMD
=
11
;
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
;
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
View file @
6811be94
...
@@ -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
MsgMoveAdapter
from
"
./move
"
;
import
MsgMoveAdapter
from
"
./move
"
;
import
MsgSelectCardAdapter
from
"
./selectCard
"
;
/*
/*
* STOC GameMsg
* STOC GameMsg
...
@@ -79,6 +80,11 @@ export default class GameMsgAdapter implements StocAdapter {
...
@@ -79,6 +80,11 @@ export default class GameMsgAdapter implements StocAdapter {
break
;
break
;
}
}
case
GAME_MSG
.
MSG_SELECT_CARD
:
{
gameMsg
.
select_card
=
MsgSelectCardAdapter
(
gameData
);
break
;
}
default
:
{
default
:
{
console
.
log
(
"
Unhandled GameMessage function=
"
,
func
);
console
.
log
(
"
Unhandled GameMessage function=
"
,
func
);
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/move.ts
View file @
6811be94
import
{
ygopro
}
from
"
../../../idl/ocgcore
"
;
import
{
ygopro
}
from
"
../../../idl/ocgcore
"
;
import
{
BufferReader
}
from
"
../../bufferIO
"
;
import
{
BufferReader
}
from
"
../../bufferIO
"
;
import
{
cardZoneToNumber
,
numberToCardPosition
,
numberToCardZone
,
}
from
"
../../util
"
;
import
MsgMove
=
ygopro
.
StocGameMessage
.
MsgMove
;
import
MsgMove
=
ygopro
.
StocGameMessage
.
MsgMove
;
/*
/*
...
@@ -19,32 +14,8 @@ export default (data: Uint8Array) => {
...
@@ -19,32 +14,8 @@ export default (data: Uint8Array) => {
const
code
=
reader
.
readUint32
();
const
code
=
reader
.
readUint32
();
const
readCardLocation
=
()
=>
{
const
fromLocation
=
reader
.
readCardLocation
();
const
controler
=
reader
.
readUint8
();
const
toLocation
=
reader
.
readCardLocation
();
const
location
=
reader
.
readUint8
();
const
sequence
=
reader
.
readUint8
();
const
ss
=
reader
.
readUint8
();
const
cardLocation
=
new
ygopro
.
CardLocation
({
controler
,
location
:
numberToCardZone
(
location
),
sequence
,
});
if
(
location
!=
cardZoneToNumber
(
ygopro
.
CardZone
.
OVERLAY
))
{
const
position
=
numberToCardPosition
(
ss
);
if
(
position
)
{
cardLocation
.
position
=
position
;
}
}
else
{
cardLocation
.
overlay_sequence
=
ss
;
}
return
cardLocation
;
};
const
fromLocation
=
readCardLocation
();
const
toLocation
=
readCardLocation
();
return
new
MsgMove
({
return
new
MsgMove
({
code
,
code
,
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/selectCard.ts
0 → 100644
View file @
6811be94
import
{
ygopro
}
from
"
../../../idl/ocgcore
"
;
import
{
BufferReader
}
from
"
../../bufferIO
"
;
import
MsgSelectCard
=
ygopro
.
StocGameMessage
.
MsgSelectCard
;
/*
* Msg Select Card
*
* @param - see: https://code.mycard.moe/mycard/neos-protobuf/-/blob/main/idl/ocgcore.neos-protobuf
* @usage - 玩家可选择的卡牌
* */
export
default
(
data
:
Uint8Array
)
=>
{
const
reader
=
new
BufferReader
(
data
,
true
);
const
player
=
reader
.
readUint8
();
const
cancelable
=
reader
.
readUint8
()
!=
0
;
const
min
=
reader
.
readUint8
();
const
max
=
reader
.
readUint8
();
const
count
=
reader
.
readUint8
();
const
msg
=
new
MsgSelectCard
({
player
,
cancelable
,
min
,
max
});
for
(
let
i
=
0
;
i
<
count
;
i
++
)
{
const
code
=
reader
.
readUint32
();
const
location
=
reader
.
readCardLocation
();
msg
.
cards
.
push
(
new
MsgSelectCard
.
SelectAbleCard
({
code
,
location
,
response
:
i
})
);
}
return
msg
;
};
src/api/ocgcore/ocgAdapter/util.ts
View file @
6811be94
...
@@ -157,6 +157,7 @@ export function numberToCardZone(
...
@@ -157,6 +157,7 @@ export function numberToCardZone(
}
}
}
}
// TODO: 需要考虑超量叠加情况下的位运算
export
function
numberToCardPosition
(
export
function
numberToCardPosition
(
position
:
number
position
:
number
):
ygopro
.
CardPosition
|
undefined
{
):
ygopro
.
CardPosition
|
undefined
{
...
...
src/api/ocgcore/ocgHelper.ts
View file @
6811be94
...
@@ -150,3 +150,16 @@ export function sendSelectPlaceResponse(value: {
...
@@ -150,3 +150,16 @@ export function sendSelectPlaceResponse(value: {
socketMiddleWare
({
cmd
:
socketCmd
.
SEND
,
payload
});
socketMiddleWare
({
cmd
:
socketCmd
.
SEND
,
payload
});
}
}
export
function
sendSelectCardResponse
(
value
:
number
[])
{
const
response
=
new
ygopro
.
YgoCtosMsg
({
ctos_response
:
new
ygopro
.
CtosGameMsgResponse
({
select_card
:
new
ygopro
.
CtosGameMsgResponse
.
SelectCardResponse
({
selected_ptrs
:
value
,
}),
}),
});
const
payload
=
new
GameMsgResponse
(
response
).
serialize
();
socketMiddleWare
({
cmd
:
socketCmd
.
SEND
,
payload
});
}
src/service/duel/gameMsg.ts
View file @
6811be94
...
@@ -8,6 +8,7 @@ import onMsgHint from "./hint";
...
@@ -8,6 +8,7 @@ import onMsgHint from "./hint";
import
onMsgSelectIdleCmd
from
"
./selectIdleCmd
"
;
import
onMsgSelectIdleCmd
from
"
./selectIdleCmd
"
;
import
onMsgSelectPlace
from
"
./selectPlace
"
;
import
onMsgSelectPlace
from
"
./selectPlace
"
;
import
onMsgMove
from
"
./move
"
;
import
onMsgMove
from
"
./move
"
;
import
onMsgSelectCard
from
"
./selectCard
"
;
export
default
function
handleGameMsg
(
pb
:
ygopro
.
YgoStocMsg
)
{
export
default
function
handleGameMsg
(
pb
:
ygopro
.
YgoStocMsg
)
{
const
dispatch
=
store
.
dispatch
;
const
dispatch
=
store
.
dispatch
;
...
@@ -70,6 +71,13 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
...
@@ -70,6 +71,13 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
break
;
break
;
}
}
case
"
select_card
"
:
{
const
selectCard
=
msg
.
select_card
;
onMsgSelectCard
(
selectCard
,
dispatch
);
break
;
}
default
:
{
default
:
{
break
;
break
;
}
}
...
...
src/service/duel/selectCard.ts
0 → 100644
View file @
6811be94
import
{
ygopro
}
from
"
../../api/ocgcore/idl/ocgcore
"
;
import
{
AppDispatch
}
from
"
../../store
"
;
import
MsgSelectCard
=
ygopro
.
StocGameMessage
.
MsgSelectCard
;
export
default
(
selectCard
:
MsgSelectCard
,
dispatch
:
AppDispatch
)
=>
{
console
.
log
(
selectCard
);
// TODO
};
src/ui/Duel/cardListModal.tsx
View file @
6811be94
...
@@ -34,7 +34,6 @@ const CardListModal = () => {
...
@@ -34,7 +34,6 @@ const CardListModal = () => {
cover=
{
<
img
alt=
{
item
.
name
}
src=
{
item
.
imgUrl
}
/>
}
cover=
{
<
img
alt=
{
item
.
name
}
src=
{
item
.
imgUrl
}
/>
}
>
>
<
Meta
title=
{
item
.
name
}
/>
<
Meta
title=
{
item
.
name
}
/>
<
p
>
{
item
.
desc
}
</
p
>
</
Card
>
</
Card
>
}
}
>
>
...
...
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