Commit b44267fe authored by 未闻皂名's avatar 未闻皂名

2025/1/28 bug修复

parent e9164749
Pipeline #32822 passed with stages
in 10 minutes and 55 seconds
...@@ -224,6 +224,19 @@ function RushDuel.AddFusionProcedureSP(card, matfilter, matcheck, min, max, sub, ...@@ -224,6 +224,19 @@ function RushDuel.AddFusionProcedureSP(card, matfilter, matcheck, min, max, sub,
return RushDuel.CreateFusionProcedure(card, insf, sub, funcs, matfilter, max - #funcs, matcheck) return RushDuel.CreateFusionProcedure(card, insf, sub, funcs, matfilter, max - #funcs, matcheck)
end end
-- 添加融合手续: 指定条件, 不固定数量
function RushDuel.AddFusionProcedureRep(card, insf, sub, func, min, max, ...)
if card:IsStatus(STATUS_COPYING_EFFECT) then
return
end
local vals = {...}
table.insert(vals, func)
-- 融合素材
local codes, funcs, unspecified = RushDuel.MakeFusionMaterial(card, table.unpack(vals))
RushDuel.SetFusionMaterialData(card, codes, #funcs + min - 1, #funcs + max - 1, unspecified)
return RushDuel.CreateFusionProcedure(card, insf, sub, funcs, func, max - 1, nil)
end
-- 手动添加融合素材列表 -- 手动添加融合素材列表
function RushDuel.SetFusionMaterial(card, codes, min, max) function RushDuel.SetFusionMaterial(card, codes, min, max)
if card:IsStatus(STATUS_COPYING_EFFECT) then if card:IsStatus(STATUS_COPYING_EFFECT) then
......
...@@ -5,8 +5,9 @@ cm.name="嵌合超载龙" ...@@ -5,8 +5,9 @@ cm.name="嵌合超载龙"
function cm.initial_effect(c) function cm.initial_effect(c)
RD.AddCodeList(c,list) RD.AddCodeList(c,list)
--Fusion Material --Fusion Material
RD.SetFusionMaterial(c,{list[1]},2,64) RD.AddFusionProcedureRep(c,true,true,cm.matfilter,1,63,list[1])
RD.AddFusionProcedureSP(c,cm.matfilter,cm.check,2,64) -- Fusion Flag
RD.CreateFusionSummonFlag(c,20278001)
--Base Atk & Def --Base Atk & Def
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -24,22 +25,29 @@ function cm.initial_effect(c) ...@@ -24,22 +25,29 @@ function cm.initial_effect(c)
e3:SetCode(EFFECT_EXTRA_ATTACK_MONSTER) e3:SetCode(EFFECT_EXTRA_ATTACK_MONSTER)
e3:SetValue(cm.atkval) e3:SetValue(cm.atkval)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--Material Check
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_MATERIAL_CHECK)
e4:SetLabelObject(e3)
e4:SetValue(cm.check)
c:RegisterEffect(e4)
--Continuous Effect --Continuous Effect
RD.AddContinuousEffect(c,e3) RD.AddContinuousEffect(c,e3)
end end
--Fusion Material --Fusion Material
cm.unspecified_funsion=true cm.unspecified_funsion=true
function cm.matfilter(c,fc,sub) function cm.matfilter(c,fc,sub)
return cm.matfilter1(c,fc,sub) or cm.matfilter2(c,fc,sub)
end
function cm.matfilter1(c,fc,sub)
return c:IsFusionCode(list[1]) or (sub and c:CheckFusionSubstitute(fc))
end
function cm.matfilter2(c,fc,sub)
return c:IsRace(RACE_MACHINE) return c:IsRace(RACE_MACHINE)
end end
function cm.check(g,tp,fc,chkf) --Material Check
return g:FilterCount(cm.matfilter1,nil,fc,true)==1 function cm.check(e,c)
local ct=c:GetMaterialCount()
if ct>1 then
e:GetLabelObject():SetLabel(ct-1)
else
e:GetLabelObject():SetLabel(0)
end
end end
--Base Atk & Def --Base Atk & Def
function cm.adval(e) function cm.adval(e)
...@@ -50,7 +58,5 @@ end ...@@ -50,7 +58,5 @@ end
--Multiple Attack --Multiple Attack
function cm.atkval(e) function cm.atkval(e)
local c=e:GetHandler() local c=e:GetHandler()
local ct=c:GetMaterialCount() if c:GetFlagEffect(20278001)~=0 then return e:GetLabel() else return 0 end
if not c:IsSummonType(SUMMON_TYPE_FUSION) or ct==0 then return 0
else return ct-1 end
end end
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment