Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-rush-duel
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
5
Issues
5
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
MyCard
ygopro-rush-duel
Commits
3064f601
Commit
3064f601
authored
Oct 11, 2025
by
未闻皂名
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2025/10/11 选择卡片优化
parent
b31873f8
Pipeline
#41001
passed with stages
in 13 minutes and 10 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
22 additions
and
26 deletions
+22
-26
script/RDFunction.lua
script/RDFunction.lua
+10
-0
script/RDFusion.lua
script/RDFusion.lua
+10
-22
script/RDRitual.lua
script/RDRitual.lua
+2
-4
No files found.
script/RDFunction.lua
View file @
3064f601
...
...
@@ -151,6 +151,16 @@ end
-- 让玩家选择卡片组的 min ~ max 张卡,可以取消
function
RushDuel
.
SelectGroup
(
player
,
group
,
min
,
max
)
-- 单选优化
if
min
==
1
and
max
==
1
then
local
tc
=
group
:
SelectUnselect
(
nil
,
player
,
false
,
true
,
1
,
1
)
if
tc
then
return
Group
.
FromCards
(
tc
)
else
return
nil
end
end
-- 多选
local
sg
=
Group
.
CreateGroup
()
local
finish
=
(
#
sg
>=
min
and
#
sg
<=
max
)
while
#
sg
<
max
do
...
...
script/RDFusion.lua
View file @
3064f601
...
...
@@ -17,20 +17,17 @@ RushDuel.FusionSummonPosition = POS_FACEUP
function
RushDuel
.
MakeFusionMaterial
(
card
,
...
)
local
codes
=
{}
local
funcs
=
{}
local
unspecified
=
false
for
_
,
val
in
ipairs
{
...
}
do
local
val_type
=
type
(
val
)
if
val_type
==
"number"
then
RushDuel
.
AddCodeFusionMaterial
(
codes
,
funcs
,
val
)
elseif
val_type
==
"function"
then
unspecified
=
true
RushDuel
.
AddFuncFusionMaterial
(
codes
,
funcs
,
val
)
elseif
val_type
==
"table"
then
local
res
=
RushDuel
.
AddMixFusionMaterial
(
codes
,
funcs
,
val
)
unspecified
=
unspecified
or
res
RushDuel
.
AddMixFusionMaterial
(
codes
,
funcs
,
val
)
end
end
return
codes
,
funcs
,
unspecified
return
codes
,
funcs
end
-- 融合素材 - 卡名
function
RushDuel
.
AddCodeFusionMaterial
(
codes
,
funcs
,
code
)
...
...
@@ -48,12 +45,10 @@ end
-- 融合素材 - 混合
function
RushDuel
.
AddMixFusionMaterial
(
codes
,
funcs
,
list
)
local
mixs
=
{}
local
unspecified
=
true
for
_
,
val
in
ipairs
(
list
)
do
local
val_type
=
type
(
val
)
if
val_type
==
"number"
then
RushDuel
.
AddCodeFusionMaterial
(
codes
,
mixs
,
val
)
unspecified
=
false
elseif
val_type
==
"function"
then
RushDuel
.
AddFuncFusionMaterial
(
codes
,
mixs
,
val
)
end
...
...
@@ -66,11 +61,10 @@ function RushDuel.AddMixFusionMaterial(codes, funcs, list)
end
return
false
end
)
return
unspecified
end
-- 设置融合素材数据
function
RushDuel
.
SetFusionMaterialData
(
card
,
codes
,
min
,
max
,
unspecified
)
function
RushDuel
.
SetFusionMaterialData
(
card
,
codes
,
min
,
max
)
local
mt
=
getmetatable
(
card
)
-- 卡名记述的素材
if
codes
~=
nil
then
...
...
@@ -85,10 +79,6 @@ function RushDuel.SetFusionMaterialData(card, codes, min, max, unspecified)
if
mt
.
material_count
==
nil
then
mt
.
material_count
=
{
min
,
max
}
end
-- 包含不指定卡名的融合素材
if
unspecified
~=
nil
then
mt
.
unspecified_funsion
=
unspecified
end
end
-- 创建融合手续
...
...
@@ -219,8 +209,8 @@ function RushDuel.AddFusionProcedure(card, sub, insf, ...)
sub
=
true
end
-- 融合素材
local
codes
,
funcs
,
unspecified
=
RushDuel
.
MakeFusionMaterial
(
card
,
table.unpack
(
vals
))
RushDuel
.
SetFusionMaterialData
(
card
,
codes
,
#
funcs
,
#
funcs
,
unspecified
)
local
codes
,
funcs
=
RushDuel
.
MakeFusionMaterial
(
card
,
table.unpack
(
vals
))
RushDuel
.
SetFusionMaterialData
(
card
,
codes
,
#
funcs
,
#
funcs
)
return
RushDuel
.
CreateFusionProcedure
(
card
,
insf
,
sub
,
funcs
,
nil
,
0
,
nil
)
end
...
...
@@ -248,8 +238,8 @@ function RushDuel.AddFusionProcedureRep(card, insf, sub, func, min, max, ...)
table.insert
(
vals
,
func
)
end
-- 融合素材
local
codes
,
funcs
,
unspecified
=
RushDuel
.
MakeFusionMaterial
(
card
,
table.unpack
(
vals
))
RushDuel
.
SetFusionMaterialData
(
card
,
codes
,
#
funcs
+
min
,
#
funcs
+
max
,
unspecified
)
local
codes
,
funcs
=
RushDuel
.
MakeFusionMaterial
(
card
,
table.unpack
(
vals
))
RushDuel
.
SetFusionMaterialData
(
card
,
codes
,
#
funcs
+
min
,
#
funcs
+
max
)
return
RushDuel
.
CreateFusionProcedure
(
card
,
insf
,
sub
,
funcs
,
func
,
max
-
min
,
nil
)
end
...
...
@@ -317,7 +307,7 @@ function RushDuel.ContactFusionOperation(e, tp, eg, ep, ev, re, r, rp, c)
if
#
cg
>
0
then
Duel
.
ConfirmCards
(
1
-
c
:
GetControler
(),
cg
)
end
Duel
.
SendtoDeck
(
g
,
nil
,
SEQ_DECKSHUFFLE
,
REASON_MATERIAL
+
REASON_COST
)
Duel
.
SendtoDeck
(
g
,
nil
,
SEQ_DECKSHUFFLE
,
REASON_MATERIAL
+
REASON_
FUSION
+
REASON_
COST
)
g
:
DeleteGroup
()
end
...
...
@@ -414,11 +404,9 @@ function RushDuel.ExecuteFusionSummon(e, tp, list, chkf, gc, mat_move, cancelabl
local
fc
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
if
cancelable
then
local
g
=
RushDuel
.
SelectGroup
(
tp
,
sg
,
1
,
1
)
if
not
g
then
fc
=
sg
:
SelectUnselect
(
nil
,
tp
,
false
,
true
,
1
,
1
)
if
not
fc
then
return
nil
else
fc
=
g
:
GetFirst
()
end
else
fc
=
sg
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
...
...
script/RDRitual.lua
View file @
3064f601
...
...
@@ -186,11 +186,9 @@ function RushDuel.ExecuteRitualSummon(e, tp, type, list, chkf, gc, mat_move, can
local
rc
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
if
cancelable
then
local
g
=
RushDuel
.
SelectGroup
(
tp
,
sg
,
1
,
1
)
if
not
g
then
rc
=
sg
:
SelectUnselect
(
nil
,
tp
,
false
,
true
,
1
,
1
)
if
not
rc
then
return
nil
else
rc
=
g
:
GetFirst
()
end
else
rc
=
sg
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
...
...
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