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
BBeretta
Neos
Commits
9f145997
Commit
9f145997
authored
Jun 30, 2023
by
Chunchi Che
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat/shuffle_extra' into 'main'
Feat/shuffle extra See merge request
mycard/Neos!239
parents
b5e2cf80
338628fd
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
207 additions
and
111 deletions
+207
-111
neos-protobuf
neos-protobuf
+1
-1
src/api/ocgcore/idl/ocgcore.ts
src/api/ocgcore/idl/ocgcore.ts
+115
-92
src/api/ocgcore/ocgAdapter/protoDecl.ts
src/api/ocgcore/ocgAdapter/protoDecl.ts
+2
-0
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
+17
-0
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/penetrate.json
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/penetrate.json
+0
-14
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/penetrate.ts
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/penetrate.ts
+0
-1
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/shuffleHandExtra.ts
...i/ocgcore/ocgAdapter/stoc/stocGameMsg/shuffleHandExtra.ts
+29
-0
src/service/duel/gameMsg.ts
src/service/duel/gameMsg.ts
+3
-3
src/service/duel/shuffleHandExtra.ts
src/service/duel/shuffleHandExtra.ts
+40
-0
No files found.
neos-protobuf
@
70d4b723
Subproject commit 7
59a1db5cbb32e84711f9a5fba3d19ee069fa635
Subproject commit 7
0d4b723250a24084b3fa5dcfb550431e29ea7e3
src/api/ocgcore/idl/ocgcore.ts
View file @
9f145997
This diff is collapsed.
Click to expand it.
src/api/ocgcore/ocgAdapter/protoDecl.ts
View file @
9f145997
...
...
@@ -67,3 +67,5 @@ export const MSG_TOSS_DICE = 131;
export
const
MSG_SHUFFLE_SET_CARD
=
36
;
export
const
MSG_FIELD_DISABLED
=
56
;
export
const
MSG_HAND_RES
=
133
;
export
const
MSG_SHUFFLE_HAND
=
33
;
export
const
MSG_SHUFFLE_EXTRA
=
39
;
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/mod.ts
View file @
9f145997
...
...
@@ -35,6 +35,7 @@ import MsgSelectPositionAdapter from "./selectPosition";
import
MsgSelectSum
from
"
./selectSum
"
;
import
MsgSelectTributeAdapter
from
"
./selectTribute
"
;
import
MsgSelectUnselectCardAdapter
from
"
./selectUnselectCard
"
;
import
MsgShuffleHandExtraAdapter
from
"
./shuffleHandExtra
"
;
import
MsgShuffleSetCard
from
"
./shuffleSetCard
"
;
import
MsgSortCard
from
"
./sortCard
"
;
import
MsgStartAdapter
from
"
./start
"
;
...
...
@@ -256,6 +257,22 @@ export default class GameMsgAdapter implements StocAdapter {
break
;
}
case
GAME_MSG
.
MSG_SHUFFLE_HAND
:
{
gameMsg
.
shuffle_hand_extra
=
MsgShuffleHandExtraAdapter
(
gameData
,
false
);
break
;
}
case
GAME_MSG
.
MSG_SHUFFLE_EXTRA
:
{
gameMsg
.
shuffle_hand_extra
=
MsgShuffleHandExtraAdapter
(
gameData
,
true
);
break
;
}
default
:
{
gameMsg
.
unimplemented
=
new
ygopro
.
StocGameMessage
.
MsgUnimplemented
({
command
:
func
,
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/penetrate.json
View file @
9f145997
...
...
@@ -20,20 +20,6 @@
}
]
},
"33"
:
{
"protoType"
:
"shuffle_hand"
,
"fields"
:
[
{
"fieldName"
:
"player"
,
"fieldType"
:
"uint8"
},
{
"fieldName"
:
"hands"
,
"fieldType"
:
"repeated"
,
"repeatedType"
:
"uint32"
}
]
},
"53"
:
{
"protoType"
:
"pos_change"
,
"fields"
:
[
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/penetrate.ts
View file @
9f145997
...
...
@@ -17,7 +17,6 @@ const ReadFieldHandlerMap: Map<string, readFieldHandler> = new Map([
]);
const
MsgConstructorMap
:
Map
<
string
,
Constructor
>
=
new
Map
([
[
"
move
"
,
ygopro
.
StocGameMessage
.
MsgMove
as
Constructor
],
[
"
shuffle_hand
"
,
ygopro
.
StocGameMessage
.
MsgShuffleHand
],
[
"
pos_change
"
,
ygopro
.
StocGameMessage
.
MsgPosChange
],
[
"
select_yes_no
"
,
ygopro
.
StocGameMessage
.
MsgSelectYesNo
],
[
"
set
"
,
ygopro
.
StocGameMessage
.
MsgSet
],
...
...
src/api/ocgcore/ocgAdapter/stoc/stocGameMsg/shuffleHandExtra.ts
0 → 100644
View file @
9f145997
import
{
ygopro
}
from
"
@/api/ocgcore/idl/ocgcore
"
;
import
{
BufferReader
}
from
"
../../../../../../rust-src/pkg/rust_src
"
;
import
MsgShuffleHandExtra
=
ygopro
.
StocGameMessage
.
MsgShuffleHandExtra
;
/*
* Msg Shuffle Hand or Extra
* @param - TODO
*
* @usage - 手牌/额外卡组切洗
* */
export
default
(
data
:
Uint8Array
,
isExtra
:
boolean
)
=>
{
const
reader
=
new
BufferReader
(
data
);
const
zone
=
isExtra
?
ygopro
.
CardZone
.
EXTRA
:
ygopro
.
CardZone
.
HAND
;
const
player
=
reader
.
readUint8
();
const
count
=
reader
.
readUint8
();
const
cards
=
[];
for
(
let
i
=
0
;
i
<
count
;
i
++
)
{
cards
.
push
(
reader
.
readUint32
());
}
return
new
MsgShuffleHandExtra
({
player
,
zone
,
cards
,
});
};
src/service/duel/gameMsg.ts
View file @
9f145997
...
...
@@ -38,7 +38,7 @@ import onMsgSelectUnselectCard from "./selectUnselectCard";
import
onMsgSelectYesNo
from
"
./selectYesNo
"
;
import
onMsgSet
from
"
./set
"
;
import
onMsgShuffleDeck
from
"
./shuffleDeck
"
;
import
onMsgShuffleHand
from
"
./shuffleHand
"
;
import
onMsgShuffleHand
Extra
from
"
./shuffleHandExtra
"
;
import
onMsgShuffleSetCard
from
"
./shuffleSetCard
"
;
import
onMsgSortCard
from
"
./sortCard
"
;
import
onMsgSpSummoned
from
"
./spSummoned
"
;
...
...
@@ -149,8 +149,8 @@ async function _handleGameMsg(pb: ygopro.YgoStocMsg) {
break
;
}
case
"
shuffle_hand
"
:
{
await
onMsgShuffleHand
(
msg
.
shuffle_hand
);
case
"
shuffle_hand
_extra
"
:
{
await
onMsgShuffleHand
Extra
(
msg
.
shuffle_hand_extra
);
break
;
}
...
...
src/service/duel/shuffleHand.ts
→
src/service/duel/shuffleHand
Extra
.ts
View file @
9f145997
...
...
@@ -2,37 +2,37 @@ import { ygopro } from "@/api";
import
{
eventbus
,
Task
}
from
"
@/infra
"
;
import
{
cardStore
}
from
"
@/stores
"
;
type
MsgShuffleHand
=
ygopro
.
StocGameMessage
.
MsgShuffleHand
;
type
MsgShuffleHand
Extra
=
ygopro
.
StocGameMessage
.
MsgShuffleHandExtra
;
export
default
async
(
shuffleHand
:
MsgShuffleHand
)
=>
{
const
{
hands
:
codes
,
player
:
controller
}
=
shuffleHand
;
export
default
async
(
shuffleHand
Extra
:
MsgShuffleHandExtra
)
=>
{
const
{
cards
:
codes
,
player
:
controller
,
zone
}
=
shuffleHandExtra
;
// 本质上是要将手卡的sequence变成和codes一样的顺序
const
hands
=
cardStore
.
at
(
ygopro
.
CardZone
.
HAND
,
controller
);
// 本质上是要将手卡
/额外卡组
的sequence变成和codes一样的顺序
const
cards
=
cardStore
.
at
(
zone
,
controller
);
const
hash
=
new
Map
(
codes
.
map
((
code
)
=>
[
code
,
new
Array
()]));
codes
.
forEach
((
code
,
sequence
)
=>
{
hash
.
get
(
code
)?.
push
(
sequence
);
});
for
(
const
hand
of
han
ds
)
{
const
sequences
=
hash
.
get
(
han
d
.
code
);
for
(
const
card
of
car
ds
)
{
const
sequences
=
hash
.
get
(
car
d
.
code
);
if
(
sequences
!==
undefined
)
{
const
sequence
=
sequences
.
pop
();
if
(
sequence
!==
undefined
)
{
han
d
.
location
.
sequence
=
sequence
;
hash
.
set
(
han
d
.
code
,
sequences
);
car
d
.
location
.
sequence
=
sequence
;
hash
.
set
(
car
d
.
code
,
sequences
);
// 触发动画
await
eventbus
.
call
(
Task
.
Move
,
han
d
.
uuid
);
await
eventbus
.
call
(
Task
.
Move
,
car
d
.
uuid
);
}
else
{
console
.
warn
(
`<ShuffleHand
>sequence poped is none, controller=
${
controller
}
, code=
${
han
d
.
code
}
, sequence=
${
sequence
}
`
`<ShuffleHand
Extra>sequence poped is none, controller=
${
controller
}
, code=
${
car
d
.
code
}
, sequence=
${
sequence
}
`
);
}
}
else
{
console
.
warn
(
`<ShuffleHand
>target from records is null, controller=
${
controller
}
, hands=
${
han
ds
.
map
(
(
hand
)
=>
han
d
.
code
`<ShuffleHand
Extra>target from records is null, controller=
${
controller
}
, cards=
${
car
ds
.
map
(
(
card
)
=>
car
d
.
code
)}
, codes=
${
codes
}
`
);
}
...
...
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