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
129a7a01
Commit
129a7a01
authored
Aug 14, 2023
by
timel
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev/sort-in-deck' into 'main'
fix/small See merge request
!259
parents
6ae9cd3b
6db7b43e
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
40 additions
and
23 deletions
+40
-23
src/styles/utils.scss
src/styles/utils.scss
+1
-0
src/ui/BuildDeck/CardDetail.module.scss
src/ui/BuildDeck/CardDetail.module.scss
+6
-0
src/ui/BuildDeck/DeckSelect.tsx
src/ui/BuildDeck/DeckSelect.tsx
+6
-4
src/ui/BuildDeck/store.ts
src/ui/BuildDeck/store.ts
+13
-10
src/ui/BuildDeck/utils.ts
src/ui/BuildDeck/utils.ts
+11
-8
src/ui/Shared/css.ts
src/ui/Shared/css.ts
+3
-1
No files found.
src/styles/utils.scss
View file @
129a7a01
...
...
@@ -30,5 +30,6 @@
width
:
100%
;
background-image
:
url("/neos-assets/noise-light.webp")
;
opacity
:
$opacity
;
pointer-events
:
none
;
}
}
src/ui/BuildDeck/CardDetail.module.scss
View file @
129a7a01
...
...
@@ -24,6 +24,7 @@
padding
:
15px
;
display
:
flex
;
flex-direction
:
column
;
position
:
relative
;
}
.btn-close
{
...
...
@@ -40,6 +41,11 @@
border-radius
:
4px
;
overflow
:
hidden
;
box-shadow
:
0px
14px
20px
-5px
rgba
(
0
,
0
,
0
,
0
.3
);
transition
:
0
.2s
;
&
:hover
{
--width
:
220px
;
box-shadow
:
0px
20px
20px
-5px
rgb
(
0
0
0
/
60%
);
}
}
.title
{
...
...
src/ui/BuildDeck/DeckSelect.tsx
View file @
129a7a01
...
...
@@ -52,12 +52,14 @@ export const DeckSelect: React.FC<{
okText
:
"
上传
"
,
maskClosable
:
true
,
onOk
:
async
()
=>
{
const
newDeck
s
=
await
Promise
.
all
(
const
result
s
=
await
Promise
.
all
(
newDeck
.
current
.
map
((
deck
)
=>
deckStore
.
add
(
deck
))
);
newDecks
.
every
(
Boolean
)
?
message
.
success
(
"
上传成功
"
)
:
message
.
error
(
"
部分文件上传失败
"
);
newDeck
.
current
=
[];
if
(
results
.
length
)
results
.
every
(
Boolean
)
?
message
.
success
(
"
上传成功
"
)
:
message
.
error
(
"
部分文件上传失败
"
);
},
});
...
...
src/ui/BuildDeck/store.ts
View file @
129a7a01
...
...
@@ -42,35 +42,38 @@ export const editDeckStore = proxy({
},
/** 一张卡能不能放入某个区 */
canAdd
(
card
:
CardMeta
,
type
:
Type
):
{
result
:
boolean
;
reason
:
string
}
{
const
deckType
=
editDeckStore
[
type
];
const
cardType
=
card
.
data
.
type
??
0
;
let
result
=
true
,
reason
=
""
;
const
initialCards
=
editDeckStore
[
type
];
// 如果是衍生物,则不能添加
if
(
isToken
(
card
.
data
.
type
??
0
))
{
if
(
isToken
(
cardType
))
{
result
=
false
;
reason
=
"
不能添加衍生物
"
;
}
// 超出数量,则不能添加
const
countLimit
=
type
===
"
main
"
?
60
:
15
;
if
(
initialCards
.
length
>=
countLimit
)
{
if
(
deckType
.
length
>=
countLimit
)
{
result
=
false
;
reason
=
`超过
${
countLimit
}
张的上限`
;
}
// 接着需要检查卡的种类
if
(
(
type
===
"
extra
"
&&
!
isExtraDeckCard
(
card
.
data
.
type
??
0
))
||
(
type
===
"
main
"
&&
isExtraDeckCard
(
card
.
data
.
type
??
0
))
(
type
===
"
extra
"
&&
!
isExtraDeckCard
(
card
Type
))
||
(
type
===
"
main
"
&&
isExtraDeckCard
(
card
Type
))
)
{
result
=
false
;
reason
=
"
卡片种类不符合
"
;
}
// 同名卡不超过三张
const
maxSameCard
=
3
;
// TODO: 禁卡表
const
sameCardCount
=
initialCards
.
filter
((
c
)
=>
c
.
id
===
card
.
id
).
length
;
const
sameCardCount
=
deckType
.
filter
((
c
)
=>
c
.
id
===
card
.
id
).
length
;
if
(
sameCardCount
>=
maxSameCard
)
{
result
=
false
;
reason
=
`超过同名卡
${
maxSameCard
}
张的上限`
;
}
return
{
result
,
reason
};
},
})
satisfies
EditingDeck
;
src/ui/BuildDeck/utils.ts
View file @
129a7a01
...
...
@@ -41,14 +41,17 @@ export const compareCards = (a: CardMeta, b: CardMeta): number => {
/** 生成ydk格式的卡组文本 */
function
genYdkText
(
deck
:
IDeck
):
string
{
const
lines
:
string
[]
=
[];
lines
.
push
(
"
#created by neos
"
);
lines
.
push
(
"
#main
"
);
lines
.
push
(...
deck
.
main
.
map
((
cardId
)
=>
cardId
.
toString
()));
lines
.
push
(
"
#extra
"
);
lines
.
push
(...
deck
.
extra
.
map
((
cardId
)
=>
cardId
.
toString
()));
lines
.
push
(
"
!side
"
);
lines
.
push
(...
deck
.
side
.
map
((
cardId
)
=>
cardId
.
toString
()));
const
{
main
,
extra
,
side
}
=
deck
;
const
lines
=
[
"
#created by neos
"
,
"
#main
"
,
...
main
.
map
((
cardId
)
=>
cardId
.
toString
()),
"
#extra
"
,
...
extra
.
map
((
cardId
)
=>
cardId
.
toString
()),
"
!side
"
,
...
side
.
map
((
cardId
)
=>
cardId
.
toString
()),
];
return
lines
.
join
(
"
\n
"
);
}
...
...
src/ui/Shared/css.ts
View file @
129a7a01
// 此文件目的是在js和CSS之间共享一些变量,并且这些变量是0运行时的。
type
CSSConfig
=
Record
<
string
,
[
number
,
UNIT
]
>
;
interface
CSSConfig
{
readonly
[
key
:
string
]:
[
number
,
UNIT
];
}
/** 转为CSS变量: BOARD_ROTATE_Z -> --board-rotate-z */
const
toCssProperties
=
(
config
:
CSSConfig
)
=>
...
...
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