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
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