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
7e6f9eae
Commit
7e6f9eae
authored
Jun 21, 2023
by
timel
Committed by
Chunchi Che
Jun 22, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: remove unused codes, fmt
parent
ee27706b
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
72 additions
and
256 deletions
+72
-256
src/main.tsx
src/main.tsx
+1
-1
src/service/duel/gameMsg.ts
src/service/duel/gameMsg.ts
+1
-2
src/service/duel/selectCard.ts
src/service/duel/selectCard.ts
+5
-17
src/service/duel/selectChain.ts
src/service/duel/selectChain.ts
+6
-24
src/service/duel/selectSum.ts
src/service/duel/selectSum.ts
+4
-20
src/service/duel/selectTribute.ts
src/service/duel/selectTribute.ts
+5
-16
src/service/duel/selectUnselectCard.ts
src/service/duel/selectUnselectCard.ts
+4
-21
src/stores/index.ts
src/stores/index.ts
+0
-1
src/stores/messageStore/index.ts
src/stores/messageStore/index.ts
+0
-1
src/stores/messageStore/methods/clearSelectActions.ts
src/stores/messageStore/methods/clearSelectActions.ts
+0
-19
src/stores/messageStore/methods/index.ts
src/stores/messageStore/methods/index.ts
+0
-1
src/stores/messageStore/store.ts
src/stores/messageStore/store.ts
+0
-9
src/stores/messageStore/types.ts
src/stores/messageStore/types.ts
+0
-25
src/stores/methods/fetchCheckCardMeta.ts
src/stores/methods/fetchCheckCardMeta.ts
+0
-50
src/stores/methods/index.ts
src/stores/methods/index.ts
+0
-1
src/ui/Duel/Message/CardListModal.tsx
src/ui/Duel/Message/CardListModal.tsx
+3
-3
src/ui/Duel/Message/CardModal/Desc.tsx
src/ui/Duel/Message/CardModal/Desc.tsx
+1
-0
src/ui/Duel/Message/CardModal/index.tsx
src/ui/Duel/Message/CardModal/index.tsx
+7
-10
src/ui/Duel/Message/HintNotification.tsx
src/ui/Duel/Message/HintNotification.tsx
+1
-1
src/ui/Duel/Message/NeosModal/index.tsx
src/ui/Duel/Message/NeosModal/index.tsx
+4
-3
src/ui/Duel/Message/OptionModal.tsx
src/ui/Duel/Message/OptionModal.tsx
+4
-3
src/ui/Duel/Message/SelectActionsModal/index.tsx
src/ui/Duel/Message/SelectActionsModal/index.tsx
+9
-9
src/ui/Duel/PlayMat/Card/index.tsx
src/ui/Duel/PlayMat/Card/index.tsx
+10
-12
src/ui/Duel/PlayMat/Card/springs/types.ts
src/ui/Duel/PlayMat/Card/springs/types.ts
+2
-2
src/ui/Shared/YgoCard/index.tsx
src/ui/Shared/YgoCard/index.tsx
+4
-4
src/ui/WaitRoom.tsx
src/ui/WaitRoom.tsx
+1
-1
No files found.
src/main.tsx
View file @
7e6f9eae
...
@@ -19,12 +19,12 @@
...
@@ -19,12 +19,12 @@
* 在进行代码开发的时候需要注意这点。
* 在进行代码开发的时候需要注意这点。
*
*
* */
* */
import
{
ProConfigProvider
}
from
"
@ant-design/pro-provider
"
;
import
{
ConfigProvider
,
theme
}
from
"
antd
"
;
import
{
ConfigProvider
,
theme
}
from
"
antd
"
;
import
zhCN
from
"
antd/locale/zh_CN
"
;
import
zhCN
from
"
antd/locale/zh_CN
"
;
import
React
from
"
react
"
;
import
React
from
"
react
"
;
import
ReactDOM
from
"
react-dom/client
"
;
import
ReactDOM
from
"
react-dom/client
"
;
import
{
BrowserRouter
}
from
"
react-router-dom
"
;
import
{
BrowserRouter
}
from
"
react-router-dom
"
;
import
{
ProConfigProvider
}
from
"
@ant-design/pro-provider
"
;
import
Neos
from
"
./ui/Neos
"
;
import
Neos
from
"
./ui/Neos
"
;
...
...
src/service/duel/gameMsg.ts
View file @
7e6f9eae
import
{
ygopro
}
from
"
@/api
"
;
import
{
ygopro
}
from
"
@/api
"
;
import
{
sleep
}
from
"
@/infra
"
;
import
{
sleep
}
from
"
@/infra
"
;
import
{
matStore
}
from
"
@/stores
"
;
import
{
matStore
}
from
"
@/stores
"
;
import
{
showWaiting
}
from
"
@/ui/Duel/Message
"
;
import
onAnnounce
from
"
./announce
"
;
import
onAnnounce
from
"
./announce
"
;
import
onMsgAttack
from
"
./attack
"
;
import
onMsgAttack
from
"
./attack
"
;
...
@@ -53,8 +54,6 @@ import onMsgUpdateHp from "./updateHp";
...
@@ -53,8 +54,6 @@ import onMsgUpdateHp from "./updateHp";
import
onMsgWait
from
"
./wait
"
;
import
onMsgWait
from
"
./wait
"
;
import
onMsgWin
from
"
./win
"
;
import
onMsgWin
from
"
./win
"
;
import
{
showWaiting
}
from
"
@/ui/Duel/Message
"
;
const
ActiveList
=
[
const
ActiveList
=
[
"
select_idle_cmd
"
,
"
select_idle_cmd
"
,
"
select_place
"
,
"
select_place
"
,
...
...
src/service/duel/selectCard.ts
View file @
7e6f9eae
import
{
ygopro
}
from
"
@/api
"
;
import
{
ygopro
}
from
"
@/api
"
;
import
MsgSelectCard
=
ygopro
.
StocGameMessage
.
MsgSelectCard
;
import
MsgSelectCard
=
ygopro
.
StocGameMessage
.
MsgSelectCard
;
import
{
fetchCheckCardMeta
,
messageStore
}
from
"
@/stores
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
fetchCheckCardMeta
as
FIXME_fetchCheckCardMeta
}
from
"
../utils
"
;
import
{
fetchCheckCardMeta
}
from
"
../utils
"
;
export
default
async
(
selectCard
:
MsgSelectCard
)
=>
{
export
default
async
(
selectCard
:
MsgSelectCard
)
=>
{
const
{
cancelable
,
min
,
max
,
cards
}
=
selectCard
;
const
{
cancelable
,
min
,
max
,
cards
}
=
selectCard
;
// TODO: handle release_param
// TODO: handle release_param
messageStore
.
selectCardActions
.
min
=
min
;
messageStore
.
selectCardActions
.
max
=
max
;
messageStore
.
selectCardActions
.
cancelAble
=
cancelable
;
for
(
const
card
of
cards
)
{
fetchCheckCardMeta
({
code
:
card
.
code
,
location
:
card
.
location
,
response
:
card
.
response
,
});
}
messageStore
.
selectCardActions
.
isValid
=
true
;
messageStore
.
selectCardActions
.
isOpen
=
true
;
const
{
selecteds
,
mustSelects
,
selectables
}
=
const
{
selecteds
,
mustSelects
,
selectables
}
=
await
fetchCheckCardMeta
(
await
FIXME_fetchCheckCardMeta
(
cards
);
cards
);
await
displaySelectActionsModal
({
await
displaySelectActionsModal
({
cancelable
,
cancelable
,
min
,
min
,
...
...
src/service/duel/selectChain.ts
View file @
7e6f9eae
import
{
sendSelectSingleResponse
,
ygopro
}
from
"
@/api
"
;
import
{
sendSelectSingleResponse
,
ygopro
}
from
"
@/api
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
import
{
fetchSelectHintMeta
,
messageStore
}
from
"
@/stores
"
;
fetchCheckCardMeta
,
fetchSelectHintMeta
,
messageStore
,
}
from
"
@/stores
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
fetchCheckCardMeta
as
FIXME_fetchCheckCardMeta
}
from
"
../utils
"
;
import
{
fetchCheckCardMeta
}
from
"
../utils
"
;
const
NeosConfig
=
useConfig
();
const
NeosConfig
=
useConfig
();
...
@@ -66,27 +63,12 @@ export default async (selectChain: MsgSelectChain) => {
...
@@ -66,27 +63,12 @@ export default async (selectChain: MsgSelectChain) => {
case
2
:
// 处理多张
case
2
:
// 处理多张
case
3
:
{
case
3
:
{
// 处理强制发动的卡
// 处理强制发动的卡
messageStore
.
selectCardActions
.
isChain
=
true
;
messageStore
.
selectCardActions
.
min
=
1
;
messageStore
.
selectCardActions
.
max
=
1
;
messageStore
.
selectCardActions
.
cancelAble
=
!
forced
;
for
(
const
chain
of
chains
)
{
fetchCheckCardMeta
({
code
:
chain
.
code
,
location
:
chain
.
location
,
response
:
chain
.
response
,
effectDescCode
:
chain
.
effect_description
,
});
}
fetchSelectHintMeta
({
fetchSelectHintMeta
({
selectHintData
:
203
,
selectHintData
:
203
,
});
});
messageStore
.
selectCardActions
.
isValid
=
true
;
const
{
selecteds
,
mustSelects
,
selectables
}
=
await
fetchCheckCardMeta
(
messageStore
.
selectCardActions
.
isOpen
=
true
;
chains
const
{
selecteds
,
mustSelects
,
selectables
}
=
);
await
FIXME_fetchCheckCardMeta
(
chains
);
await
displaySelectActionsModal
({
await
displaySelectActionsModal
({
isChain
:
true
,
isChain
:
true
,
cancelable
:
!
forced
,
cancelable
:
!
forced
,
...
...
src/service/duel/selectSum.ts
View file @
7e6f9eae
import
{
ygopro
}
from
"
@/api
"
;
import
{
ygopro
}
from
"
@/api
"
;
import
{
fetchCheckCardMeta
,
messageStore
}
from
"
@/stores
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
fetchCheckCardMeta
as
FIXME_fetchCheckCardMeta
}
from
"
../utils
"
;
import
{
fetchCheckCardMeta
}
from
"
../utils
"
;
type
MsgSelectSum
=
ygopro
.
StocGameMessage
.
MsgSelectSum
;
type
MsgSelectSum
=
ygopro
.
StocGameMessage
.
MsgSelectSum
;
export
default
async
(
selectSum
:
MsgSelectSum
)
=>
{
export
default
async
(
selectSum
:
MsgSelectSum
)
=>
{
messageStore
.
selectCardActions
.
overflow
=
selectSum
.
overflow
!=
0
;
messageStore
.
selectCardActions
.
totalLevels
=
selectSum
.
level_sum
;
messageStore
.
selectCardActions
.
min
=
selectSum
.
min
;
messageStore
.
selectCardActions
.
max
=
selectSum
.
max
;
for
(
const
option
of
selectSum
.
must_select_cards
)
{
fetchCheckCardMeta
(
option
,
false
,
true
);
}
for
(
const
option
of
selectSum
.
selectable_cards
)
{
fetchCheckCardMeta
(
option
);
}
messageStore
.
selectCardActions
.
isValid
=
true
;
messageStore
.
selectCardActions
.
isOpen
=
true
;
const
{
const
{
selecteds
:
selecteds1
,
selecteds
:
selecteds1
,
mustSelects
:
mustSelect1
,
mustSelects
:
mustSelect1
,
selectables
:
selectable1
,
selectables
:
selectable1
,
}
=
await
FIXME_
fetchCheckCardMeta
(
selectSum
.
must_select_cards
,
false
,
true
);
}
=
await
fetchCheckCardMeta
(
selectSum
.
must_select_cards
,
false
,
true
);
const
{
const
{
selecteds
:
selecteds2
,
selecteds
:
selecteds2
,
mustSelects
:
mustSelect2
,
mustSelects
:
mustSelect2
,
selectables
:
selectable2
,
selectables
:
selectable2
,
}
=
await
FIXME_
fetchCheckCardMeta
(
selectSum
.
selectable_cards
);
}
=
await
fetchCheckCardMeta
(
selectSum
.
selectable_cards
);
await
displaySelectActionsModal
({
await
displaySelectActionsModal
({
overflow
:
selectSum
.
overflow
!==
0
,
overflow
:
selectSum
.
overflow
!==
0
,
totalLevels
:
selectSum
.
level_sum
,
totalLevels
:
selectSum
.
level_sum
,
...
...
src/service/duel/selectTribute.ts
View file @
7e6f9eae
import
{
ygopro
}
from
"
@/api
"
;
import
{
ygopro
}
from
"
@/api
"
;
import
{
fetchCheckCardMeta
,
messageStore
}
from
"
@/stores
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
fetchCheckCardMeta
as
FIXME_fetchCheckCardMeta
}
from
"
../utils
"
;
import
{
fetchCheckCardMeta
}
from
"
../utils
"
;
type
MsgSelectTribute
=
ygopro
.
StocGameMessage
.
MsgSelectTribute
;
type
MsgSelectTribute
=
ygopro
.
StocGameMessage
.
MsgSelectTribute
;
export
default
async
(
selectTribute
:
MsgSelectTribute
)
=>
{
export
default
async
(
selectTribute
:
MsgSelectTribute
)
=>
{
// TODO: 当玩家选择卡数大于`max`时,是否也合法?
// TODO: 当玩家选择卡数大于`max`时,是否也合法?
messageStore
.
selectCardActions
.
overflow
=
true
;
const
{
selecteds
,
mustSelects
,
selectables
}
=
await
fetchCheckCardMeta
(
messageStore
.
selectCardActions
.
totalLevels
=
0
;
selectTribute
.
selectable_cards
messageStore
.
selectCardActions
.
min
=
selectTribute
.
min
;
);
messageStore
.
selectCardActions
.
max
=
selectTribute
.
max
;
for
(
const
option
of
selectTribute
.
selectable_cards
)
{
fetchCheckCardMeta
(
option
);
}
messageStore
.
selectCardActions
.
isValid
=
true
;
messageStore
.
selectCardActions
.
isOpen
=
true
;
const
{
selecteds
,
mustSelects
,
selectables
}
=
await
FIXME_fetchCheckCardMeta
(
selectTribute
.
selectable_cards
);
await
displaySelectActionsModal
({
await
displaySelectActionsModal
({
overflow
:
true
,
overflow
:
true
,
totalLevels
:
0
,
totalLevels
:
0
,
...
...
src/service/duel/selectUnselectCard.ts
View file @
7e6f9eae
import
{
ygopro
}
from
"
@/api
"
;
import
{
ygopro
}
from
"
@/api
"
;
import
{
fetchCheckCardMeta
,
messageStore
}
from
"
@/stores
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
displaySelectActionsModal
}
from
"
@/ui/Duel/Message/SelectActionsModal
"
;
import
{
fetchCheckCardMeta
as
FIXME_fetchCheckCardMeta
}
from
"
../utils
"
;
import
{
fetchCheckCardMeta
}
from
"
../utils
"
;
type
MsgSelectUnselectCard
=
ygopro
.
StocGameMessage
.
MsgSelectUnselectCard
;
type
MsgSelectUnselectCard
=
ygopro
.
StocGameMessage
.
MsgSelectUnselectCard
;
export
default
async
({
export
default
async
({
...
@@ -12,33 +12,16 @@ export default async ({
...
@@ -12,33 +12,16 @@ export default async ({
selectable_cards
:
selectableCards
,
selectable_cards
:
selectableCards
,
selected_cards
:
selectedCards
,
selected_cards
:
selectedCards
,
}:
MsgSelectUnselectCard
)
=>
{
}:
MsgSelectUnselectCard
)
=>
{
messageStore
.
selectCardActions
.
finishAble
=
finishable
;
messageStore
.
selectCardActions
.
cancelAble
=
cancelable
;
messageStore
.
selectCardActions
.
min
=
min
;
messageStore
.
selectCardActions
.
max
=
max
;
messageStore
.
selectCardActions
.
single
=
true
;
for
(
const
option
of
selectableCards
)
{
await
fetchCheckCardMeta
(
option
);
}
for
(
const
option
of
selectedCards
)
{
await
fetchCheckCardMeta
(
option
,
true
);
}
messageStore
.
selectCardActions
.
isValid
=
true
;
messageStore
.
selectCardActions
.
isOpen
=
true
;
const
{
const
{
selecteds
:
selecteds1
,
selecteds
:
selecteds1
,
mustSelects
:
mustSelect1
,
mustSelects
:
mustSelect1
,
selectables
:
selectable1
,
selectables
:
selectable1
,
}
=
await
FIXME_
fetchCheckCardMeta
(
selectableCards
);
}
=
await
fetchCheckCardMeta
(
selectableCards
);
const
{
const
{
selecteds
:
selecteds2
,
selecteds
:
selecteds2
,
mustSelects
:
mustSelect2
,
mustSelects
:
mustSelect2
,
selectables
:
selectable2
,
selectables
:
selectable2
,
}
=
await
FIXME_
fetchCheckCardMeta
(
selectedCards
,
true
);
}
=
await
fetchCheckCardMeta
(
selectedCards
,
true
);
await
displaySelectActionsModal
({
await
displaySelectActionsModal
({
finishable
,
finishable
,
cancelable
,
cancelable
,
...
...
src/stores/index.ts
View file @
7e6f9eae
...
@@ -3,7 +3,6 @@ export * from "./chatStore";
...
@@ -3,7 +3,6 @@ export * from "./chatStore";
export
*
from
"
./joinStore
"
;
export
*
from
"
./joinStore
"
;
export
*
from
"
./matStore
"
;
export
*
from
"
./matStore
"
;
export
*
from
"
./messageStore
"
;
export
*
from
"
./messageStore
"
;
export
*
from
"
./methods
"
;
export
*
from
"
./moraStore
"
;
export
*
from
"
./moraStore
"
;
export
*
from
"
./placeStore
"
;
export
*
from
"
./placeStore
"
;
export
*
from
"
./playerStore
"
;
export
*
from
"
./playerStore
"
;
...
...
src/stores/messageStore/index.ts
View file @
7e6f9eae
export
*
from
"
./methods
"
;
export
*
from
"
./store
"
;
export
*
from
"
./store
"
;
src/stores/messageStore/methods/clearSelectActions.ts
deleted
100644 → 0
View file @
ee27706b
import
{
messageStore
}
from
"
../store
"
;
const
{
selectCardActions
}
=
messageStore
;
export
const
clearSelectActions
=
()
=>
{
selectCardActions
.
isOpen
=
false
;
selectCardActions
.
isValid
=
false
;
selectCardActions
.
isChain
=
undefined
;
selectCardActions
.
min
=
undefined
;
selectCardActions
.
max
=
undefined
;
selectCardActions
.
cancelAble
=
false
;
selectCardActions
.
totalLevels
=
undefined
;
selectCardActions
.
selecteds
=
[];
selectCardActions
.
selectables
=
[];
selectCardActions
.
mustSelects
=
[];
selectCardActions
.
finishAble
=
false
;
selectCardActions
.
overflow
=
false
;
selectCardActions
.
single
=
undefined
;
};
src/stores/messageStore/methods/index.ts
deleted
100644 → 0
View file @
ee27706b
export
*
from
"
./clearSelectActions
"
;
src/stores/messageStore/store.ts
View file @
7e6f9eae
...
@@ -5,15 +5,6 @@ import type { ModalState } from "./types";
...
@@ -5,15 +5,6 @@ import type { ModalState } from "./types";
export
const
messageStore
=
proxy
<
ModalState
>
({
export
const
messageStore
=
proxy
<
ModalState
>
({
cardModal
:
{
isOpen
:
false
,
interactivies
:
[],
counters
:
{}
},
cardModal
:
{
isOpen
:
false
,
interactivies
:
[],
counters
:
{}
},
cardListModal
:
{
isOpen
:
false
,
list
:
[]
},
cardListModal
:
{
isOpen
:
false
,
list
:
[]
},
selectCardActions
:
{
isOpen
:
false
,
isValid
:
false
,
cancelAble
:
false
,
finishAble
:
false
,
selecteds
:
[],
selectables
:
[],
mustSelects
:
[],
},
yesNoModal
:
{
isOpen
:
false
},
yesNoModal
:
{
isOpen
:
false
},
positionModal
:
{
isOpen
:
false
,
positions
:
[]
},
positionModal
:
{
isOpen
:
false
,
positions
:
[]
},
checkCounterModal
:
{
checkCounterModal
:
{
...
...
src/stores/messageStore/types.ts
View file @
7e6f9eae
...
@@ -29,31 +29,6 @@ export interface ModalState {
...
@@ -29,31 +29,6 @@ export interface ModalState {
interactivies
:
{
desc
:
string
;
response
:
number
}[];
interactivies
:
{
desc
:
string
;
response
:
number
}[];
}[];
}[];
};
};
// 卡牌选择状态
selectCardActions
:
{
// 是否打开
isOpen
:
boolean
;
// 是否有效,当有`MSG_SELECT_xxx`到前端时为true,用户选择完成后设置为false
isValid
:
boolean
;
// 如果是连锁,发response给后端的方式稍微有点不同,这里标记下
isChain
?:
boolean
;
min
?:
number
;
max
?:
number
;
// 是否只能选择单个
single
?:
boolean
;
cancelAble
:
boolean
;
finishAble
:
boolean
;
// 上级/同调/超量/链接召唤的总cost
totalLevels
?:
number
;
// cost是否可以溢出,比如同调召唤是false,某些链接召唤是true
overflow
?:
boolean
;
// 已经选择的列表
selecteds
:
Option
[];
// 可以选择的列表
selectables
:
Option
[];
// 必须选择的列表
mustSelects
:
Option
[];
};
// Yes or No弹窗
// Yes or No弹窗
yesNoModal
:
{
yesNoModal
:
{
isOpen
:
boolean
;
isOpen
:
boolean
;
...
...
src/stores/methods/fetchCheckCardMeta.ts
deleted
100644 → 0
View file @
ee27706b
import
{
ygopro
}
from
"
@/api
"
;
import
{
fetchCard
,
getCardStr
}
from
"
@/api/cards
"
;
import
{
cardStore
,
messageStore
}
from
"
@/stores
"
;
export
const
fetchCheckCardMeta
=
async
(
{
code
,
location
,
level1
,
level2
,
response
,
effectDescCode
,
}:
{
code
:
number
;
location
:
ygopro
.
CardLocation
;
level1
?:
number
;
level2
?:
number
;
response
:
number
;
effectDescCode
?:
number
;
},
selected
?:
boolean
,
mustSelect
?:
boolean
)
=>
{
const
controller
=
location
.
controller
;
const
newID
=
code
!=
0
?
code
:
cardStore
.
at
(
location
.
zone
,
controller
,
location
.
sequence
)?.
code
||
0
;
const
meta
=
await
fetchCard
(
newID
);
const
effectDesc
=
effectDescCode
?
getCardStr
(
meta
,
effectDescCode
&
0xf
)
:
undefined
;
const
newOption
=
{
meta
,
location
:
location
.
toObject
(),
level1
,
level2
,
effectDesc
,
response
,
};
if
(
selected
)
{
messageStore
.
selectCardActions
.
selecteds
.
push
(
newOption
);
}
else
if
(
mustSelect
)
{
messageStore
.
selectCardActions
.
mustSelects
.
push
(
newOption
);
}
else
{
messageStore
.
selectCardActions
.
selectables
.
push
(
newOption
);
}
};
src/stores/methods/index.ts
deleted
100644 → 0
View file @
ee27706b
export
*
from
"
./fetchCheckCardMeta
"
;
src/ui/Duel/Message/CardListModal.tsx
View file @
7e6f9eae
...
@@ -2,12 +2,12 @@ import { Drawer, Space } from "antd";
...
@@ -2,12 +2,12 @@ import { Drawer, Space } from "antd";
import
React
from
"
react
"
;
import
React
from
"
react
"
;
import
{
proxy
,
useSnapshot
}
from
"
valtio
"
;
import
{
proxy
,
useSnapshot
}
from
"
valtio
"
;
import
{
ygopro
}
from
"
@/api
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
CardType
,
messageStore
,
cardStore
}
from
"
@/stores
"
;
import
{
cardStore
,
CardType
,
messageStore
}
from
"
@/stores
"
;
import
{
YgoCard
}
from
"
@/ui/Shared
"
;
import
{
showCardModal
}
from
"
./CardModal
"
;
import
{
showCardModal
}
from
"
./CardModal
"
;
import
{
ygopro
}
from
"
@/api
"
;
import
{
YgoCard
}
from
"
@/ui/Shared
"
;
const
NeosConfig
=
useConfig
();
const
NeosConfig
=
useConfig
();
...
...
src/ui/Duel/Message/CardModal/Desc.tsx
View file @
7e6f9eae
import
"
./Desc.scss
"
;
import
"
./Desc.scss
"
;
import
{
Fragment
}
from
"
react
"
;
import
{
Fragment
}
from
"
react
"
;
export
const
Desc
:
React
.
FC
<
{
desc
?:
string
}
>
=
({
desc
=
""
})
=>
{
export
const
Desc
:
React
.
FC
<
{
desc
?:
string
}
>
=
({
desc
=
""
})
=>
{
...
...
src/ui/Duel/Message/CardModal/index.tsx
View file @
7e6f9eae
import
"
@/styles/card-modal.scss
"
;
import
"
@/styles/card-modal.scss
"
;
import
"
./index.scss
"
;
import
{
LeftOutlined
}
from
"
@ant-design/icons
"
;
import
{
Divider
,
Drawer
,
Space
,
Tag
,
Timeline
,
Typography
}
from
"
antd
"
;
import
classnames
from
"
classnames
"
;
import
classnames
from
"
classnames
"
;
import
React
,
{
FC
}
from
"
react
"
;
import
React
,
{
FC
}
from
"
react
"
;
import
{
useSnapshot
,
proxy
}
from
"
valtio
"
;
import
{
proxy
,
useSnapshot
}
from
"
valtio
"
;
import
{
fetchStrings
,
sendSelectIdleCmdResponse
,
type
CardMeta
}
from
"
@/api
"
;
import
{
type
CardMeta
,
fetchStrings
,
sendSelectIdleCmdResponse
}
from
"
@/api
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
cardStore
,
messageStore
,
type
CardType
}
from
"
@/stores
"
;
import
{
cardStore
,
type
CardType
,
messageStore
}
from
"
@/stores
"
;
import
{
YgoCard
}
from
"
@/ui/Shared
"
;
import
{
import
{
Attribute2StringCodeMap
,
Attribute2StringCodeMap
,
...
@@ -14,13 +18,6 @@ import {
...
@@ -14,13 +18,6 @@ import {
Race2StringCodeMap
,
Race2StringCodeMap
,
Type2StringCodeMap
,
Type2StringCodeMap
,
}
from
"
../../../../common
"
;
}
from
"
../../../../common
"
;
import
{
Drawer
,
Space
,
Tag
,
Divider
,
Timeline
,
Typography
}
from
"
antd
"
;
import
{
LeftOutlined
}
from
"
@ant-design/icons
"
;
import
"
./index.scss
"
;
import
{
YgoCard
}
from
"
@/ui/Shared
"
;
import
{
Desc
}
from
"
./Desc
"
;
import
{
Desc
}
from
"
./Desc
"
;
const
{
cardModal
}
=
messageStore
;
const
{
cardModal
}
=
messageStore
;
...
...
src/ui/Duel/Message/HintNotification.tsx
View file @
7e6f9eae
import
{
notification
,
message
}
from
"
antd
"
;
import
{
message
,
notification
}
from
"
antd
"
;
import
React
,
{
useEffect
}
from
"
react
"
;
import
React
,
{
useEffect
}
from
"
react
"
;
import
{
useSnapshot
}
from
"
valtio
"
;
import
{
useSnapshot
}
from
"
valtio
"
;
...
...
src/ui/Duel/Message/NeosModal/index.tsx
View file @
7e6f9eae
import
{
Button
,
Modal
,
type
ModalProps
}
from
"
antd
"
;
import
"
./index.scss
"
;
import
{
type
FC
,
useRef
,
useState
,
type
CSSProperties
}
from
"
react
"
;
import
{
MinusOutlined
,
UpOutlined
}
from
"
@ant-design/icons
"
;
import
{
MinusOutlined
,
UpOutlined
}
from
"
@ant-design/icons
"
;
import
{
Button
,
Modal
,
type
ModalProps
}
from
"
antd
"
;
import
classNames
from
"
classnames
"
;
import
classNames
from
"
classnames
"
;
import
"
./index.scss
"
;
import
{
type
CSSProperties
,
type
FC
,
useRef
,
useState
}
from
"
react
"
;
interface
Props
extends
ModalProps
{
interface
Props
extends
ModalProps
{
canBeMinimized
?:
boolean
;
canBeMinimized
?:
boolean
;
...
...
src/ui/Duel/Message/OptionModal.tsx
View file @
7e6f9eae
import
{
CheckCard
}
from
"
@ant-design/pro-components
"
;
import
{
CheckCard
}
from
"
@ant-design/pro-components
"
;
import
{
Button
}
from
"
antd
"
;
import
{
Button
}
from
"
antd
"
;
import
React
,
{
useState
}
from
"
react
"
;
import
React
,
{
useState
}
from
"
react
"
;
import
{
useSnapshot
,
proxy
}
from
"
valtio
"
;
import
{
proxy
,
useSnapshot
}
from
"
valtio
"
;
import
{
import
{
type
CardMeta
,
type
CardMeta
,
getCardStr
,
sendSelectIdleCmdResponse
,
sendSelectOptionResponse
,
sendSelectOptionResponse
,
ygopro
,
ygopro
,
sendSelectIdleCmdResponse
,
getCardStr
,
}
from
"
@/api
"
;
}
from
"
@/api
"
;
import
{
NeosModal
}
from
"
./NeosModal
"
;
import
{
NeosModal
}
from
"
./NeosModal
"
;
type
Options
=
{
msg
:
string
;
response
:
number
}[];
type
Options
=
{
msg
:
string
;
response
:
number
}[];
...
...
src/ui/Duel/Message/SelectActionsModal/index.tsx
View file @
7e6f9eae
import
"
./index.scss
"
;
import
{
CheckCard
,
CheckCardProps
}
from
"
@ant-design/pro-components
"
;
import
{
CheckCard
,
CheckCardProps
}
from
"
@ant-design/pro-components
"
;
import
{
import
{
Button
,
Button
,
...
@@ -5,30 +7,28 @@ import {
...
@@ -5,30 +7,28 @@ import {
Col
,
Col
,
Popover
,
Popover
,
Row
,
Row
,
Tabs
,
Segmented
,
Segmented
,
Space
,
Space
,
T
ypography
,
T
abs
,
Tooltip
,
Tooltip
,
Typography
,
}
from
"
antd
"
;
}
from
"
antd
"
;
import
{
type
FC
,
use
State
,
useEffect
}
from
"
react
"
;
import
{
type
FC
,
use
Effect
,
useState
}
from
"
react
"
;
import
{
useSnapshot
,
proxy
}
from
"
valtio
"
;
import
{
proxy
,
useSnapshot
}
from
"
valtio
"
;
import
type
{
CardMeta
,
ygopro
}
from
"
@/api
"
;
import
{
import
{
fetchStrings
,
fetchStrings
,
sendSelectMultiResponse
,
sendSelectMultiResponse
,
sendSelectSingleResponse
,
sendSelectSingleResponse
,
}
from
"
@/api
"
;
}
from
"
@/api
"
;
import
type
{
CardMeta
,
ygopro
}
from
"
@/api
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
matStore
}
from
"
@/stores
"
;
import
{
matStore
}
from
"
@/stores
"
;
import
{
YgoCard
}
from
"
@/ui/Shared
"
;
import
{
groupBy
}
from
"
../../utils
"
;
import
{
groupBy
}
from
"
../../utils
"
;
import
{
NeosModal
}
from
"
../NeosModal
"
;
import
{
YgoCard
}
from
"
@/ui/Shared
"
;
import
"
./index.scss
"
;
import
{
showCardModal
}
from
"
../CardModal
"
;
import
{
showCardModal
}
from
"
../CardModal
"
;
import
{
NeosModal
}
from
"
../NeosModal
"
;
const
CANCEL_RESPONSE
=
-
1
;
const
CANCEL_RESPONSE
=
-
1
;
const
FINISH_RESPONSE
=
-
1
;
const
FINISH_RESPONSE
=
-
1
;
...
...
src/ui/Duel/PlayMat/Card/index.tsx
View file @
7e6f9eae
import
"
./index.scss
"
;
import
"
./index.scss
"
;
import
{
DownloadOutlined
,
UploadOutlined
,
UpOutlined
,
}
from
"
@ant-design/icons
"
;
import
{
animated
,
to
,
useSpring
}
from
"
@react-spring/web
"
;
import
{
animated
,
to
,
useSpring
}
from
"
@react-spring/web
"
;
import
{
Button
,
Dropdown
,
type
MenuProps
}
from
"
antd
"
;
import
classnames
from
"
classnames
"
;
import
classnames
from
"
classnames
"
;
import
React
,
{
type
CSSProperties
,
type
FC
,
useEffect
,
useState
}
from
"
react
"
;
import
React
,
{
type
CSSProperties
,
type
FC
,
useEffect
,
useState
}
from
"
react
"
;
import
{
useSnapshot
}
from
"
valtio
"
;
import
{
useSnapshot
}
from
"
valtio
"
;
import
{
getCardStr
,
ygopro
}
from
"
@/api
"
;
import
{
getCardStr
,
ygopro
}
from
"
@/api
"
;
import
{
type
CardMeta
,
fetchStrings
,
sendSelectIdleCmdResponse
}
from
"
@/api
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
{
eventbus
,
Task
}
from
"
@/infra
"
;
import
{
eventbus
,
Task
}
from
"
@/infra
"
;
import
{
cardStore
,
CardType
,
messageStore
}
from
"
@/stores
"
;
import
{
cardStore
,
CardType
,
messageStore
}
from
"
@/stores
"
;
import
{
closeCardModal
,
showCardModal
}
from
"
@/ui/Duel/Message/CardModal
"
;
import
{
YgoCard
}
from
"
@/ui/Shared
"
;
import
{
displayCardListModal
,
displayOptionModal
}
from
"
../../Message
"
;
import
{
interactTypeToString
}
from
"
../../utils
"
;
import
{
interactTypeToString
}
from
"
../../utils
"
;
import
{
import
{
attack
,
attack
,
...
@@ -20,18 +30,6 @@ import {
...
@@ -20,18 +30,6 @@ import {
moveToOutside
,
moveToOutside
,
}
from
"
./springs
"
;
}
from
"
./springs
"
;
import
type
{
SpringApiProps
}
from
"
./springs/types
"
;
import
type
{
SpringApiProps
}
from
"
./springs/types
"
;
import
{
YgoCard
}
from
"
@/ui/Shared
"
;
import
{
showCardModal
,
closeCardModal
}
from
"
@/ui/Duel/Message/CardModal
"
;
import
{
Button
,
Dropdown
,
type
MenuProps
}
from
"
antd
"
;
import
{
UploadOutlined
,
DownloadOutlined
,
UpOutlined
,
}
from
"
@ant-design/icons
"
;
import
{
fetchStrings
,
sendSelectIdleCmdResponse
,
type
CardMeta
}
from
"
@/api
"
;
import
{
displayCardListModal
,
displayOptionModal
}
from
"
../../Message
"
;
const
NeosConfig
=
useConfig
();
const
NeosConfig
=
useConfig
();
const
{
HAND
,
GRAVE
,
REMOVED
,
DECK
,
EXTRA
,
MZONE
,
SZONE
,
TZONE
}
=
const
{
HAND
,
GRAVE
,
REMOVED
,
DECK
,
EXTRA
,
MZONE
,
SZONE
,
TZONE
}
=
...
...
src/ui/Duel/PlayMat/Card/springs/types.ts
View file @
7e6f9eae
import
{
type
SpringRef
}
from
"
@react-spring/web
"
;
import
{
type
SpringRef
}
from
"
@react-spring/web
"
;
export
type
SpringApiProps
=
{
export
interface
SpringApiProps
{
x
:
number
;
x
:
number
;
y
:
number
;
y
:
number
;
z
:
number
;
z
:
number
;
...
@@ -14,6 +14,6 @@ export type SpringApiProps = {
...
@@ -14,6 +14,6 @@ export type SpringApiProps = {
focusDisplay
:
string
;
focusDisplay
:
string
;
focusOpacity
:
number
;
focusOpacity
:
number
;
// <<< focus
// <<< focus
}
;
}
export
type
SpringApi
=
SpringRef
<
SpringApiProps
>
;
export
type
SpringApi
=
SpringRef
<
SpringApiProps
>
;
src/ui/Shared/YgoCard/index.tsx
View file @
7e6f9eae
import
{
type
FC
,
useMemo
,
CSSProperties
}
from
"
react
"
;
import
"
./index.scss
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
classNames
from
"
classnames
"
;
import
classNames
from
"
classnames
"
;
import
"
./index.scss
"
;
import
{
CSSProperties
,
type
FC
,
useMemo
}
from
"
react
"
;
import
{
useConfig
}
from
"
@/config
"
;
interface
Props
{
interface
Props
{
className
?:
string
;
className
?:
string
;
...
...
src/ui/WaitRoom.tsx
View file @
7e6f9eae
...
@@ -30,7 +30,7 @@ import { DeckManager, fetchDeck, type IDeck } from "@/api/deck";
...
@@ -30,7 +30,7 @@ import { DeckManager, fetchDeck, type IDeck } from "@/api/deck";
import
{
useConfig
}
from
"
@/config
"
;
import
{
useConfig
}
from
"
@/config
"
;
import
socketMiddleWare
,
{
socketCmd
}
from
"
@/middleware/socket
"
;
import
socketMiddleWare
,
{
socketCmd
}
from
"
@/middleware/socket
"
;
import
sqliteMiddleWare
,
{
sqliteCmd
}
from
"
@/middleware/sqlite
"
;
import
sqliteMiddleWare
,
{
sqliteCmd
}
from
"
@/middleware/sqlite
"
;
import
{
joinStore
,
chat
Store
,
moraStore
,
playerStore
}
from
"
@/stores
"
;
import
{
chatStore
,
join
Store
,
moraStore
,
playerStore
}
from
"
@/stores
"
;
const
NeosConfig
=
useConfig
();
const
NeosConfig
=
useConfig
();
...
...
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