Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
N
Neos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
love_飞影
Neos
Commits
3c093e3c
Commit
3c093e3c
authored
Oct 19, 2022
by
Chunchi Che
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rerange service
parent
9b927ea0
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
174 additions
and
119 deletions
+174
-119
src/service/onSocketMessage.ts
src/service/onSocketMessage.ts
+12
-119
src/service/room/chat.ts
src/service/room/chat.ts
+10
-0
src/service/room/hsPlayerChange.ts
src/service/room/hsPlayerChange.ts
+77
-0
src/service/room/hsPlayerEnter.ts
src/service/room/hsPlayerEnter.ts
+16
-0
src/service/room/hsWatchChange.ts
src/service/room/hsWatchChange.ts
+10
-0
src/service/room/joinGame.ts
src/service/room/joinGame.ts
+11
-0
src/service/room/typeChange.ts
src/service/room/typeChange.ts
+38
-0
No files found.
src/service/onSocketMessage.ts
View file @
3c093e3c
import
{
ygopro
}
from
"
../api/idl/ocgcore
"
;
import
{
ygopro
}
from
"
../api/idl/ocgcore
"
;
import
{
store
}
from
"
../store
"
;
import
handleHsPlayerChange
from
"
./room/hsPlayerChange
"
;
import
{
setJoined
}
from
"
../reducers/joinSlice
"
;
import
handleTypeChange
from
"
./room/typeChange
"
;
import
{
postChat
}
from
"
../reducers/chatSlice
"
;
import
handleHsPlayerEnter
from
"
./room/hsPlayerEnter
"
;
import
{
import
handleJoinGame
from
"
./room/joinGame
"
;
player0Enter
,
import
handleChat
from
"
./room/chat
"
;
player1Enter
,
import
handleHsWatchChange
from
"
./room/hsWatchChange
"
;
player0Update
,
player1Update
,
player0Leave
,
player1Leave
,
hostChange
,
observerIncrement
,
observerChange
,
updateIsHost
,
}
from
"
../reducers/playerSlice
"
;
const
READY_STATE
=
"
ready
"
;
const
NO_READY_STATE
=
"
not ready
"
;
export
default
function
handleSocketMessage
(
e
:
MessageEvent
)
{
export
default
function
handleSocketMessage
(
e
:
MessageEvent
)
{
const
pb
=
ygopro
.
YgoStocMsg
.
deserializeBinary
(
e
.
data
);
const
pb
=
ygopro
.
YgoStocMsg
.
deserializeBinary
(
e
.
data
);
const
dispatch
=
store
.
dispatch
;
switch
(
pb
.
msg
)
{
switch
(
pb
.
msg
)
{
case
"
stoc_join_game
"
:
{
case
"
stoc_join_game
"
:
{
const
msg
=
pb
.
stoc_join_game
;
handleJoinGame
(
pb
);
// todo
dispatch
(
setJoined
());
break
;
break
;
}
}
case
"
stoc_chat
"
:
{
case
"
stoc_chat
"
:
{
const
chat
=
pb
.
stoc_chat
;
handleChat
(
pb
)
;
dispatch
(
postChat
(
chat
.
msg
));
break
;
break
;
}
}
case
"
stoc_hs_player_change
"
:
{
case
"
stoc_hs_player_change
"
:
{
const
change
=
pb
.
stoc_hs_player_change
;
handleHsPlayerChange
(
pb
);
if
(
change
.
pos
>
1
)
{
console
.
log
(
"
Currently only supported 2v2 mode.
"
);
}
else
{
switch
(
change
.
state
)
{
case
ygopro
.
StocHsPlayerChange
.
State
.
UNKNOWN
:
{
console
.
log
(
"
Unknown HsPlayerChange State
"
);
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
MOVE
:
{
console
.
log
(
"
Player
"
+
change
.
pos
+
"
moved to
"
+
change
.
moved_pos
);
let
src
=
change
.
pos
;
let
dst
=
change
.
moved_pos
;
// todo
// if (src === 0 && dst === 1) {
// setPlayer1(player0);
// setPlayer0({});
// } else if (src === 1 && dst === 0) {
// setPlayer0(player1);
// setPlayer1({});
// }
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
READY
:
{
change
.
pos
==
0
?
dispatch
(
player0Update
(
READY_STATE
))
:
dispatch
(
player1Update
(
READY_STATE
));
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
NO_READY
:
{
change
.
pos
==
0
?
dispatch
(
player0Update
(
NO_READY_STATE
))
:
dispatch
(
player1Update
(
NO_READY_STATE
));
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
LEAVE
:
{
change
.
pos
==
0
?
dispatch
(
player0Leave
)
:
dispatch
(
player1Leave
);
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
TO_OBSERVER
:
{
change
.
pos
==
0
?
dispatch
(
player0Leave
)
:
dispatch
(
player1Leave
);
dispatch
(
observerIncrement
());
break
;
}
default
:
{
break
;
}
}
}
break
;
break
;
}
}
case
"
stoc_hs_watch_change
"
:
{
case
"
stoc_hs_watch_change
"
:
{
const
count
=
pb
.
stoc_hs_watch_change
.
count
;
handleHsWatchChange
(
pb
);
dispatch
(
observerChange
(
count
));
break
;
break
;
}
}
case
"
stoc_hs_player_enter
"
:
{
case
"
stoc_hs_player_enter
"
:
{
const
name
=
pb
.
stoc_hs_player_enter
.
name
;
handleHsPlayerEnter
(
pb
);
const
pos
=
pb
.
stoc_hs_player_enter
.
pos
;
if
(
pos
>
1
)
{
console
.
log
(
"
Currently only supported 2v2 mode.
"
);
}
else
{
pos
==
0
?
dispatch
(
player0Enter
(
name
))
:
dispatch
(
player1Enter
(
name
));
}
break
;
break
;
}
}
case
"
stoc_type_change
"
:
{
case
"
stoc_type_change
"
:
{
const
selfType
=
pb
.
stoc_type_change
.
self_type
;
handleTypeChange
(
pb
);
const
assertHost
=
pb
.
stoc_type_change
.
is_host
;
dispatch
(
updateIsHost
(
assertHost
));
if
(
assertHost
)
{
switch
(
selfType
)
{
case
ygopro
.
StocTypeChange
.
SelfType
.
PLAYER1
:
{
dispatch
(
hostChange
(
0
));
dispatch
(
player0Update
(
NO_READY_STATE
));
break
;
}
case
ygopro
.
StocTypeChange
.
SelfType
.
PLAYER2
:
{
dispatch
(
hostChange
(
0
));
dispatch
(
player1Update
(
NO_READY_STATE
));
break
;
}
default
:
{
break
;
}
}
}
break
;
break
;
}
}
...
...
src/service/room/chat.ts
0 → 100644
View file @
3c093e3c
import
{
ygopro
}
from
"
../../api/idl/ocgcore
"
;
import
{
postChat
}
from
"
../../reducers/chatSlice
"
;
import
{
store
}
from
"
../../store
"
;
export
default
function
handleChat
(
pb
:
ygopro
.
YgoStocMsg
)
{
const
dispatch
=
store
.
dispatch
;
const
chat
=
pb
.
stoc_chat
;
dispatch
(
postChat
(
chat
.
msg
));
}
src/service/room/hsPlayerChange.ts
0 → 100644
View file @
3c093e3c
import
{
ygopro
}
from
"
../../api/idl/ocgcore
"
;
import
{
store
}
from
"
../../store
"
;
import
{
player0Update
,
player1Update
,
player0Leave
,
player1Leave
,
observerIncrement
,
}
from
"
../../reducers/playerSlice
"
;
const
READY_STATE
=
"
ready
"
;
const
NO_READY_STATE
=
"
not ready
"
;
export
default
function
handleHsPlayerChange
(
pb
:
ygopro
.
YgoStocMsg
)
{
const
dispatch
=
store
.
dispatch
;
const
change
=
pb
.
stoc_hs_player_change
;
if
(
change
.
pos
>
1
)
{
console
.
log
(
"
Currently only supported 2v2 mode.
"
);
}
else
{
switch
(
change
.
state
)
{
case
ygopro
.
StocHsPlayerChange
.
State
.
UNKNOWN
:
{
console
.
log
(
"
Unknown HsPlayerChange State
"
);
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
MOVE
:
{
console
.
log
(
"
Player
"
+
change
.
pos
+
"
moved to
"
+
change
.
moved_pos
);
let
src
=
change
.
pos
;
let
dst
=
change
.
moved_pos
;
console
.
log
(
"
Currently unsupport Move type of StocHsPlayerChange.
"
);
// todo
// if (src === 0 && dst === 1) {
// setPlayer1(player0);
// setPlayer0({});
// } else if (src === 1 && dst === 0) {
// setPlayer0(player1);
// setPlayer1({});
// }
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
READY
:
{
change
.
pos
==
0
?
dispatch
(
player0Update
(
READY_STATE
))
:
dispatch
(
player1Update
(
READY_STATE
));
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
NO_READY
:
{
change
.
pos
==
0
?
dispatch
(
player0Update
(
NO_READY_STATE
))
:
dispatch
(
player1Update
(
NO_READY_STATE
));
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
LEAVE
:
{
change
.
pos
==
0
?
dispatch
(
player0Leave
)
:
dispatch
(
player1Leave
);
break
;
}
case
ygopro
.
StocHsPlayerChange
.
State
.
TO_OBSERVER
:
{
change
.
pos
==
0
?
dispatch
(
player0Leave
)
:
dispatch
(
player1Leave
);
dispatch
(
observerIncrement
());
break
;
}
default
:
{
break
;
}
}
}
}
src/service/room/hsPlayerEnter.ts
0 → 100644
View file @
3c093e3c
import
{
ygopro
}
from
"
../../api/idl/ocgcore
"
;
import
{
store
}
from
"
../../store
"
;
import
{
player0Enter
,
player1Enter
}
from
"
../../reducers/playerSlice
"
;
export
default
function
handleHsPlayerEnter
(
pb
:
ygopro
.
YgoStocMsg
)
{
const
dispatch
=
store
.
dispatch
;
const
name
=
pb
.
stoc_hs_player_enter
.
name
;
const
pos
=
pb
.
stoc_hs_player_enter
.
pos
;
if
(
pos
>
1
)
{
console
.
log
(
"
Currently only supported 2v2 mode.
"
);
}
else
{
pos
==
0
?
dispatch
(
player0Enter
(
name
))
:
dispatch
(
player1Enter
(
name
));
}
}
src/service/room/hsWatchChange.ts
0 → 100644
View file @
3c093e3c
import
{
ygopro
}
from
"
../../api/idl/ocgcore
"
;
import
{
observerChange
}
from
"
../../reducers/playerSlice
"
;
import
{
store
}
from
"
../../store
"
;
export
default
function
handleHsWatchChange
(
pb
:
ygopro
.
YgoStocMsg
)
{
const
dispatch
=
store
.
dispatch
;
const
count
=
pb
.
stoc_hs_watch_change
.
count
;
dispatch
(
observerChange
(
count
));
}
src/service/room/joinGame.ts
0 → 100644
View file @
3c093e3c
import
{
ygopro
}
from
"
../../api/idl/ocgcore
"
;
import
{
store
}
from
"
../../store
"
;
import
{
setJoined
}
from
"
../../reducers/joinSlice
"
;
export
default
function
handleJoinGame
(
pb
:
ygopro
.
YgoStocMsg
)
{
const
dispatch
=
store
.
dispatch
;
const
msg
=
pb
.
stoc_join_game
;
// todo
dispatch
(
setJoined
());
}
src/service/room/typeChange.ts
0 → 100644
View file @
3c093e3c
import
{
ygopro
}
from
"
../../api/idl/ocgcore
"
;
import
{
player0Update
,
player1Update
,
hostChange
,
updateIsHost
,
}
from
"
../../reducers/playerSlice
"
;
import
{
store
}
from
"
../../store
"
;
const
NO_READY_STATE
=
"
not ready
"
;
export
default
function
handleTypeChange
(
pb
:
ygopro
.
YgoStocMsg
)
{
const
dispatch
=
store
.
dispatch
;
const
selfType
=
pb
.
stoc_type_change
.
self_type
;
const
assertHost
=
pb
.
stoc_type_change
.
is_host
;
dispatch
(
updateIsHost
(
assertHost
));
if
(
assertHost
)
{
switch
(
selfType
)
{
case
ygopro
.
StocTypeChange
.
SelfType
.
PLAYER1
:
{
dispatch
(
hostChange
(
0
));
dispatch
(
player0Update
(
NO_READY_STATE
));
break
;
}
case
ygopro
.
StocTypeChange
.
SelfType
.
PLAYER2
:
{
dispatch
(
hostChange
(
0
));
dispatch
(
player1Update
(
NO_READY_STATE
));
break
;
}
default
:
{
break
;
}
}
}
}
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