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
0eb554ec
Commit
0eb554ec
authored
Mar 19, 2023
by
Chunchi Che
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat/reload_field' into 'main'
Feat/reload field See merge request
!148
parents
998fb4a9
1d44f99e
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1098 additions
and
7 deletions
+1098
-7
neos-protobuf
neos-protobuf
+1
-1
src/api/ocgcore/idl/ocgcore.ts
src/api/ocgcore/idl/ocgcore.ts
+798
-3
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/reloadField.ts
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/reloadField.ts
+157
-0
src/reducers/duel/commonSlice.ts
src/reducers/duel/commonSlice.ts
+86
-0
src/reducers/duel/generic.ts
src/reducers/duel/generic.ts
+31
-2
src/reducers/duel/mod.ts
src/reducers/duel/mod.ts
+3
-0
src/service/duel/gameMsg.ts
src/service/duel/gameMsg.ts
+6
-0
src/service/duel/reloadField.ts
src/service/duel/reloadField.ts
+8
-0
src/store.ts
src/store.ts
+1
-1
No files found.
neos-protobuf
@
4f6cdd7c
Subproject commit
96e06224838437a6cd0c985070f31ddedc08ad89
Subproject commit
4f6cdd7ccc3b11b39ff8aa649e423bcf401f7ad5
src/api/ocgcore/idl/ocgcore.ts
View file @
0eb554ec
...
@@ -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
,
21
,
22
,
23
,
24
,
],
],
];
];
constructor
(
constructor
(
...
@@ -5477,6 +5477,7 @@ export namespace ygopro {
...
@@ -5477,6 +5477,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5502,6 +5503,7 @@ export namespace ygopro {
...
@@ -5502,6 +5503,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5527,6 +5529,7 @@ export namespace ygopro {
...
@@ -5527,6 +5529,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5552,6 +5555,7 @@ export namespace ygopro {
...
@@ -5552,6 +5555,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5577,6 +5581,7 @@ export namespace ygopro {
...
@@ -5577,6 +5581,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5602,6 +5607,7 @@ export namespace ygopro {
...
@@ -5602,6 +5607,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5627,6 +5633,7 @@ export namespace ygopro {
...
@@ -5627,6 +5633,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5652,6 +5659,7 @@ export namespace ygopro {
...
@@ -5652,6 +5659,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5677,6 +5685,7 @@ export namespace ygopro {
...
@@ -5677,6 +5685,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5702,6 +5711,7 @@ export namespace ygopro {
...
@@ -5702,6 +5711,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5727,6 +5737,7 @@ export namespace ygopro {
...
@@ -5727,6 +5737,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5752,6 +5763,7 @@ export namespace ygopro {
...
@@ -5752,6 +5763,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5777,6 +5789,7 @@ export namespace ygopro {
...
@@ -5777,6 +5789,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5802,6 +5815,7 @@ export namespace ygopro {
...
@@ -5802,6 +5815,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5827,6 +5841,7 @@ export namespace ygopro {
...
@@ -5827,6 +5841,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5852,6 +5867,7 @@ export namespace ygopro {
...
@@ -5852,6 +5867,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5877,6 +5893,7 @@ export namespace ygopro {
...
@@ -5877,6 +5893,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5902,6 +5919,7 @@ export namespace ygopro {
...
@@ -5902,6 +5919,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5927,6 +5945,7 @@ export namespace ygopro {
...
@@ -5927,6 +5945,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5952,6 +5971,7 @@ export namespace ygopro {
...
@@ -5952,6 +5971,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -5977,6 +5997,7 @@ export namespace ygopro {
...
@@ -5977,6 +5997,7 @@ export namespace ygopro {
wait
?:
StocGameMessage
.
MsgWait
;
wait
?:
StocGameMessage
.
MsgWait
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -6002,6 +6023,7 @@ export namespace ygopro {
...
@@ -6002,6 +6023,7 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
StocGameMessage
.
MsgUnimplemented
;
unimplemented
?:
StocGameMessage
.
MsgUnimplemented
;
update_data
?:
never
;
update_data
?:
never
;
reload_field
?:
never
;
}
}
|
{
|
{
start
?:
never
;
start
?:
never
;
...
@@ -6027,6 +6049,33 @@ export namespace ygopro {
...
@@ -6027,6 +6049,33 @@ export namespace ygopro {
wait
?:
never
;
wait
?:
never
;
unimplemented
?:
never
;
unimplemented
?:
never
;
update_data
?:
StocGameMessage
.
MsgUpdateData
;
update_data
?:
StocGameMessage
.
MsgUpdateData
;
reload_field
?:
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
?:
StocGameMessage
.
MsgReloadField
;
}
}
))
))
)
{
)
{
...
@@ -6115,6 +6164,9 @@ export namespace ygopro {
...
@@ -6115,6 +6164,9 @@ export namespace ygopro {
if
(
"
update_data
"
in
data
&&
data
.
update_data
!=
undefined
)
{
if
(
"
update_data
"
in
data
&&
data
.
update_data
!=
undefined
)
{
this
.
update_data
=
data
.
update_data
;
this
.
update_data
=
data
.
update_data
;
}
}
if
(
"
reload_field
"
in
data
&&
data
.
reload_field
!=
undefined
)
{
this
.
reload_field
=
data
.
reload_field
;
}
}
}
}
}
get
start
()
{
get
start
()
{
...
@@ -6416,6 +6468,19 @@ export namespace ygopro {
...
@@ -6416,6 +6468,19 @@ export namespace ygopro {
get
has_update_data
()
{
get
has_update_data
()
{
return
pb_1
.
Message
.
getField
(
this
,
23
)
!=
null
;
return
pb_1
.
Message
.
getField
(
this
,
23
)
!=
null
;
}
}
get
reload_field
()
{
return
pb_1
.
Message
.
getWrapperField
(
this
,
StocGameMessage
.
MsgReloadField
,
24
)
as
StocGameMessage
.
MsgReloadField
;
}
set
reload_field
(
value
:
StocGameMessage
.
MsgReloadField
)
{
pb_1
.
Message
.
setOneofWrapperField
(
this
,
24
,
this
.
#
one_of_decls
[
0
],
value
);
}
get
has_reload_field
()
{
return
pb_1
.
Message
.
getField
(
this
,
24
)
!=
null
;
}
get
gameMsg
()
{
get
gameMsg
()
{
const
cases
:
{
const
cases
:
{
[
index
:
number
]:
[
index
:
number
]:
...
@@ -6442,7 +6507,8 @@ export namespace ygopro {
...
@@ -6442,7 +6507,8 @@ export namespace ygopro {
|
"
win
"
|
"
win
"
|
"
wait
"
|
"
wait
"
|
"
unimplemented
"
|
"
unimplemented
"
|
"
update_data
"
;
|
"
update_data
"
|
"
reload_field
"
;
}
=
{
}
=
{
0
:
"
none
"
,
0
:
"
none
"
,
1
:
"
start
"
,
1
:
"
start
"
,
...
@@ -6468,13 +6534,14 @@ export namespace ygopro {
...
@@ -6468,13 +6534,14 @@ export namespace ygopro {
21
:
"
wait
"
,
21
:
"
wait
"
,
22
:
"
unimplemented
"
,
22
:
"
unimplemented
"
,
23
:
"
update_data
"
,
23
:
"
update_data
"
,
24
:
"
reload_field
"
,
};
};
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
,
20
,
21
,
22
,
23
,
24
,
]
]
)
)
];
];
...
@@ -6537,6 +6604,9 @@ export namespace ygopro {
...
@@ -6537,6 +6604,9 @@ export namespace ygopro {
update_data
?:
ReturnType
<
update_data
?:
ReturnType
<
typeof
StocGameMessage
.
MsgUpdateData
.
prototype
.
toObject
typeof
StocGameMessage
.
MsgUpdateData
.
prototype
.
toObject
>
;
>
;
reload_field
?:
ReturnType
<
typeof
StocGameMessage
.
MsgReloadField
.
prototype
.
toObject
>
;
}):
StocGameMessage
{
}):
StocGameMessage
{
const
message
=
new
StocGameMessage
({});
const
message
=
new
StocGameMessage
({});
if
(
data
.
start
!=
null
)
{
if
(
data
.
start
!=
null
)
{
...
@@ -6640,6 +6710,11 @@ export namespace ygopro {
...
@@ -6640,6 +6710,11 @@ export namespace ygopro {
data
.
update_data
data
.
update_data
);
);
}
}
if
(
data
.
reload_field
!=
null
)
{
message
.
reload_field
=
StocGameMessage
.
MsgReloadField
.
fromObject
(
data
.
reload_field
);
}
return
message
;
return
message
;
}
}
toObject
()
{
toObject
()
{
...
@@ -6701,6 +6776,9 @@ export namespace ygopro {
...
@@ -6701,6 +6776,9 @@ export namespace ygopro {
update_data
?:
ReturnType
<
update_data
?:
ReturnType
<
typeof
StocGameMessage
.
MsgUpdateData
.
prototype
.
toObject
typeof
StocGameMessage
.
MsgUpdateData
.
prototype
.
toObject
>
;
>
;
reload_field
?:
ReturnType
<
typeof
StocGameMessage
.
MsgReloadField
.
prototype
.
toObject
>
;
}
=
{};
}
=
{};
if
(
this
.
start
!=
null
)
{
if
(
this
.
start
!=
null
)
{
data
.
start
=
this
.
start
.
toObject
();
data
.
start
=
this
.
start
.
toObject
();
...
@@ -6771,6 +6849,9 @@ export namespace ygopro {
...
@@ -6771,6 +6849,9 @@ export namespace ygopro {
if
(
this
.
update_data
!=
null
)
{
if
(
this
.
update_data
!=
null
)
{
data
.
update_data
=
this
.
update_data
.
toObject
();
data
.
update_data
=
this
.
update_data
.
toObject
();
}
}
if
(
this
.
reload_field
!=
null
)
{
data
.
reload_field
=
this
.
reload_field
.
toObject
();
}
return
data
;
return
data
;
}
}
serialize
():
Uint8Array
;
serialize
():
Uint8Array
;
...
@@ -6857,6 +6938,10 @@ export namespace ygopro {
...
@@ -6857,6 +6938,10 @@ export namespace ygopro {
writer
.
writeMessage
(
23
,
this
.
update_data
,
()
=>
writer
.
writeMessage
(
23
,
this
.
update_data
,
()
=>
this
.
update_data
.
serialize
(
writer
)
this
.
update_data
.
serialize
(
writer
)
);
);
if
(
this
.
has_reload_field
)
writer
.
writeMessage
(
24
,
this
.
reload_field
,
()
=>
this
.
reload_field
.
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
{
...
@@ -7041,6 +7126,14 @@ export namespace ygopro {
...
@@ -7041,6 +7126,14 @@ export namespace ygopro {
StocGameMessage
.
MsgUpdateData
.
deserialize
(
reader
))
StocGameMessage
.
MsgUpdateData
.
deserialize
(
reader
))
);
);
break
;
break
;
case
24
:
reader
.
readMessage
(
message
.
reload_field
,
()
=>
(
message
.
reload_field
=
StocGameMessage
.
MsgReloadField
.
deserialize
(
reader
))
);
break
;
default
:
default
:
reader
.
skipField
();
reader
.
skipField
();
}
}
...
@@ -12519,5 +12612,707 @@ export namespace ygopro {
...
@@ -12519,5 +12612,707 @@ export namespace ygopro {
}
}
}
}
}
}
export
class
MsgReloadField
extends
pb_1
.
Message
{
#
one_of_decls
:
number
[][]
=
[];
constructor
(
data
?:
|
any
[]
|
{
duel_rule
?:
number
;
actions
?:
StocGameMessage
.
MsgReloadField
.
Action
[];
}
)
{
super
();
pb_1
.
Message
.
initialize
(
this
,
Array
.
isArray
(
data
)
?
data
:
[],
0
,
-
1
,
[
2
],
this
.
#
one_of_decls
);
if
(
!
Array
.
isArray
(
data
)
&&
typeof
data
==
"
object
"
)
{
if
(
"
duel_rule
"
in
data
&&
data
.
duel_rule
!=
undefined
)
{
this
.
duel_rule
=
data
.
duel_rule
;
}
if
(
"
actions
"
in
data
&&
data
.
actions
!=
undefined
)
{
this
.
actions
=
data
.
actions
;
}
}
}
get
duel_rule
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
1
,
0
)
as
number
;
}
set
duel_rule
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
1
,
value
);
}
get
actions
()
{
return
pb_1
.
Message
.
getRepeatedWrapperField
(
this
,
StocGameMessage
.
MsgReloadField
.
Action
,
2
)
as
StocGameMessage
.
MsgReloadField
.
Action
[];
}
set
actions
(
value
:
StocGameMessage
.
MsgReloadField
.
Action
[])
{
pb_1
.
Message
.
setRepeatedWrapperField
(
this
,
2
,
value
);
}
static
fromObject
(
data
:
{
duel_rule
?:
number
;
actions
?:
ReturnType
<
typeof
StocGameMessage
.
MsgReloadField
.
Action
.
prototype
.
toObject
>
[];
}):
MsgReloadField
{
const
message
=
new
MsgReloadField
({});
if
(
data
.
duel_rule
!=
null
)
{
message
.
duel_rule
=
data
.
duel_rule
;
}
if
(
data
.
actions
!=
null
)
{
message
.
actions
=
data
.
actions
.
map
((
item
)
=>
StocGameMessage
.
MsgReloadField
.
Action
.
fromObject
(
item
)
);
}
return
message
;
}
toObject
()
{
const
data
:
{
duel_rule
?:
number
;
actions
?:
ReturnType
<
typeof
StocGameMessage
.
MsgReloadField
.
Action
.
prototype
.
toObject
>
[];
}
=
{};
if
(
this
.
duel_rule
!=
null
)
{
data
.
duel_rule
=
this
.
duel_rule
;
}
if
(
this
.
actions
!=
null
)
{
data
.
actions
=
this
.
actions
.
map
(
(
item
:
StocGameMessage
.
MsgReloadField
.
Action
)
=>
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
.
duel_rule
!=
0
)
writer
.
writeInt32
(
1
,
this
.
duel_rule
);
if
(
this
.
actions
.
length
)
writer
.
writeRepeatedMessage
(
2
,
this
.
actions
,
(
item
:
StocGameMessage
.
MsgReloadField
.
Action
)
=>
item
.
serialize
(
writer
)
);
if
(
!
w
)
return
writer
.
getResultBuffer
();
}
static
deserialize
(
bytes
:
Uint8Array
|
pb_1
.
BinaryReader
):
MsgReloadField
{
const
reader
=
bytes
instanceof
pb_1
.
BinaryReader
?
bytes
:
new
pb_1
.
BinaryReader
(
bytes
),
message
=
new
MsgReloadField
();
while
(
reader
.
nextField
())
{
if
(
reader
.
isEndGroup
())
break
;
switch
(
reader
.
getFieldNumber
())
{
case
1
:
message
.
duel_rule
=
reader
.
readInt32
();
break
;
case
2
:
reader
.
readMessage
(
message
.
actions
,
()
=>
pb_1
.
Message
.
addToRepeatedWrapperField
(
message
,
2
,
StocGameMessage
.
MsgReloadField
.
Action
.
deserialize
(
reader
),
StocGameMessage
.
MsgReloadField
.
Action
)
);
break
;
default
:
reader
.
skipField
();
}
}
return
message
;
}
serializeBinary
():
Uint8Array
{
return
this
.
serialize
();
}
static
deserializeBinary
(
bytes
:
Uint8Array
):
MsgReloadField
{
return
MsgReloadField
.
deserialize
(
bytes
);
}
}
export
namespace
MsgReloadField
{
export
class
ZoneAction
extends
pb_1
.
Message
{
#
one_of_decls
:
number
[][]
=
[];
constructor
(
data
?:
|
any
[]
|
{
zone
?:
CardZone
;
sequence
?:
number
;
position
?:
number
;
overlay_count
?:
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
(
"
zone
"
in
data
&&
data
.
zone
!=
undefined
)
{
this
.
zone
=
data
.
zone
;
}
if
(
"
sequence
"
in
data
&&
data
.
sequence
!=
undefined
)
{
this
.
sequence
=
data
.
sequence
;
}
if
(
"
position
"
in
data
&&
data
.
position
!=
undefined
)
{
this
.
position
=
data
.
position
;
}
if
(
"
overlay_count
"
in
data
&&
data
.
overlay_count
!=
undefined
)
{
this
.
overlay_count
=
data
.
overlay_count
;
}
}
}
get
zone
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
1
,
CardZone
.
DECK
)
as
CardZone
;
}
set
zone
(
value
:
CardZone
)
{
pb_1
.
Message
.
setField
(
this
,
1
,
value
);
}
get
sequence
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
2
,
0
)
as
number
;
}
set
sequence
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
2
,
value
);
}
get
position
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
3
,
0
)
as
number
;
}
set
position
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
3
,
value
);
}
get
overlay_count
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
4
,
0
)
as
number
;
}
set
overlay_count
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
4
,
value
);
}
static
fromObject
(
data
:
{
zone
?:
CardZone
;
sequence
?:
number
;
position
?:
number
;
overlay_count
?:
number
;
}):
ZoneAction
{
const
message
=
new
ZoneAction
({});
if
(
data
.
zone
!=
null
)
{
message
.
zone
=
data
.
zone
;
}
if
(
data
.
sequence
!=
null
)
{
message
.
sequence
=
data
.
sequence
;
}
if
(
data
.
position
!=
null
)
{
message
.
position
=
data
.
position
;
}
if
(
data
.
overlay_count
!=
null
)
{
message
.
overlay_count
=
data
.
overlay_count
;
}
return
message
;
}
toObject
()
{
const
data
:
{
zone
?:
CardZone
;
sequence
?:
number
;
position
?:
number
;
overlay_count
?:
number
;
}
=
{};
if
(
this
.
zone
!=
null
)
{
data
.
zone
=
this
.
zone
;
}
if
(
this
.
sequence
!=
null
)
{
data
.
sequence
=
this
.
sequence
;
}
if
(
this
.
position
!=
null
)
{
data
.
position
=
this
.
position
;
}
if
(
this
.
overlay_count
!=
null
)
{
data
.
overlay_count
=
this
.
overlay_count
;
}
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
.
zone
!=
CardZone
.
DECK
)
writer
.
writeEnum
(
1
,
this
.
zone
);
if
(
this
.
sequence
!=
0
)
writer
.
writeInt32
(
2
,
this
.
sequence
);
if
(
this
.
position
!=
0
)
writer
.
writeInt32
(
3
,
this
.
position
);
if
(
this
.
overlay_count
!=
0
)
writer
.
writeInt32
(
4
,
this
.
overlay_count
);
if
(
!
w
)
return
writer
.
getResultBuffer
();
}
static
deserialize
(
bytes
:
Uint8Array
|
pb_1
.
BinaryReader
):
ZoneAction
{
const
reader
=
bytes
instanceof
pb_1
.
BinaryReader
?
bytes
:
new
pb_1
.
BinaryReader
(
bytes
),
message
=
new
ZoneAction
();
while
(
reader
.
nextField
())
{
if
(
reader
.
isEndGroup
())
break
;
switch
(
reader
.
getFieldNumber
())
{
case
1
:
message
.
zone
=
reader
.
readEnum
();
break
;
case
2
:
message
.
sequence
=
reader
.
readInt32
();
break
;
case
3
:
message
.
position
=
reader
.
readInt32
();
break
;
case
4
:
message
.
overlay_count
=
reader
.
readInt32
();
break
;
default
:
reader
.
skipField
();
}
}
return
message
;
}
serializeBinary
():
Uint8Array
{
return
this
.
serialize
();
}
static
deserializeBinary
(
bytes
:
Uint8Array
):
ZoneAction
{
return
ZoneAction
.
deserialize
(
bytes
);
}
}
export
class
ChainAction
extends
pb_1
.
Message
{
#
one_of_decls
:
number
[][]
=
[];
constructor
(
data
?:
|
any
[]
|
{
chain_code
?:
number
;
location
?:
CardLocation
;
triggering_controller
?:
number
;
triggering_location
?:
number
;
triggering_sequence
?:
number
;
effect_description
?:
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
(
"
chain_code
"
in
data
&&
data
.
chain_code
!=
undefined
)
{
this
.
chain_code
=
data
.
chain_code
;
}
if
(
"
location
"
in
data
&&
data
.
location
!=
undefined
)
{
this
.
location
=
data
.
location
;
}
if
(
"
triggering_controller
"
in
data
&&
data
.
triggering_controller
!=
undefined
)
{
this
.
triggering_controller
=
data
.
triggering_controller
;
}
if
(
"
triggering_location
"
in
data
&&
data
.
triggering_location
!=
undefined
)
{
this
.
triggering_location
=
data
.
triggering_location
;
}
if
(
"
triggering_sequence
"
in
data
&&
data
.
triggering_sequence
!=
undefined
)
{
this
.
triggering_sequence
=
data
.
triggering_sequence
;
}
if
(
"
effect_description
"
in
data
&&
data
.
effect_description
!=
undefined
)
{
this
.
effect_description
=
data
.
effect_description
;
}
}
}
get
chain_code
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
1
,
0
)
as
number
;
}
set
chain_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
triggering_controller
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
3
,
0
)
as
number
;
}
set
triggering_controller
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
3
,
value
);
}
get
triggering_location
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
4
,
0
)
as
number
;
}
set
triggering_location
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
4
,
value
);
}
get
triggering_sequence
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
5
,
0
)
as
number
;
}
set
triggering_sequence
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
5
,
value
);
}
get
effect_description
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
6
,
0
)
as
number
;
}
set
effect_description
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
6
,
value
);
}
static
fromObject
(
data
:
{
chain_code
?:
number
;
location
?:
ReturnType
<
typeof
CardLocation
.
prototype
.
toObject
>
;
triggering_controller
?:
number
;
triggering_location
?:
number
;
triggering_sequence
?:
number
;
effect_description
?:
number
;
}):
ChainAction
{
const
message
=
new
ChainAction
({});
if
(
data
.
chain_code
!=
null
)
{
message
.
chain_code
=
data
.
chain_code
;
}
if
(
data
.
location
!=
null
)
{
message
.
location
=
CardLocation
.
fromObject
(
data
.
location
);
}
if
(
data
.
triggering_controller
!=
null
)
{
message
.
triggering_controller
=
data
.
triggering_controller
;
}
if
(
data
.
triggering_location
!=
null
)
{
message
.
triggering_location
=
data
.
triggering_location
;
}
if
(
data
.
triggering_sequence
!=
null
)
{
message
.
triggering_sequence
=
data
.
triggering_sequence
;
}
if
(
data
.
effect_description
!=
null
)
{
message
.
effect_description
=
data
.
effect_description
;
}
return
message
;
}
toObject
()
{
const
data
:
{
chain_code
?:
number
;
location
?:
ReturnType
<
typeof
CardLocation
.
prototype
.
toObject
>
;
triggering_controller
?:
number
;
triggering_location
?:
number
;
triggering_sequence
?:
number
;
effect_description
?:
number
;
}
=
{};
if
(
this
.
chain_code
!=
null
)
{
data
.
chain_code
=
this
.
chain_code
;
}
if
(
this
.
location
!=
null
)
{
data
.
location
=
this
.
location
.
toObject
();
}
if
(
this
.
triggering_controller
!=
null
)
{
data
.
triggering_controller
=
this
.
triggering_controller
;
}
if
(
this
.
triggering_location
!=
null
)
{
data
.
triggering_location
=
this
.
triggering_location
;
}
if
(
this
.
triggering_sequence
!=
null
)
{
data
.
triggering_sequence
=
this
.
triggering_sequence
;
}
if
(
this
.
effect_description
!=
null
)
{
data
.
effect_description
=
this
.
effect_description
;
}
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
.
chain_code
!=
0
)
writer
.
writeInt32
(
1
,
this
.
chain_code
);
if
(
this
.
has_location
)
writer
.
writeMessage
(
2
,
this
.
location
,
()
=>
this
.
location
.
serialize
(
writer
)
);
if
(
this
.
triggering_controller
!=
0
)
writer
.
writeInt32
(
3
,
this
.
triggering_controller
);
if
(
this
.
triggering_location
!=
0
)
writer
.
writeInt32
(
4
,
this
.
triggering_location
);
if
(
this
.
triggering_sequence
!=
0
)
writer
.
writeInt32
(
5
,
this
.
triggering_sequence
);
if
(
this
.
effect_description
!=
0
)
writer
.
writeInt32
(
6
,
this
.
effect_description
);
if
(
!
w
)
return
writer
.
getResultBuffer
();
}
static
deserialize
(
bytes
:
Uint8Array
|
pb_1
.
BinaryReader
):
ChainAction
{
const
reader
=
bytes
instanceof
pb_1
.
BinaryReader
?
bytes
:
new
pb_1
.
BinaryReader
(
bytes
),
message
=
new
ChainAction
();
while
(
reader
.
nextField
())
{
if
(
reader
.
isEndGroup
())
break
;
switch
(
reader
.
getFieldNumber
())
{
case
1
:
message
.
chain_code
=
reader
.
readInt32
();
break
;
case
2
:
reader
.
readMessage
(
message
.
location
,
()
=>
(
message
.
location
=
CardLocation
.
deserialize
(
reader
))
);
break
;
case
3
:
message
.
triggering_controller
=
reader
.
readInt32
();
break
;
case
4
:
message
.
triggering_location
=
reader
.
readInt32
();
break
;
case
5
:
message
.
triggering_sequence
=
reader
.
readInt32
();
break
;
case
6
:
message
.
effect_description
=
reader
.
readInt32
();
break
;
default
:
reader
.
skipField
();
}
}
return
message
;
}
serializeBinary
():
Uint8Array
{
return
this
.
serialize
();
}
static
deserializeBinary
(
bytes
:
Uint8Array
):
ChainAction
{
return
ChainAction
.
deserialize
(
bytes
);
}
}
export
class
Action
extends
pb_1
.
Message
{
#
one_of_decls
:
number
[][]
=
[];
constructor
(
data
?:
|
any
[]
|
{
player
?:
number
;
lp
?:
number
;
zone_actions
?:
StocGameMessage
.
MsgReloadField
.
ZoneAction
[];
chain_actions
?:
StocGameMessage
.
MsgReloadField
.
ChainAction
[];
}
)
{
super
();
pb_1
.
Message
.
initialize
(
this
,
Array
.
isArray
(
data
)
?
data
:
[],
0
,
-
1
,
[
3
,
4
],
this
.
#
one_of_decls
);
if
(
!
Array
.
isArray
(
data
)
&&
typeof
data
==
"
object
"
)
{
if
(
"
player
"
in
data
&&
data
.
player
!=
undefined
)
{
this
.
player
=
data
.
player
;
}
if
(
"
lp
"
in
data
&&
data
.
lp
!=
undefined
)
{
this
.
lp
=
data
.
lp
;
}
if
(
"
zone_actions
"
in
data
&&
data
.
zone_actions
!=
undefined
)
{
this
.
zone_actions
=
data
.
zone_actions
;
}
if
(
"
chain_actions
"
in
data
&&
data
.
chain_actions
!=
undefined
)
{
this
.
chain_actions
=
data
.
chain_actions
;
}
}
}
get
player
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
1
,
0
)
as
number
;
}
set
player
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
1
,
value
);
}
get
lp
()
{
return
pb_1
.
Message
.
getFieldWithDefault
(
this
,
2
,
0
)
as
number
;
}
set
lp
(
value
:
number
)
{
pb_1
.
Message
.
setField
(
this
,
2
,
value
);
}
get
zone_actions
()
{
return
pb_1
.
Message
.
getRepeatedWrapperField
(
this
,
StocGameMessage
.
MsgReloadField
.
ZoneAction
,
3
)
as
StocGameMessage
.
MsgReloadField
.
ZoneAction
[];
}
set
zone_actions
(
value
:
StocGameMessage
.
MsgReloadField
.
ZoneAction
[])
{
pb_1
.
Message
.
setRepeatedWrapperField
(
this
,
3
,
value
);
}
get
chain_actions
()
{
return
pb_1
.
Message
.
getRepeatedWrapperField
(
this
,
StocGameMessage
.
MsgReloadField
.
ChainAction
,
4
)
as
StocGameMessage
.
MsgReloadField
.
ChainAction
[];
}
set
chain_actions
(
value
:
StocGameMessage
.
MsgReloadField
.
ChainAction
[])
{
pb_1
.
Message
.
setRepeatedWrapperField
(
this
,
4
,
value
);
}
static
fromObject
(
data
:
{
player
?:
number
;
lp
?:
number
;
zone_actions
?:
ReturnType
<
typeof
StocGameMessage
.
MsgReloadField
.
ZoneAction
.
prototype
.
toObject
>
[];
chain_actions
?:
ReturnType
<
typeof
StocGameMessage
.
MsgReloadField
.
ChainAction
.
prototype
.
toObject
>
[];
}):
Action
{
const
message
=
new
Action
({});
if
(
data
.
player
!=
null
)
{
message
.
player
=
data
.
player
;
}
if
(
data
.
lp
!=
null
)
{
message
.
lp
=
data
.
lp
;
}
if
(
data
.
zone_actions
!=
null
)
{
message
.
zone_actions
=
data
.
zone_actions
.
map
((
item
)
=>
StocGameMessage
.
MsgReloadField
.
ZoneAction
.
fromObject
(
item
)
);
}
if
(
data
.
chain_actions
!=
null
)
{
message
.
chain_actions
=
data
.
chain_actions
.
map
((
item
)
=>
StocGameMessage
.
MsgReloadField
.
ChainAction
.
fromObject
(
item
)
);
}
return
message
;
}
toObject
()
{
const
data
:
{
player
?:
number
;
lp
?:
number
;
zone_actions
?:
ReturnType
<
typeof
StocGameMessage
.
MsgReloadField
.
ZoneAction
.
prototype
.
toObject
>
[];
chain_actions
?:
ReturnType
<
typeof
StocGameMessage
.
MsgReloadField
.
ChainAction
.
prototype
.
toObject
>
[];
}
=
{};
if
(
this
.
player
!=
null
)
{
data
.
player
=
this
.
player
;
}
if
(
this
.
lp
!=
null
)
{
data
.
lp
=
this
.
lp
;
}
if
(
this
.
zone_actions
!=
null
)
{
data
.
zone_actions
=
this
.
zone_actions
.
map
(
(
item
:
StocGameMessage
.
MsgReloadField
.
ZoneAction
)
=>
item
.
toObject
()
);
}
if
(
this
.
chain_actions
!=
null
)
{
data
.
chain_actions
=
this
.
chain_actions
.
map
(
(
item
:
StocGameMessage
.
MsgReloadField
.
ChainAction
)
=>
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
.
lp
!=
0
)
writer
.
writeInt32
(
2
,
this
.
lp
);
if
(
this
.
zone_actions
.
length
)
writer
.
writeRepeatedMessage
(
3
,
this
.
zone_actions
,
(
item
:
StocGameMessage
.
MsgReloadField
.
ZoneAction
)
=>
item
.
serialize
(
writer
)
);
if
(
this
.
chain_actions
.
length
)
writer
.
writeRepeatedMessage
(
4
,
this
.
chain_actions
,
(
item
:
StocGameMessage
.
MsgReloadField
.
ChainAction
)
=>
item
.
serialize
(
writer
)
);
if
(
!
w
)
return
writer
.
getResultBuffer
();
}
static
deserialize
(
bytes
:
Uint8Array
|
pb_1
.
BinaryReader
):
Action
{
const
reader
=
bytes
instanceof
pb_1
.
BinaryReader
?
bytes
:
new
pb_1
.
BinaryReader
(
bytes
),
message
=
new
Action
();
while
(
reader
.
nextField
())
{
if
(
reader
.
isEndGroup
())
break
;
switch
(
reader
.
getFieldNumber
())
{
case
1
:
message
.
player
=
reader
.
readInt32
();
break
;
case
2
:
message
.
lp
=
reader
.
readInt32
();
break
;
case
3
:
reader
.
readMessage
(
message
.
zone_actions
,
()
=>
pb_1
.
Message
.
addToRepeatedWrapperField
(
message
,
3
,
StocGameMessage
.
MsgReloadField
.
ZoneAction
.
deserialize
(
reader
),
StocGameMessage
.
MsgReloadField
.
ZoneAction
)
);
break
;
case
4
:
reader
.
readMessage
(
message
.
chain_actions
,
()
=>
pb_1
.
Message
.
addToRepeatedWrapperField
(
message
,
4
,
StocGameMessage
.
MsgReloadField
.
ChainAction
.
deserialize
(
reader
),
StocGameMessage
.
MsgReloadField
.
ChainAction
)
);
break
;
default
:
reader
.
skipField
();
}
}
return
message
;
}
serializeBinary
():
Uint8Array
{
return
this
.
serialize
();
}
static
deserializeBinary
(
bytes
:
Uint8Array
):
Action
{
return
Action
.
deserialize
(
bytes
);
}
}
}
}
}
}
}
src/api/ocgcore/ocgAdapter/protoDecl.ts
View file @
0eb554ec
...
@@ -50,3 +50,4 @@ export const MSG_PAY_LP_COST = 100;
...
@@ -50,3 +50,4 @@ export const MSG_PAY_LP_COST = 100;
export
const
MSG_WIN
=
5
;
export
const
MSG_WIN
=
5
;
export
const
MSG_WAITING
=
3
;
export
const
MSG_WAITING
=
3
;
export
const
MSG_UPDATE_DATA
=
6
;
export
const
MSG_UPDATE_DATA
=
6
;
export
const
MSG_RELOAD_FIELD
=
162
;
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
View file @
0eb554ec
...
@@ -26,6 +26,7 @@ import MsgDamage from "./damage";
...
@@ -26,6 +26,7 @@ import MsgDamage from "./damage";
import
MsgRecover
from
"
./recover
"
;
import
MsgRecover
from
"
./recover
"
;
import
MsgWin
from
"
./win
"
;
import
MsgWin
from
"
./win
"
;
import
MsgUpdateDataAdapter
from
"
./updateData
"
;
import
MsgUpdateDataAdapter
from
"
./updateData
"
;
import
MsgReloadFieldAdapter
from
"
./reloadField
"
;
import
PENETRATE
from
"
./penetrate
"
;
import
PENETRATE
from
"
./penetrate
"
;
/*
/*
...
@@ -154,6 +155,11 @@ export default class GameMsgAdapter implements StocAdapter {
...
@@ -154,6 +155,11 @@ export default class GameMsgAdapter implements StocAdapter {
break
;
break
;
}
}
case
GAME_MSG
.
MSG_RELOAD_FIELD
:
{
gameMsg
.
reload_field
=
MsgReloadFieldAdapter
(
gameData
);
break
;
}
default
:
{
default
:
{
gameMsg
.
unimplemented
=
new
ygopro
.
StocGameMessage
.
MsgUnimplemented
({
gameMsg
.
unimplemented
=
new
ygopro
.
StocGameMessage
.
MsgUnimplemented
({
command
:
func
,
command
:
func
,
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/reloadField.ts
0 → 100644
View file @
0eb554ec
import
{
ygopro
}
from
"
../../../idl/ocgcore
"
;
// @ts-ignore
import
{
BufferReaderExt
}
from
"
../../bufferIO
"
;
import
MsgReloadField
=
ygopro
.
StocGameMessage
.
MsgReloadField
;
import
{
numberToCardPosition
}
from
"
../../util
"
;
export
default
(
data
:
Uint8Array
)
=>
{
const
reader
=
new
BufferReaderExt
(
data
);
const
duel_rule
=
reader
.
inner
.
readUint8
();
const
actions
=
[];
for
(
let
player
=
0
;
player
<
2
;
player
++
)
{
const
lp
=
reader
.
inner
.
readUint32
();
const
zone_actions
=
[];
// MZONE
for
(
let
sequence
=
0
;
sequence
<
7
;
sequence
++
)
{
const
flag
=
reader
.
inner
.
readUint8
();
if
(
flag
)
{
const
position
=
reader
.
inner
.
readUint8
();
const
overlay_count
=
reader
.
inner
.
readUint8
();
zone_actions
.
push
(
new
MsgReloadField
.
ZoneAction
({
zone
:
ygopro
.
CardZone
.
MZONE
,
sequence
,
position
:
numberToCardPosition
(
position
),
overlay_count
,
})
);
}
else
{
zone_actions
.
push
(
new
MsgReloadField
.
ZoneAction
({
zone
:
ygopro
.
CardZone
.
MZONE
,
sequence
,
position
:
ygopro
.
CardPosition
.
FACEDOWN
,
})
);
}
}
// SZONE
for
(
let
sequence
=
0
;
sequence
<
8
;
sequence
++
)
{
const
flag
=
reader
.
inner
.
readUint8
();
if
(
flag
)
{
const
position
=
reader
.
inner
.
readUint8
();
zone_actions
.
push
(
new
MsgReloadField
.
ZoneAction
({
zone
:
ygopro
.
CardZone
.
SZONE
,
sequence
,
position
:
numberToCardPosition
(
position
),
})
);
}
else
{
zone_actions
.
push
(
new
MsgReloadField
.
ZoneAction
({
zone
:
ygopro
.
CardZone
.
SZONE
,
sequence
,
position
:
ygopro
.
CardPosition
.
FACEDOWN
,
})
);
}
}
const
main_size
=
reader
.
inner
.
readUint8
();
for
(
let
sequence
=
0
;
sequence
<
main_size
;
sequence
++
)
{
zone_actions
.
push
(
new
MsgReloadField
.
ZoneAction
({
zone
:
ygopro
.
CardZone
.
DECK
,
sequence
,
position
:
ygopro
.
CardPosition
.
FACEDOWN_ATTACK
,
})
);
}
const
hand_size
=
reader
.
inner
.
readUint8
();
for
(
let
sequence
=
0
;
sequence
<
hand_size
;
sequence
++
)
{
zone_actions
.
push
(
new
MsgReloadField
.
ZoneAction
({
zone
:
ygopro
.
CardZone
.
HAND
,
sequence
,
})
);
}
const
grave_size
=
reader
.
inner
.
readUint8
();
for
(
let
sequence
=
0
;
sequence
<
grave_size
;
sequence
++
)
{
zone_actions
.
push
(
new
MsgReloadField
.
ZoneAction
({
zone
:
ygopro
.
CardZone
.
GRAVE
,
sequence
,
})
);
}
const
removed_size
=
reader
.
inner
.
readUint8
();
for
(
let
sequence
=
0
;
sequence
<
removed_size
;
sequence
++
)
{
zone_actions
.
push
(
new
MsgReloadField
.
ZoneAction
({
zone
:
ygopro
.
CardZone
.
REMOVED
,
sequence
,
})
);
}
const
extra_size
=
reader
.
inner
.
readUint8
();
for
(
let
sequence
=
0
;
sequence
<
extra_size
;
sequence
++
)
{
zone_actions
.
push
(
new
MsgReloadField
.
ZoneAction
({
zone
:
ygopro
.
CardZone
.
EXTRA
,
sequence
,
position
:
ygopro
.
CardPosition
.
FACEDOWN_ATTACK
,
})
);
}
const
_extra_p_size
=
reader
.
inner
.
readUint8
();
// const chain_size = reader.inner.readUint8();
// const chain_actions = [];
// for (let i = 0; i < chain_size; i += 1) {
// const chain_code = reader.inner.readUint32();
// const location = reader.readCardLocation();
// const triggering_controller = reader.inner.readUint8();
// const triggering_location = reader.inner.readUint8();
// const triggering_sequence = reader.inner.readUint8();
// const effect_description = reader.inner.readUint32();
//
// chain_actions.push(
// new MsgReloadField.ChainAction({
// chain_code,
// location,
// triggering_controller,
// triggering_location,
// triggering_sequence,
// effect_description,
// })
// );
// }
actions
.
push
(
new
MsgReloadField
.
Action
({
player
,
lp
,
zone_actions
,
// chain_actions,
})
);
}
return
new
MsgReloadField
({
duel_rule
,
actions
,
});
};
src/reducers/duel/commonSlice.ts
View file @
0eb554ec
...
@@ -3,9 +3,11 @@ import {
...
@@ -3,9 +3,11 @@ import {
clearIdleInteractivities
,
clearIdleInteractivities
,
clearPlaceInteractivities
,
clearPlaceInteractivities
,
DuelReducer
,
DuelReducer
,
reloadFieldMeta
,
updateCardData
,
updateCardData
,
}
from
"
./generic
"
;
}
from
"
./generic
"
;
import
{
judgeSelf
}
from
"
./util
"
;
import
{
judgeSelf
}
from
"
./util
"
;
import
MsgReloadField
=
ygopro
.
StocGameMessage
.
MsgReloadField
;
type
MsgUpdateData
=
ReturnType
<
type
MsgUpdateData
=
ReturnType
<
typeof
ygopro
.
StocGameMessage
.
MsgUpdateData
.
prototype
.
toObject
typeof
ygopro
.
StocGameMessage
.
MsgUpdateData
.
prototype
.
toObject
>
;
>
;
...
@@ -124,3 +126,87 @@ export const updateFieldDataImpl: DuelReducer<MsgUpdateData> = (
...
@@ -124,3 +126,87 @@ export const updateFieldDataImpl: DuelReducer<MsgUpdateData> = (
}
}
}
}
};
};
export
const
reloadFieldImpl
:
DuelReducer
<
MsgReloadField
>
=
(
state
,
action
)
=>
{
const
_duel_rule
=
action
.
payload
.
duel_rule
;
// 初始化`DuelState`
state
.
meDeck
=
{
inner
:
[]
};
state
.
opDeck
=
{
inner
:
[]
};
state
.
meExtraDeck
=
{
inner
:
[]
};
state
.
opExtraDeck
=
{
inner
:
[]
};
state
.
meMonsters
=
{
inner
:
[]
};
state
.
opMonsters
=
{
inner
:
[]
};
state
.
meMagics
=
{
inner
:
[]
};
state
.
opMagics
=
{
inner
:
[]
};
state
.
meCemetery
=
{
inner
:
[]
};
state
.
opCemetery
=
{
inner
:
[]
};
state
.
meExclusion
=
{
inner
:
[]
};
state
.
opExclusion
=
{
inner
:
[]
};
state
.
meHands
=
{
inner
:
[]
};
state
.
opHands
=
{
inner
:
[]
};
for
(
const
reload
of
action
.
payload
.
actions
)
{
const
player
=
reload
.
player
;
// DECK
const
deck
=
judgeSelf
(
player
,
state
)
?
state
.
meDeck
:
state
.
opDeck
;
reloadFieldMeta
(
deck
,
reload
.
zone_actions
.
filter
((
item
)
=>
item
.
zone
==
ygopro
.
CardZone
.
DECK
),
player
);
// EXTRA_DECK
const
extraDeck
=
judgeSelf
(
player
,
state
)
?
state
.
meExtraDeck
:
state
.
opExtraDeck
;
reloadFieldMeta
(
extraDeck
,
reload
.
zone_actions
.
filter
((
item
)
=>
item
.
zone
==
ygopro
.
CardZone
.
EXTRA
),
player
);
// MZONE
const
monster
=
judgeSelf
(
player
,
state
)
?
state
.
meMonsters
:
state
.
opMonsters
;
reloadFieldMeta
(
monster
,
reload
.
zone_actions
.
filter
((
item
)
=>
item
.
zone
==
ygopro
.
CardZone
.
MZONE
),
player
);
// SZONE
const
magics
=
judgeSelf
(
player
,
state
)
?
state
.
meMagics
:
state
.
opMagics
;
reloadFieldMeta
(
magics
,
reload
.
zone_actions
.
filter
((
item
)
=>
item
.
zone
==
ygopro
.
CardZone
.
SZONE
),
player
);
// GRAVE
const
cemetery
=
judgeSelf
(
player
,
state
)
?
state
.
meCemetery
:
state
.
opCemetery
;
reloadFieldMeta
(
cemetery
,
reload
.
zone_actions
.
filter
((
item
)
=>
item
.
zone
==
ygopro
.
CardZone
.
GRAVE
),
player
);
// REMOVED
const
exclusion
=
judgeSelf
(
player
,
state
)
?
state
.
meExclusion
:
state
.
opExclusion
;
reloadFieldMeta
(
exclusion
,
reload
.
zone_actions
.
filter
(
(
item
)
=>
item
.
zone
==
ygopro
.
CardZone
.
REMOVED
),
player
);
// HANDS
const
hands
=
judgeSelf
(
player
,
state
)
?
state
.
meHands
:
state
.
opHands
;
reloadFieldMeta
(
hands
,
reload
.
zone_actions
.
filter
((
item
)
=>
item
.
zone
==
ygopro
.
CardZone
.
HAND
),
player
);
}
};
src/reducers/duel/generic.ts
View file @
0eb554ec
...
@@ -8,6 +8,7 @@ import { CardMeta } from "../../api/cards";
...
@@ -8,6 +8,7 @@ import { CardMeta } from "../../api/cards";
import
{
ygopro
}
from
"
../../api/ocgcore/idl/ocgcore
"
;
import
{
ygopro
}
from
"
../../api/ocgcore/idl/ocgcore
"
;
import
{
fetchCard
}
from
"
../../api/cards
"
;
import
{
fetchCard
}
from
"
../../api/cards
"
;
import
{
DuelState
}
from
"
./mod
"
;
import
{
DuelState
}
from
"
./mod
"
;
import
ReloadFieldAction
=
ygopro
.
StocGameMessage
.
MsgReloadField
.
ZoneAction
;
type
UpdateDataAction
=
ReturnType
<
type
UpdateDataAction
=
ReturnType
<
typeof
ygopro
.
StocGameMessage
.
MsgUpdateData
.
Action
.
prototype
.
toObject
typeof
ygopro
.
StocGameMessage
.
MsgUpdateData
.
Action
.
prototype
.
toObject
>
;
>
;
...
@@ -33,6 +34,7 @@ export interface CardState {
...
@@ -33,6 +34,7 @@ export interface CardState {
sequence
:
number
;
sequence
:
number
;
}
>
;
// 选择位置状态下的互动信息
}
>
;
// 选择位置状态下的互动信息
overlay_materials
?:
CardMeta
[];
// 超量素材
overlay_materials
?:
CardMeta
[];
// 超量素材
reload
?:
boolean
;
// 这个字段会在收到MSG_RELOAD_FIELD的时候设置成true,在收到MSG_UPDATE_DATE的时候设置成false
}
}
export
enum
InteractType
{
export
enum
InteractType
{
...
@@ -294,9 +296,11 @@ export function updateCardData<T extends DuelFieldState>(
...
@@ -294,9 +296,11 @@ export function updateCardData<T extends DuelFieldState>(
for
(
const
payload
of
actions
)
{
for
(
const
payload
of
actions
)
{
const
sequence
=
payload
.
location
?.
sequence
;
const
sequence
=
payload
.
location
?.
sequence
;
if
(
typeof
sequence
!==
"
undefined
"
)
{
if
(
typeof
sequence
!==
"
undefined
"
)
{
console
.
log
(
payload
.
type_
);
const
target
=
state
?.
inner
.
find
((
_
,
idx
)
=>
idx
==
sequence
);
const
target
=
state
?.
inner
.
find
((
_
,
idx
)
=>
idx
==
sequence
);
if
(
target
&&
target
.
occupant
)
{
if
(
target
&&
(
target
.
occupant
||
target
.
reload
))
{
if
(
target
.
occupant
===
undefined
)
{
target
.
occupant
=
{
id
:
payload
.
code
!
,
data
:
{},
text
:
{}
};
}
const
occupant
=
target
.
occupant
;
const
occupant
=
target
.
occupant
;
// 目前只更新以下字段
// 目前只更新以下字段
if
(
payload
.
code
!==
undefined
&&
payload
.
code
>=
0
)
{
if
(
payload
.
code
!==
undefined
&&
payload
.
code
>=
0
)
{
...
@@ -325,6 +329,31 @@ export function updateCardData<T extends DuelFieldState>(
...
@@ -325,6 +329,31 @@ export function updateCardData<T extends DuelFieldState>(
occupant
.
data
.
def
=
payload
.
defense
;
occupant
.
data
.
def
=
payload
.
defense
;
}
}
}
}
if
(
target
?.
reload
)
{
target
.
reload
=
false
;
}
}
}
}
}
}
}
export
function
reloadFieldMeta
<
T
extends
DuelFieldState
>
(
state
:
T
,
actions
:
ReloadFieldAction
[],
controler
:
number
)
{
actions
.
sort
((
a
,
b
)
=>
a
.
sequence
-
b
.
sequence
);
const
cards
=
actions
.
map
((
action
)
=>
{
// FIXME: OVERLAY
return
{
location
:
{
controler
,
location
:
action
.
zone
,
position
:
action
.
position
,
},
idleInteractivities
:
[],
reload
:
true
,
};
});
state
.
inner
=
cards
;
}
src/reducers/duel/mod.ts
View file @
0eb554ec
...
@@ -96,6 +96,7 @@ import {
...
@@ -96,6 +96,7 @@ import {
clearAllIdleInteractivitiesImpl
,
clearAllIdleInteractivitiesImpl
,
clearAllPlaceInteractivitiesImpl
,
clearAllPlaceInteractivitiesImpl
,
updateFieldDataImpl
,
updateFieldDataImpl
,
reloadFieldImpl
,
}
from
"
./commonSlice
"
;
}
from
"
./commonSlice
"
;
import
{
import
{
ExtraDeckState
,
ExtraDeckState
,
...
@@ -258,6 +259,7 @@ const duelSlice = createSlice({
...
@@ -258,6 +259,7 @@ const duelSlice = createSlice({
clearAllIdleInteractivities
:
clearAllIdleInteractivitiesImpl
,
clearAllIdleInteractivities
:
clearAllIdleInteractivitiesImpl
,
clearAllPlaceInteractivities
:
clearAllPlaceInteractivitiesImpl
,
clearAllPlaceInteractivities
:
clearAllPlaceInteractivitiesImpl
,
updateFieldData
:
updateFieldDataImpl
,
updateFieldData
:
updateFieldDataImpl
,
reloadField
:
reloadFieldImpl
,
// 对局结果`Reducer`
// 对局结果`Reducer`
setResult
:
(
state
,
action
:
PayloadAction
<
MsgWin
.
ActionType
>
)
=>
{
setResult
:
(
state
,
action
:
PayloadAction
<
MsgWin
.
ActionType
>
)
=>
{
...
@@ -355,6 +357,7 @@ export const {
...
@@ -355,6 +357,7 @@ export const {
setWaiting
,
setWaiting
,
setUnimplemented
,
setUnimplemented
,
updateFieldData
,
updateFieldData
,
reloadField
,
}
=
duelSlice
.
actions
;
}
=
duelSlice
.
actions
;
export
const
selectDuelHsStart
=
(
state
:
RootState
)
=>
{
export
const
selectDuelHsStart
=
(
state
:
RootState
)
=>
{
return
state
.
duel
.
meInitInfo
!=
null
;
return
state
.
duel
.
meInitInfo
!=
null
;
...
...
src/service/duel/gameMsg.ts
View file @
0eb554ec
...
@@ -23,6 +23,7 @@ import onMsgWin from "./win";
...
@@ -23,6 +23,7 @@ import onMsgWin from "./win";
import
onMsgWait
from
"
./wait
"
;
import
onMsgWait
from
"
./wait
"
;
import
onUnimplemented
from
"
./unimplemented
"
;
import
onUnimplemented
from
"
./unimplemented
"
;
import
onMsgUpdateData
from
"
./updateData
"
;
import
onMsgUpdateData
from
"
./updateData
"
;
import
onMsgReloadField
from
"
./reloadField
"
;
import
{
setWaiting
}
from
"
../../reducers/duel/mod
"
;
import
{
setWaiting
}
from
"
../../reducers/duel/mod
"
;
const
ActiveList
=
[
const
ActiveList
=
[
...
@@ -157,6 +158,11 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
...
@@ -157,6 +158,11 @@ export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
break
;
break
;
}
}
case
"
reload_field
"
:
{
onMsgReloadField
(
msg
.
reload_field
,
dispatch
);
break
;
}
case
"
unimplemented
"
:
{
case
"
unimplemented
"
:
{
onUnimplemented
(
msg
.
unimplemented
,
dispatch
);
onUnimplemented
(
msg
.
unimplemented
,
dispatch
);
...
...
src/service/duel/reloadField.ts
0 → 100644
View file @
0eb554ec
import
{
ygopro
}
from
"
../../api/ocgcore/idl/ocgcore
"
;
import
{
reloadField
}
from
"
../../reducers/duel/mod
"
;
import
{
AppDispatch
}
from
"
../../store
"
;
import
MsgReloadField
=
ygopro
.
StocGameMessage
.
MsgReloadField
;
export
default
(
field
:
MsgReloadField
,
dispatch
:
AppDispatch
)
=>
{
dispatch
(
reloadField
(
field
));
};
src/store.ts
View file @
0eb554ec
...
@@ -19,7 +19,7 @@ export const store = configureStore({
...
@@ -19,7 +19,7 @@ export const store = configureStore({
middleware
:
(
getDefaultMiddleware
)
=>
middleware
:
(
getDefaultMiddleware
)
=>
getDefaultMiddleware
({
getDefaultMiddleware
({
serializableCheck
:
{
serializableCheck
:
{
ignoredActions
:
[
"
duel/updateHp
"
],
ignoredActions
:
[
"
duel/updateHp
"
,
"
duel/reloadField
"
],
},
},
}),
}),
});
});
...
...
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