Commit 4f52e1df authored by VanillaSalt's avatar VanillaSalt

fix

parent 02bce31e
...@@ -54,37 +54,30 @@ function c16172067.matfilter2(c,syncard) ...@@ -54,37 +54,30 @@ function c16172067.matfilter2(c,syncard)
return c:IsNotTuner() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) and c:IsCanBeSynchroMaterial(syncard) return c:IsNotTuner() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) and c:IsCanBeSynchroMaterial(syncard)
end end
function c16172067.synfilter1(c,syncard,lv,g1,g2,g3,g4) function c16172067.synfilter1(c,syncard,lv,g1,g2,g3,g4)
local tlv=c:GetSynchroLevel(syncard)
if lv-tlv<=0 then return false end
local f1=c.tuner_filter local f1=c.tuner_filter
if c:IsHasEffect(EFFECT_HAND_SYNCHRO) then if c:IsHasEffect(EFFECT_HAND_SYNCHRO) then
return g3:IsExists(c16172067.synfilter2,1,c,syncard,lv-tlv,g2,g4,f1,c) return g3:IsExists(c16172067.synfilter2,1,c,syncard,lv,g2,g4,f1,c)
else else
return g1:IsExists(c16172067.synfilter2,1,c,syncard,lv-tlv,g2,g4,f1,c) return g1:IsExists(c16172067.synfilter2,1,c,syncard,lv,g2,g4,f1,c)
end end
end end
function c16172067.synfilter2(c,syncard,lv,g2,g4,f1,tuner1) function c16172067.synfilter2(c,syncard,lv,g2,g4,f1,tuner1)
local tlv=c:GetSynchroLevel(syncard) if c==tuner1 then return false end
if lv-tlv<=0 then return false end
local f2=c.tuner_filter local f2=c.tuner_filter
if f1 and not f1(c) then return false end if f1 and not f1(c) then return false end
if f2 and not f2(tuner1) then return false end if f2 and not f2(tuner1) then return false end
if (tuner1:IsHasEffect(EFFECT_HAND_SYNCHRO) and not c:IsLocation(LOCATION_HAND)) or c:IsHasEffect(EFFECT_HAND_SYNCHRO) then if (tuner1:IsHasEffect(EFFECT_HAND_SYNCHRO) and not c:IsLocation(LOCATION_HAND)) or c:IsHasEffect(EFFECT_HAND_SYNCHRO) then
return g4:IsExists(c16172067.synfilter3,1,nil,syncard,lv-tlv,f1,f2,g2) return g4:IsExists(c16172067.synfilter3,1,nil,syncard,lv,f1,f2,g2,tuner1,c)
else else
return g2:CheckWithSumEqual(Card.GetSynchroLevel,lv-tlv,1,62,syncard) Duel.SetSelectedCard(Group.FromCards(c,tuner1))
return g2:CheckWithSumEqual(Card.GetSynchroLevel,lv,1,62,syncard)
end end
end end
function c16172067.synfilter3(c,syncard,lv,f1,f2,g2) function c16172067.synfilter3(c,syncard,lv,f1,f2,g2,tuner1,tuner2)
if c==tuner1 or c==tuner2 then return false end
if not (not f1 or f1(c)) and not (not f2 or f2(c)) then return false end if not (not f1 or f1(c)) and not (not f2 or f2(c)) then return false end
local mlv=c:GetSynchroLevel(syncard) Duel.SetSelectedCard(Group.FromCards(c,tuner1,tuner2))
local slv=lv-mlv return g2:CheckWithSumEqual(Card.GetSynchroLevel,lv,0,61,syncard)
if slv<0 then return false end
if slv==0 then
return true
else
return g2:CheckWithSumEqual(Card.GetSynchroLevel,slv,1,61,syncard)
end
end end
function c16172067.syncon(e,c,tuner,mg) function c16172067.syncon(e,c,tuner,mg)
if c==nil then return true end if c==nil then return true end
...@@ -97,8 +90,8 @@ function c16172067.syncon(e,c,tuner,mg) ...@@ -97,8 +90,8 @@ function c16172067.syncon(e,c,tuner,mg)
if mg then if mg then
g1=mg:Filter(c16172067.matfilter1,nil,c) g1=mg:Filter(c16172067.matfilter1,nil,c)
g2=mg:Filter(c16172067.matfilter2,nil,c) g2=mg:Filter(c16172067.matfilter2,nil,c)
g3=mg:Filter(c16172067.matfilter1,nil,c) g3=g1:Clone()
g4=mg:Filter(c16172067.matfilter2,nil,c) g4=g2:Clone()
else else
g1=Duel.GetMatchingGroup(c16172067.matfilter1,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c) g1=Duel.GetMatchingGroup(c16172067.matfilter1,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c)
g2=Duel.GetMatchingGroup(c16172067.matfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c) g2=Duel.GetMatchingGroup(c16172067.matfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c)
...@@ -108,13 +101,11 @@ function c16172067.syncon(e,c,tuner,mg) ...@@ -108,13 +101,11 @@ function c16172067.syncon(e,c,tuner,mg)
local pe=Duel.IsPlayerAffectedByEffect(tp,EFFECT_MUST_BE_SMATERIAL) local pe=Duel.IsPlayerAffectedByEffect(tp,EFFECT_MUST_BE_SMATERIAL)
local lv=c:GetLevel() local lv=c:GetLevel()
if tuner then if tuner then
local tlv=tuner:GetSynchroLevel(c)
if lv-tlv<=0 then return false end
local f1=tuner.tuner_filter local f1=tuner.tuner_filter
if not pe then if not pe then
return g1:IsExists(c16172067.synfilter2,1,tuner,c,lv-tlv,g2,g4,f1,tuner) return g1:IsExists(c16172067.synfilter2,1,tuner,c,lv,g2,g4,f1,tuner)
else else
return c16172067.synfilter2(pe:GetOwner(),c,lv-tlv,g2,nil,f1,tuner) return c16172067.synfilter2(pe:GetOwner(),c,lv,g2,nil,f1,tuner)
end end
end end
if not pe then if not pe then
...@@ -132,8 +123,8 @@ function c16172067.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg) ...@@ -132,8 +123,8 @@ function c16172067.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
if mg then if mg then
g1=mg:Filter(c16172067.matfilter1,nil,c) g1=mg:Filter(c16172067.matfilter1,nil,c)
g2=mg:Filter(c16172067.matfilter2,nil,c) g2=mg:Filter(c16172067.matfilter2,nil,c)
g3=mg:Filter(c16172067.matfilter1,nil,c) g3=g1:Clone()
g4=mg:Filter(c16172067.matfilter2,nil,c) g4=g2:Clone()
else else
g1=Duel.GetMatchingGroup(c16172067.matfilter1,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c) g1=Duel.GetMatchingGroup(c16172067.matfilter1,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c)
g2=Duel.GetMatchingGroup(c16172067.matfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c) g2=Duel.GetMatchingGroup(c16172067.matfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c)
...@@ -144,38 +135,36 @@ function c16172067.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg) ...@@ -144,38 +135,36 @@ function c16172067.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
local lv=c:GetLevel() local lv=c:GetLevel()
if tuner then if tuner then
g:AddCard(tuner) g:AddCard(tuner)
local lv1=tuner:GetSynchroLevel(c)
local f1=tuner.tuner_filter local f1=tuner.tuner_filter
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local tuner2=nil local tuner2=nil
if not pe then if not pe then
local t2=g1:FilterSelect(tp,c16172067.synfilter2,1,1,tuner,c,lv-lv1,g2,g4,f1,tuner) local t2=g1:FilterSelect(tp,c16172067.synfilter2,1,1,tuner,c,lv,g2,g4,f1,tuner)
tuner2=t2:GetFirst() tuner2=t2:GetFirst()
else else
tuner2=pe:GetOwner() tuner2=pe:GetOwner()
Group.FromCards(tuner2):Select(tp,1,1,nil) Group.FromCards(tuner2):Select(tp,1,1,nil)
end end
g:AddCard(tuner2) g:AddCard(tuner2)
local lv2=tuner2:GetSynchroLevel(c)
local f2=tuner2.tuner_filter local f2=tuner2.tuner_filter
local m3=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
if tuner2:IsHasEffect(EFFECT_HAND_SYNCHRO) then if tuner2:IsHasEffect(EFFECT_HAND_SYNCHRO) then
m3=g4:FilterSelect(tp,c16172067.synfilter3,1,1,nil,c,lv-lv1-lv2,f1,f2,g2) local m3=g4:FilterSelect(tp,c16172067.synfilter3,1,1,nil,c,lv,f1,f2,g2,tuner,tuner2)
local lv3=m3:GetFirst():GetSynchroLevel(c) g:Merge(m3)
if lv-lv1-lv2-lv3>0 then Duel.SetSelectedCard(g)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local m4=g2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv-lv1-lv2-lv3,1,61,c) local m4=g2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv,0,61,c)
if m4 and m4:GetCount()>0 then
g:Merge(m4) g:Merge(m4)
end end
else else
m3=g2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv-lv1-lv2,1,62,c) Duel.SetSelectedCard(g)
local m3=g2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv,1,62,c)
g:Merge(m3)
end end
g:Merge(m3)
else else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local tuner1=nil local tuner1=nil
local hand=nil
if not pe then if not pe then
local t1=g1:FilterSelect(tp,c16172067.synfilter1,1,1,nil,c,lv,g1,g2,g3,g4) local t1=g1:FilterSelect(tp,c16172067.synfilter1,1,1,nil,c,lv,g1,g2,g3,g4)
tuner1=t1:GetFirst() tuner1=t1:GetFirst()
...@@ -184,35 +173,34 @@ function c16172067.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg) ...@@ -184,35 +173,34 @@ function c16172067.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
Group.FromCards(tuner1):Select(tp,1,1,nil) Group.FromCards(tuner1):Select(tp,1,1,nil)
end end
g:AddCard(tuner1) g:AddCard(tuner1)
local lv1=tuner1:GetSynchroLevel(c)
local f1=tuner1.tuner_filter local f1=tuner1.tuner_filter
local tuner2=nil local tuner2=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
if tuner1:IsHasEffect(EFFECT_HAND_SYNCHRO) then if tuner1:IsHasEffect(EFFECT_HAND_SYNCHRO) then
local t2=g3:FilterSelect(tp,c16172067.synfilter2,1,1,tuner1,c,lv-lv1,g2,g4,f1,tuner1) local t2=g3:FilterSelect(tp,c16172067.synfilter2,1,1,tuner1,c,lv,g2,g4,f1,tuner1)
tuner2=t2:GetFirst() tuner2=t2:GetFirst()
else else
local t2=g1:FilterSelect(tp,c16172067.synfilter2,1,1,tuner1,c,lv-lv1,g2,g4,f1,tuner1) local t2=g1:FilterSelect(tp,c16172067.synfilter2,1,1,tuner1,c,lv,g2,g4,f1,tuner1)
tuner2=t2:GetFirst() tuner2=t2:GetFirst()
end end
g:AddCard(tuner2) g:AddCard(tuner2)
local lv2=tuner2:GetSynchroLevel(c)
local f2=tuner2.tuner_filter local f2=tuner2.tuner_filter
local m3=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
if (tuner1:IsHasEffect(EFFECT_HAND_SYNCHRO) and not tuner2:IsLocation(LOCATION_HAND)) if (tuner1:IsHasEffect(EFFECT_HAND_SYNCHRO) and not tuner2:IsLocation(LOCATION_HAND))
or tuner2:IsHasEffect(EFFECT_HAND_SYNCHRO) then or tuner2:IsHasEffect(EFFECT_HAND_SYNCHRO) then
m3=g4:FilterSelect(tp,c16172067.synfilter3,1,1,nil,c,lv-lv1-lv2,f1,f2,g2) local m3=g4:FilterSelect(tp,c16172067.synfilter3,1,1,nil,c,lv,f1,f2,g2,tuner1,tuner2)
local lv3=m3:GetFirst():GetSynchroLevel(c) g:Merge(m3)
if lv-lv1-lv2-lv3>0 then Duel.SetSelectedCard(g)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local m4=g2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv-lv1-lv2-lv3,1,61,c) local m4=g2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv,0,61,c)
if m4 and m4:GetCount()>0 then
g:Merge(m4) g:Merge(m4)
end end
else else
m3=g2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv-lv1-lv2,1,63,c) Duel.SetSelectedCard(g)
local m3=g2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv,1,63,c)
g:Merge(m3)
end end
g:Merge(m3)
end end
c:SetMaterial(g) c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO) Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
......
...@@ -56,28 +56,23 @@ function c62242678.matfilter2(c,syncard) ...@@ -56,28 +56,23 @@ function c62242678.matfilter2(c,syncard)
return c:IsNotTuner() and c:IsFaceup() and c:IsRace(RACE_DRAGON) and c:IsAttribute(ATTRIBUTE_DARK) and c:IsType(TYPE_SYNCHRO) and c:IsCanBeSynchroMaterial(syncard) return c:IsNotTuner() and c:IsFaceup() and c:IsRace(RACE_DRAGON) and c:IsAttribute(ATTRIBUTE_DARK) and c:IsType(TYPE_SYNCHRO) and c:IsCanBeSynchroMaterial(syncard)
end end
function c62242678.synfilter1(c,syncard,lv,g1,g2,g3) function c62242678.synfilter1(c,syncard,lv,g1,g2,g3)
local tlv=c:GetSynchroLevel(syncard)
if lv-tlv<=0 then return false end
local f1=c.tuner_filter local f1=c.tuner_filter
if c:IsHasEffect(EFFECT_HAND_SYNCHRO) then if c:IsHasEffect(EFFECT_HAND_SYNCHRO) then
return g3:IsExists(c62242678.synfilter2,1,c,syncard,lv-tlv,g2,f1,c) return g3:IsExists(c62242678.synfilter2,1,c,syncard,lv,g2,f1,c)
else else
return g1:IsExists(c62242678.synfilter2,1,c,syncard,lv-tlv,g2,f1,c) return g1:IsExists(c62242678.synfilter2,1,c,syncard,lv,g2,f1,c)
end end
end end
function c62242678.synfilter2(c,syncard,lv,g2,f1,tuner1) function c62242678.synfilter2(c,syncard,lv,g2,f1,tuner1)
local tlv=c:GetSynchroLevel(syncard)
if lv-tlv<=0 then return false end
local f2=c.tuner_filter local f2=c.tuner_filter
if f1 and not f1(c) then return false end if f1 and not f1(c) then return false end
if f2 and not f2(tuner1) then return false end if f2 and not f2(tuner1) then return false end
return g2:IsExists(c62242678.synfilter3,1,nil,syncard,lv-tlv,f1,f2) local mg=g2:Filter(c62242678.synfilter3,nil,f1,f2)
Duel.SetSelectedCard(Group.FromCards(c,tuner1))
return mg:CheckWithSumEqual(Card.GetSynchroLevel,lv,1,1,syncard)
end end
function c62242678.synfilter3(c,syncard,lv,f1,f2) function c62242678.synfilter3(c,f1,f2)
local mlv=c:GetSynchroLevel(syncard) return (not f1 or f1(c)) and (not f2 or f2(c))
local lv1=bit.band(mlv,0xffff)
local lv2=bit.rshift(mlv,16)
return (lv1==lv or lv2==lv) and (not f1 or f1(c)) and (not f2 or f2(c))
end end
function c62242678.syncon(e,c,tuner,mg) function c62242678.syncon(e,c,tuner,mg)
if c==nil then return true end if c==nil then return true end
...@@ -89,7 +84,7 @@ function c62242678.syncon(e,c,tuner,mg) ...@@ -89,7 +84,7 @@ function c62242678.syncon(e,c,tuner,mg)
if mg then if mg then
g1=mg:Filter(c62242678.matfilter1,nil,c) g1=mg:Filter(c62242678.matfilter1,nil,c)
g2=mg:Filter(c62242678.matfilter2,nil,c) g2=mg:Filter(c62242678.matfilter2,nil,c)
g3=mg:Filter(c62242678.matfilter1,nil,c) g3=g1:Clone()
else else
g1=Duel.GetMatchingGroup(c62242678.matfilter1,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c) g1=Duel.GetMatchingGroup(c62242678.matfilter1,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c)
g2=Duel.GetMatchingGroup(c62242678.matfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c) g2=Duel.GetMatchingGroup(c62242678.matfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c)
...@@ -98,19 +93,17 @@ function c62242678.syncon(e,c,tuner,mg) ...@@ -98,19 +93,17 @@ function c62242678.syncon(e,c,tuner,mg)
local pe=Duel.IsPlayerAffectedByEffect(tp,EFFECT_MUST_BE_SMATERIAL) local pe=Duel.IsPlayerAffectedByEffect(tp,EFFECT_MUST_BE_SMATERIAL)
local lv=c:GetLevel() local lv=c:GetLevel()
if tuner then if tuner then
local tlv=tuner:GetSynchroLevel(c)
if lv-tlv<=0 then return false end
local f1=tuner.tuner_filter local f1=tuner.tuner_filter
if not pe then if not pe then
return g1:IsExists(c62242678.synfilter2,1,tuner,c,lv-tlv,g2,f1,tuner) return g1:IsExists(c62242678.synfilter2,1,tuner,c,lv,g2,f1,tuner)
else else
return c62242678.synfilter2(pe:GetOwner(),c,lv-tlv,g2,f1,tuner) return c62242678.synfilter2(pe:GetOwner(),c,lv,g2,f1,tuner)
end end
end end
if not pe then if not pe then
return g1:IsExists(c62242678.synfilter1,1,nil,c,lv,g1,g2,g3) return g1:IsExists(c62242678.synfilter1,1,nil,c,lv,g1,g2,g3)
else else
return c62242678.synfilter1(pe:GetOwner(),c,lv,g1,g2) return c62242678.synfilter1(pe:GetOwner(),c,lv,g1,g2,g3)
end end
end end
function c62242678.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg) function c62242678.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
...@@ -121,7 +114,7 @@ function c62242678.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg) ...@@ -121,7 +114,7 @@ function c62242678.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
if mg then if mg then
g1=mg:Filter(c62242678.matfilter1,nil,c) g1=mg:Filter(c62242678.matfilter1,nil,c)
g2=mg:Filter(c62242678.matfilter2,nil,c) g2=mg:Filter(c62242678.matfilter2,nil,c)
g3=mg:Filter(c62242678.matfilter1,nil,c) g3=g1:Clone()
else else
g1=Duel.GetMatchingGroup(c62242678.matfilter1,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c) g1=Duel.GetMatchingGroup(c62242678.matfilter1,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c)
g2=Duel.GetMatchingGroup(c62242678.matfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c) g2=Duel.GetMatchingGroup(c62242678.matfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil,c)
...@@ -131,22 +124,22 @@ function c62242678.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg) ...@@ -131,22 +124,22 @@ function c62242678.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
local lv=c:GetLevel() local lv=c:GetLevel()
if tuner then if tuner then
g:AddCard(tuner) g:AddCard(tuner)
local lv1=tuner:GetSynchroLevel(c)
local f1=tuner.tuner_filter local f1=tuner.tuner_filter
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local tuner2=nil local tuner2=nil
if not pe then if not pe then
local t2=g1:FilterSelect(tp,c62242678.synfilter2,1,1,tuner,c,lv-lv1,g2,f1,tuner) local t2=g1:FilterSelect(tp,c62242678.synfilter2,1,1,tuner,c,lv,g2,f1,tuner)
tuner2=t2:GetFirst() tuner2=t2:GetFirst()
else else
tuner2=pe:GetOwner() tuner2=pe:GetOwner()
Group.FromCards(tuner2):Select(tp,1,1,nil) Group.FromCards(tuner2):Select(tp,1,1,nil)
end end
g:AddCard(tuner2) g:AddCard(tuner2)
local lv2=tuner2:GetSynchroLevel(c)
local f2=tuner2.tuner_filter local f2=tuner2.tuner_filter
local mg2=g2:Filter(c62242678.synfilter3,nil,f1,f2)
Duel.SetSelectedCard(g)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local m3=g2:FilterSelect(tp,c62242678.synfilter3,1,1,nil,c,lv-lv1-lv2,f1,f2) local m3=mg2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv,1,1,c)
g:Merge(m3) g:Merge(m3)
else else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
...@@ -159,21 +152,21 @@ function c62242678.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg) ...@@ -159,21 +152,21 @@ function c62242678.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
Group.FromCards(tuner1):Select(tp,1,1,nil) Group.FromCards(tuner1):Select(tp,1,1,nil)
end end
g:AddCard(tuner1) g:AddCard(tuner1)
local lv1=tuner1:GetSynchroLevel(c)
local f1=tuner1.tuner_filter local f1=tuner1.tuner_filter
local t2=nil local t2=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
if tuner1:IsHasEffect(EFFECT_HAND_SYNCHRO) then if tuner1:IsHasEffect(EFFECT_HAND_SYNCHRO) then
t2=g3:FilterSelect(tp,c62242678.synfilter2,1,1,tuner1,c,lv-lv1,g2,f1,tuner1) t2=g3:FilterSelect(tp,c62242678.synfilter2,1,1,tuner1,c,lv,g2,f1,tuner1)
else else
t2=g1:FilterSelect(tp,c62242678.synfilter2,1,1,tuner1,c,lv-lv1,g2,f1,tuner1) t2=g1:FilterSelect(tp,c62242678.synfilter2,1,1,tuner1,c,lv,g2,f1,tuner1)
end end
local tuner2=t2:GetFirst() local tuner2=t2:GetFirst()
g:AddCard(tuner2) g:AddCard(tuner2)
local lv2=tuner2:GetSynchroLevel(c)
local f2=tuner2.tuner_filter local f2=tuner2.tuner_filter
local mg2=g2:Filter(c62242678.synfilter3,nil,f1,f2)
Duel.SetSelectedCard(g)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local m3=g2:FilterSelect(tp,c62242678.synfilter3,1,1,nil,c,lv-lv1-lv2,f1,f2) local m3=mg2:SelectWithSumEqual(tp,Card.GetSynchroLevel,lv,1,1,c)
g:Merge(m3) g:Merge(m3)
end end
c:SetMaterial(g) c:SetMaterial(g)
......
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