Commit 99a7162f authored by mercury233's avatar mercury233 Committed by nekrozar

update selecting cards with different name/level etc. (#1251)

* update

* update
parent d6e5fd9a
...@@ -80,7 +80,7 @@ function c10424147.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -80,7 +80,7 @@ function c10424147.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end if chkc then return false end
local g=Duel.GetMatchingGroup(c10424147.spfilter3,tp,LOCATION_MZONE+LOCATION_GRAVE,0,nil,e) local g=Duel.GetMatchingGroup(c10424147.spfilter3,tp,LOCATION_MZONE+LOCATION_GRAVE,0,nil,e)
if chk==0 then return Duel.GetLocationCountFromEx(tp)>0 if chk==0 then return Duel.GetLocationCountFromEx(tp)>0
and g:CheckSubGroup(aux.dncheck,3,3) and g:GetClassCount(Card.GetCode)>=3
and Duel.IsExistingMatchingCard(c10424147.spfilter4,tp,LOCATION_EXTRA,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(c10424147.spfilter4,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local sg=g:SelectSubGroup(tp,aux.dncheck,false,3,3) local sg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
......
...@@ -51,19 +51,7 @@ function c10613952.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -51,19 +51,7 @@ function c10613952.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local ft=Duel.GetLocationCount(tp,LOCATION_SZONE) local ft=Duel.GetLocationCount(tp,LOCATION_SZONE)
local g=Duel.GetMatchingGroup(c10613952.filter,tp,LOCATION_GRAVE,0,nil,e,tp,e:GetHandler()) local g=Duel.GetMatchingGroup(c10613952.filter,tp,LOCATION_GRAVE,0,nil,e,tp,e:GetHandler())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,1,math.min(ft,3))
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
if ft>1 and g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(10613952,3)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g2=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g2:GetFirst():GetCode())
g1:Merge(g2)
if ft>2 and g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(10613952,3)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
end
end
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g1,g1:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g1,g1:GetCount(),0,0)
end end
......
...@@ -47,18 +47,12 @@ end ...@@ -47,18 +47,12 @@ end
function c10698416.filter1(c,e,tp) function c10698416.filter1(c,e,tp)
return c:IsSetCard(0x104) and not c:IsCode(10698416) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x104) and not c:IsCode(10698416) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c10698416.filter2(c,g)
return g:IsExists(c10698416.filter3,1,c,c:GetCode())
end
function c10698416.filter3(c,code)
return not c:IsCode(code)
end
function c10698416.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c10698416.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end
local g=Duel.GetMatchingGroup(c10698416.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c10698416.filter1,tp,LOCATION_DECK,0,nil,e,tp)
return g:IsExists(c10698416.filter2,1,nil,g) return g:GetClassCount(Card.GetCode)>=2
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end end
...@@ -66,18 +60,10 @@ function c10698416.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -66,18 +60,10 @@ function c10698416.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetMatchingGroup(c10698416.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c10698416.filter1,tp,LOCATION_DECK,0,nil,e,tp)
local dg=g:Filter(c10698416.filter2,nil,g) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
if dg:GetCount()>=1 then local sg=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) if sg then
local sg=dg:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
local tc1=sg:GetFirst() Duel.ConfirmCards(1-tp,sg)
dg:Remove(Card.IsCode,nil,tc1:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc2=dg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonComplete()
local g=Group.FromCards(tc1,tc2)
Duel.ConfirmCards(1-tp,g)
end end
end end
...@@ -70,15 +70,8 @@ end ...@@ -70,15 +70,8 @@ end
function c12215894.cost2(e,tp,eg,ep,ev,re,r,rp,chk) function c12215894.cost2(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c12215894.cfilter,tp,LOCATION_GRAVE+LOCATION_ONFIELD,0,nil) local g=Duel.GetMatchingGroup(c12215894.cfilter,tp,LOCATION_GRAVE+LOCATION_ONFIELD,0,nil)
if chk==0 then return g:GetClassCount(Card.GetCode)>=9 end if chk==0 then return g:GetClassCount(Card.GetCode)>=9 end
local rg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
for i=1,9 do local rg=g:SelectSubGroup(tp,aux.dncheck,false,9,9)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc=g:Select(tp,1,1,nil):GetFirst()
if tc then
rg:AddCard(tc)
g:Remove(Card.IsCode,nil,tc:GetCode())
end
end
Duel.Remove(rg,POS_FACEUP,REASON_COST) Duel.Remove(rg,POS_FACEUP,REASON_COST)
end end
function c12215894.target2(e,tp,eg,ep,ev,re,r,rp,chk) function c12215894.target2(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -61,13 +61,7 @@ function c12950294.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,13 +61,7 @@ function c12950294.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c12950294.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c12950294.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)<2 then return end if g:GetClassCount(Card.GetCode)<2 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tg1=g:Select(tp,1,1,nil) local tg1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,tg1:GetFirst():GetCode()) Duel.SendtoHand(tg1,nil,REASON_EFFECT)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.ConfirmCards(1-tp,tg1)
local tg2=g:Select(tp,1,1,nil)
tg1:Merge(tg2)
if tg1:GetCount()==2 then
Duel.SendtoHand(tg1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tg1)
end
end end
...@@ -68,13 +68,7 @@ function c13662809.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -68,13 +68,7 @@ function c13662809.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c13662809.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c13662809.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetCount()<=0 then return end if g:GetCount()<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg1=g:Select(tp,1,1,nil) local sg1=g:SelectSubGroup(tp,aux.dncheck,false,1,2)
g:Remove(Card.IsCode,nil,sg1:GetFirst():GetCode())
if g:GetCount()>0 and Duel.SelectYesNo(tp,210) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg2=g:Select(tp,1,1,nil)
sg1:Merge(sg2)
end
Duel.SendtoHand(sg1,nil,REASON_EFFECT) Duel.SendtoHand(sg1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg1) Duel.ConfirmCards(1-tp,sg1)
end end
...@@ -73,11 +73,7 @@ function c14470845.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -73,11 +73,7 @@ function c14470845.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c14470845.spfilter,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c14470845.spfilter,tp,LOCATION_DECK,0,nil,e,tp)
if not Duel.IsPlayerAffectedByEffect(tp,59822133) and ft>1 and g:GetClassCount(Card.GetCode)>1 then if not Duel.IsPlayerAffectedByEffect(tp,59822133) and ft>1 and g:GetClassCount(Card.GetCode)>1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
end end
end end
...@@ -64,11 +64,7 @@ function c14604710.activate2(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,11 +64,7 @@ function c14604710.activate2(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsPlayerAffectedByEffect(tp,59822133) if not Duel.IsPlayerAffectedByEffect(tp,59822133)
and ft>1 and g:GetClassCount(Card.GetCode)>1 and tc:IsRelateToEffect(e) and tc:IsFaceup() then and ft>1 and g:GetClassCount(Card.GetCode)>1 and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
local fid=c:GetFieldID() local fid=c:GetFieldID()
local sc=g1:GetFirst() local sc=g1:GetFirst()
......
...@@ -58,13 +58,8 @@ function c15449853.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -58,13 +58,8 @@ function c15449853.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end if chkc then return false end
local g=Duel.GetMatchingGroup(c15449853.tdfilter,tp,LOCATION_GRAVE,0,nil,e) local g=Duel.GetMatchingGroup(c15449853.tdfilter,tp,LOCATION_GRAVE,0,nil,e)
if chk==0 then return g:GetClassCount(Card.GetCode)>=3 end if chk==0 then return g:GetClassCount(Card.GetCode)>=3 end
local tg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
repeat local tg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg=g:Select(tp,1,1,nil)
tg:Merge(sg)
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
until tg:GetCount()==3
Duel.SetTargetCard(tg) Duel.SetTargetCard(tg)
Duel.SetOperationInfo(0,CATEGORY_TODECK,tg,tg:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,tg,tg:GetCount(),0,0)
end end
......
...@@ -80,13 +80,8 @@ function c1561110.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -80,13 +80,8 @@ function c1561110.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
return ft>2 and not Duel.IsPlayerAffectedByEffect(tp,59822133) return ft>2 and not Duel.IsPlayerAffectedByEffect(tp,59822133)
and g:GetClassCount(Card.GetCode)>2 and g:GetClassCount(Card.GetCode)>2
end end
local sg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
for i=1,3 do local sg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
sg:Merge(g1)
end
Duel.SetTargetCard(sg) Duel.SetTargetCard(sg)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,sg,3,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,sg,3,0,0)
end end
......
...@@ -44,18 +44,12 @@ end ...@@ -44,18 +44,12 @@ end
function c15710054.filter1(c,e,tp) function c15710054.filter1(c,e,tp)
return c:IsSetCard(0x104) and not c:IsCode(15710054) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x104) and not c:IsCode(15710054) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c15710054.filter2(c,g)
return g:IsExists(c15710054.filter3,1,c,c:GetCode())
end
function c15710054.filter3(c,code)
return not c:IsCode(code)
end
function c15710054.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c15710054.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end
local g=Duel.GetMatchingGroup(c15710054.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c15710054.filter1,tp,LOCATION_DECK,0,nil,e,tp)
return g:IsExists(c15710054.filter2,1,nil,g) return g:GetClassCount(Card.GetCode)>=2
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end end
...@@ -63,18 +57,10 @@ function c15710054.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,18 +57,10 @@ function c15710054.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetMatchingGroup(c15710054.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c15710054.filter1,tp,LOCATION_DECK,0,nil,e,tp)
local dg=g:Filter(c15710054.filter2,nil,g) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
if dg:GetCount()>=1 then local sg=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) if sg then
local sg=dg:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
local tc1=sg:GetFirst() Duel.ConfirmCards(1-tp,sg)
dg:Remove(Card.IsCode,nil,tc1:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc2=dg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonComplete()
local g=Group.FromCards(tc1,tc2)
Duel.ConfirmCards(1-tp,g)
end end
end end
...@@ -24,13 +24,8 @@ end ...@@ -24,13 +24,8 @@ end
function c16329071.activate(e,tp,eg,ep,ev,re,r,rp) function c16329071.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c16329071.filter),tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_ONFIELD+LOCATION_REMOVED,0,nil) local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c16329071.filter),tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_ONFIELD+LOCATION_REMOVED,0,nil)
if g:GetClassCount(Card.GetCode)<5 then return end if g:GetClassCount(Card.GetCode)<5 then return end
local sg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
for i=1,5 do local sg=g:SelectSubGroup(tp,aux.dncheck,false,5,5)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g1=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
sg:Merge(g1)
end
local cg=sg:Filter(Card.IsLocation,nil,LOCATION_HAND) local cg=sg:Filter(Card.IsLocation,nil,LOCATION_HAND)
if cg:GetCount()>0 then if cg:GetCount()>0 then
Duel.ConfirmCards(1-tp,cg) Duel.ConfirmCards(1-tp,cg)
......
...@@ -59,11 +59,7 @@ function c17382973.thtg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -59,11 +59,7 @@ function c17382973.thtg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local g=Duel.GetMatchingGroup(c17382973.thfilter2,tp,LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(c17382973.thfilter2,tp,LOCATION_GRAVE,0,nil,e,tp)
if chk==0 then return g:GetClassCount(Card.GetCode)>=2 end if chk==0 then return g:GetClassCount(Card.GetCode)>=2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g1,2,0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,g1,2,0,0)
end end
......
...@@ -22,7 +22,7 @@ function c18378992.costcheck(g,tp) ...@@ -22,7 +22,7 @@ function c18378992.costcheck(g,tp)
local code1=g:GetFirst():GetCode() local code1=g:GetFirst():GetCode()
local code2=g:GetNext():GetCode() local code2=g:GetNext():GetCode()
local tg=Duel.GetMatchingGroup(c18378992.thfilter,tp,LOCATION_DECK,0,nil,code1,code2) local tg=Duel.GetMatchingGroup(c18378992.thfilter,tp,LOCATION_DECK,0,nil,code1,code2)
return tg:CheckSubGroup(aux.dncheck,2,2) return tg:GetClassCount(Card.GetCode)>=2
end end
function c18378992.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c18378992.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(100) e:SetLabel(100)
......
...@@ -62,11 +62,7 @@ function c18514525.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -62,11 +62,7 @@ function c18514525.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>1 and not Duel.IsPlayerAffectedByEffect(tp,59822133) if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>1 and not Duel.IsPlayerAffectedByEffect(tp,59822133)
and g:GetClassCount(Card.GetCode)>=2 end and g:GetClassCount(Card.GetCode)>=2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g1,2,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g1,2,0,0)
end end
......
...@@ -65,18 +65,7 @@ function c19337371.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -65,18 +65,7 @@ function c19337371.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c19337371.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c19337371.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetCount()==0 then return end if g:GetCount()==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,1,3)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(19337371,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g2:GetFirst():GetCode())
g1:Merge(g2)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(19337371,1)) then
g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
end
end
Duel.SendtoHand(g1,nil,REASON_EFFECT) Duel.SendtoHand(g1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g1) Duel.ConfirmCards(1-tp,g1)
end end
...@@ -66,13 +66,8 @@ function c20537097.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -66,13 +66,8 @@ function c20537097.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c20537097.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c20537097.thfilter,tp,LOCATION_DECK,0,nil)
local ct=e:GetHandler():GetColumnGroup():FilterCount(Card.IsControler,nil,1-tp) local ct=e:GetHandler():GetColumnGroup():FilterCount(Card.IsControler,nil,1-tp)
if ct<=0 or g:GetClassCount(Card.GetCode)<ct then return end if ct<=0 or g:GetClassCount(Card.GetCode)<ct then return end
local hg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
for i=1,ct do local hg=g:SelectSubGroup(tp,aux.dncheck,false,ct,ct)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tc=g:Select(tp,1,1,nil):GetFirst()
hg:AddCard(tc)
g:Remove(Card.IsCode,nil,tc:GetCode())
end
Duel.SendtoHand(hg,nil,REASON_EFFECT) Duel.SendtoHand(hg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,hg) Duel.ConfirmCards(1-tp,hg)
end end
...@@ -41,18 +41,7 @@ function c21223277.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -41,18 +41,7 @@ function c21223277.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local ft=Duel.GetLocationCount(tp,LOCATION_SZONE) local ft=Duel.GetLocationCount(tp,LOCATION_SZONE)
local g=Duel.GetMatchingGroup(c21223277.filter,tp,LOCATION_GRAVE,0,nil,e,tp,e:GetHandler()) local g=Duel.GetMatchingGroup(c21223277.filter,tp,LOCATION_GRAVE,0,nil,e,tp,e:GetHandler())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,1,math.min(ft,3))
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
if ft>1 and g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(21223277,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g2=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g2:GetFirst():GetCode())
g1:Merge(g2)
if ft>2 and g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(21223277,2)) then
g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
end
end
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g1,g1:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g1,g1:GetCount(),0,0)
end end
......
...@@ -72,11 +72,7 @@ function c23064604.tdop(e,tp,eg,ep,ev,re,r,rp) ...@@ -72,11 +72,7 @@ function c23064604.tdop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c23064604.tgfilter,tp,LOCATION_HAND+LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c23064604.tgfilter,tp,LOCATION_HAND+LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)<2 then return end if g:GetClassCount(Card.GetCode)<2 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tg1=g:Select(tp,1,1,nil) local tg1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,tg1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tg2=g:Select(tp,1,1,nil)
tg1:Merge(tg2)
if Duel.SendtoGrave(tg1,REASON_EFFECT)~=0 and tg1:IsExists(Card.IsLocation,2,nil,LOCATION_GRAVE) then if Duel.SendtoGrave(tg1,REASON_EFFECT)~=0 and tg1:IsExists(Card.IsLocation,2,nil,LOCATION_GRAVE) then
local sg=nil local sg=nil
local hg=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_HAND,nil) local hg=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_HAND,nil)
......
...@@ -79,14 +79,8 @@ function c2390019.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -79,14 +79,8 @@ function c2390019.activate(e,tp,eg,ep,ev,re,r,rp)
local rc=e:GetLabelObject() local rc=e:GetLabelObject()
local mg=Duel.GetMatchingGroup(aux.NecroValleyFilter(c2390019.filter),tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,nil,rc,e,tp) local mg=Duel.GetMatchingGroup(aux.NecroValleyFilter(c2390019.filter),tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,nil,rc,e,tp)
if mg:GetClassCount(Card.GetCode)<ct then return end if mg:GetClassCount(Card.GetCode)<ct then return end
local g=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
while ct>0 do local g=mg:SelectSubGroup(tp,aux.dncheck,false,ct,ct)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=mg:Select(tp,1,1,nil)
g:AddCard(sg:GetFirst())
mg:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
ct=ct-1
end
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
function c2390019.tdfilter(c) function c2390019.tdfilter(c)
......
...@@ -50,13 +50,8 @@ end ...@@ -50,13 +50,8 @@ end
function c27062594.damcost(e,tp,eg,ep,ev,re,r,rp,chk) function c27062594.damcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c27062594.cfilter,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c27062594.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
local g=Duel.GetMatchingGroup(c27062594.cfilter,tp,LOCATION_GRAVE,0,nil) local g=Duel.GetMatchingGroup(c27062594.cfilter,tp,LOCATION_GRAVE,0,nil)
local rg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
repeat local rg=g:SelectSubGroup(tp,aux.dncheck,false,1,g:GetCount())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
rg:Merge(sg)
until g:GetCount()==0 or not Duel.SelectYesNo(tp,aux.Stringid(27062594,1))
local ct=Duel.Remove(rg,POS_FACEUP,REASON_COST) local ct=Duel.Remove(rg,POS_FACEUP,REASON_COST)
e:SetLabel(ct) e:SetLabel(ct)
end end
......
...@@ -31,22 +31,18 @@ end ...@@ -31,22 +31,18 @@ end
function c28617139.thfilter(c) function c28617139.thfilter(c)
return c:IsSetCard(0x12d) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() return c:IsSetCard(0x12d) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end end
function c28617139.fselect(g)
return g:GetClassCount(Card.GetAttribute)==g:GetCount()
end
function c28617139.target(e,tp,eg,ep,ev,re,r,rp,chk) function c28617139.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c28617139.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c28617139.thfilter,tp,LOCATION_DECK,0,nil)
if chk==0 then return g:CheckSubGroup(c28617139.fselect,2,2) end if chk==0 then return g:GetClassCount(Card.GetAttribute)>=2 end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK)
end end
function c28617139.activate(e,tp,eg,ep,ev,re,r,rp) function c28617139.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c28617139.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c28617139.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetAttribute)<2 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:SelectSubGroup(tp,c28617139.fselect,false,2,2) local sg=g:SelectSubGroup(tp,aux.dabcheck,false,2,2)
if sg and sg:GetCount()==2 then Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.SendtoHand(sg,nil,REASON_EFFECT) Duel.ConfirmCards(1-tp,sg)
Duel.ConfirmCards(1-tp,sg)
end
end end
function c28617139.cffilter(c) function c28617139.cffilter(c)
return c:IsRace(RACE_WINDBEAST) and c:IsLevelAbove(2) and not c:IsPublic() return c:IsRace(RACE_WINDBEAST) and c:IsLevelAbove(2) and not c:IsPublic()
......
...@@ -48,15 +48,8 @@ function c28770951.drtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -48,15 +48,8 @@ function c28770951.drtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c28770951.filter(chkc,e) end if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c28770951.filter(chkc,e) end
local g=Duel.GetMatchingGroup(c28770951.filter,tp,LOCATION_GRAVE,0,nil,e) local g=Duel.GetMatchingGroup(c28770951.filter,tp,LOCATION_GRAVE,0,nil,e)
if chk==0 then return g:GetClassCount(Card.GetCode)>=5 and Duel.IsPlayerCanDraw(tp,2) end if chk==0 then return g:GetClassCount(Card.GetCode)>=5 and Duel.IsPlayerCanDraw(tp,2) end
local sg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
for i=1,5 do local sg=g:SelectSubGroup(tp,aux.dncheck,false,5,5)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local tc=g:Select(tp,1,1,nil):GetFirst()
if tc then
sg:AddCard(tc)
g:Remove(Card.IsCode,nil,tc:GetCode())
end
end
Duel.SetTargetCard(sg) Duel.SetTargetCard(sg)
Duel.SetOperationInfo(0,CATEGORY_TODECK,sg,sg:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,sg,sg:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
......
...@@ -65,13 +65,8 @@ end ...@@ -65,13 +65,8 @@ end
function c29146185.descost(e,tp,eg,ep,ev,re,r,rp,chk) function c29146185.descost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c29146185.cffilter,tp,LOCATION_HAND,0,nil) local g=Duel.GetMatchingGroup(c29146185.cffilter,tp,LOCATION_HAND,0,nil)
if chk==0 then return g:GetClassCount(Card.GetCode)>=4 end if chk==0 then return g:GetClassCount(Card.GetCode)>=4 end
local cg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
for i=1,4 do local cg=g:SelectSubGroup(tp,aux.dncheck,false,4,4)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
cg:Merge(sg)
end
Duel.ConfirmCards(1-tp,cg) Duel.ConfirmCards(1-tp,cg)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
end end
......
...@@ -57,14 +57,8 @@ function c30270176.spcon(e,c) ...@@ -57,14 +57,8 @@ function c30270176.spcon(e,c)
end end
function c30270176.spop(e,tp,eg,ep,ev,re,r,rp,c) function c30270176.spop(e,tp,eg,ep,ev,re,r,rp,c)
local hg=Duel.GetMatchingGroup(c30270176.spcfilter,tp,LOCATION_HAND,0,c) local hg=Duel.GetMatchingGroup(c30270176.spcfilter,tp,LOCATION_HAND,0,c)
local rg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
for i=1,3 do local rg=hg:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g=hg:Select(tp,1,1,nil)
local tc=g:GetFirst()
rg:AddCard(tc)
hg:Remove(Card.IsCode,nil,tc:GetCode())
end
Duel.ConfirmCards(1-tp,rg) Duel.ConfirmCards(1-tp,rg)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
end end
......
...@@ -76,15 +76,8 @@ function c30539496.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -76,15 +76,8 @@ function c30539496.spop(e,tp,eg,ep,ev,re,r,rp)
local rg=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_EXTRA,nil) local rg=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_EXTRA,nil)
if rm and rg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(30539496,2)) then if rm and rg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(30539496,2)) then
Duel.ConfirmCards(tp,rg) Duel.ConfirmCards(tp,rg)
local tg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local i=3 local tg=rg:SelectSubGroup(tp,aux.dncheck,false,1,3)
repeat
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc=rg:Select(tp,1,1,nil):GetFirst()
rg:Remove(Card.IsCode,nil,tc:GetCode())
tg:AddCard(tc)
i=i-1
until i<1 or rg:GetCount()==0 or not Duel.SelectYesNo(tp,aux.Stringid(30539496,3))
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT) Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
end end
end end
......
...@@ -34,14 +34,8 @@ end ...@@ -34,14 +34,8 @@ end
function c30786387.activate(e,tp,eg,ep,ev,re,r,rp) function c30786387.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c30786387.filter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c30786387.filter,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)>=3 then if g:GetClassCount(Card.GetCode)>=3 then
local rg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(30786387,1))
for i=1,3 do local rg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(30786387,1))
local sg=g:Select(tp,1,1,nil)
local tc=sg:GetFirst()
rg:AddCard(tc)
g:Remove(Card.IsCode,nil,tc:GetCode())
end
Duel.ConfirmCards(1-tp,rg) Duel.ConfirmCards(1-tp,rg)
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
local tg=rg:GetFirst() local tg=rg:GetFirst()
......
...@@ -28,12 +28,9 @@ function c32603633.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -28,12 +28,9 @@ function c32603633.op(e,tp,eg,ep,ev,re,r,rp)
if ft<=0 then return end if ft<=0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local g=Duel.GetMatchingGroup(c32603633.filter,tp,LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(c32603633.filter,tp,LOCATION_GRAVE,0,nil,e,tp)
while g:GetCount()>0 and ft>0 do if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ft)
Duel.SpecialSummonStep(sg:GetFirst(),0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
ft=ft-1
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
end end
Duel.SpecialSummonComplete()
end end
...@@ -35,19 +35,7 @@ function c33611061.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,19 +35,7 @@ function c33611061.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c33611061.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c33611061.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetCount()==0 then return end if g:GetCount()==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,1,3)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(33611061,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g2:GetFirst():GetCode())
g1:Merge(g2)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(33611061,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g3=g:Select(tp,1,1,nil)
g1:Merge(g3)
end
end
Duel.SendtoHand(g1,nil,REASON_EFFECT) Duel.SendtoHand(g1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g1) Duel.ConfirmCards(1-tp,g1)
end end
......
...@@ -65,13 +65,8 @@ function c35546670.tgcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -65,13 +65,8 @@ function c35546670.tgcost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c35546670.costfilter2,tp,LOCATION_ONFIELD+LOCATION_GRAVE,0,nil) local g=Duel.GetMatchingGroup(c35546670.costfilter2,tp,LOCATION_ONFIELD+LOCATION_GRAVE,0,nil)
if chk==0 then return g:GetClassCount(Card.GetCode)>=8 end if chk==0 then return g:GetClassCount(Card.GetCode)>=8 end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription()) Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
local rg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
for i=1,8 do local rg=g:SelectSubGroup(tp,aux.dncheck,false,8,8)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg=g:Select(tp,1,1,nil)
rg:AddCard(sg:GetFirst())
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
end
Duel.Remove(rg,POS_FACEUP,REASON_COST) Duel.Remove(rg,POS_FACEUP,REASON_COST)
end end
function c35546670.tgtg(e,tp,eg,ep,ev,re,r,rp,chk) function c35546670.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -52,14 +52,9 @@ function c36668118.spop1(e,tp,eg,ep,ev,re,r,rp) ...@@ -52,14 +52,9 @@ function c36668118.spop1(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g=Duel.GetMatchingGroup(c36668118.spfilter,tp,LOCATION_HAND,0,nil,e,tp) local g=Duel.GetMatchingGroup(c36668118.spfilter,tp,LOCATION_HAND,0,nil,e,tp)
if ft<1 or g:GetCount()==0 then return end if ft<1 or g:GetCount()==0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,math.min(ft,2))
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
if ft>1 and g:GetCount()>0 and not Duel.IsPlayerAffectedByEffect(tp,59822133) and Duel.SelectYesNo(tp,aux.Stringid(36668118,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg2=g:Select(tp,1,1,nil)
sg:AddCard(sg2:GetFirst())
end
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
end end
function c36668118.spcon(e,tp,eg,ep,ev,re,r,rp) function c36668118.spcon(e,tp,eg,ep,ev,re,r,rp)
...@@ -76,20 +71,8 @@ function c36668118.spop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -76,20 +71,8 @@ function c36668118.spop2(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)-Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0) local ct=Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)-Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)
local g=Duel.GetMatchingGroup(c36668118.spfilter,tp,LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(c36668118.spfilter,tp,LOCATION_GRAVE,0,nil,e,tp)
if ft<1 or ct<1 or g:GetCount()==0 then return end if ft<1 or ct<1 or g:GetCount()==0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,math.min(ft,ct))
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
if not Duel.IsPlayerAffectedByEffect(tp,59822133) then
ft=ft-1
ct=ct-1
while ft>0 and ct>0 and g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(36668118,2)) do
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg2=g:Select(tp,1,1,nil)
sg:AddCard(sg2:GetFirst())
g:Remove(Card.IsCode,nil,sg2:GetFirst():GetCode())
ft=ft-1
ct=ct-1
end
end
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
end end
...@@ -47,13 +47,7 @@ function c36734924.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,13 +47,7 @@ function c36734924.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c36734924.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c36734924.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetCount()<=0 then return end if g:GetCount()<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg1=g:Select(tp,1,1,nil) local sg1=g:SelectSubGroup(tp,aux.dncheck,false,1,2)
g:Remove(Card.IsCode,nil,sg1:GetFirst():GetCode())
if g:GetCount()>0 and Duel.SelectYesNo(tp,210) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg2=g:Select(tp,1,1,nil)
sg1:Merge(sg2)
end
Duel.SendtoHand(sg1,nil,REASON_EFFECT) Duel.SendtoHand(sg1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg1) Duel.ConfirmCards(1-tp,sg1)
end end
......
...@@ -27,11 +27,7 @@ function c37803970.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -27,11 +27,7 @@ function c37803970.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c37803970.thfilter,tp,LOCATION_EXTRA,0,nil) local g=Duel.GetMatchingGroup(c37803970.thfilter,tp,LOCATION_EXTRA,0,nil)
if g:GetClassCount(Card.GetCode)>=2 then if g:GetClassCount(Card.GetCode)>=2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SendtoHand(g1,nil,REASON_EFFECT) Duel.SendtoHand(g1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g1) Duel.ConfirmCards(1-tp,g1)
end end
......
...@@ -39,14 +39,10 @@ end ...@@ -39,14 +39,10 @@ end
function c39392286.thop(e,tp,eg,ep,ev,re,r,rp) function c39392286.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c39392286.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c39392286.thfilter,tp,LOCATION_DECK,0,nil)
if #g<=0 then return end if #g<=0 then return end
local ct=1
if e:GetLabel()==1 then ct=2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg1=g:Select(tp,1,1,nil) local sg1=g:SelectSubGroup(tp,aux.dncheck,false,1,ct)
g:Remove(Card.IsCode,nil,sg1:GetFirst():GetCode())
if #g>0 and e:GetLabel()==1 and Duel.SelectYesNo(tp,210) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg2=g:Select(tp,1,1,nil)
sg1:Merge(sg2)
end
Duel.SendtoHand(sg1,nil,REASON_EFFECT) Duel.SendtoHand(sg1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg1) Duel.ConfirmCards(1-tp,sg1)
end end
...@@ -32,13 +32,9 @@ end ...@@ -32,13 +32,9 @@ end
function c40177746.thop(e,tp,eg,ep,ev,re,r,rp) function c40177746.thop(e,tp,eg,ep,ev,re,r,rp)
local dg=Duel.GetMatchingGroup(c40177746.filter,tp,LOCATION_DECK,0,nil) local dg=Duel.GetMatchingGroup(c40177746.filter,tp,LOCATION_DECK,0,nil)
local ct=e:GetLabel() local ct=e:GetLabel()
if dg:GetClassCount(Card.GetCode)==0 or dg:GetClassCount(Card.GetCode)<ct then return end if dg:GetClassCount(Card.GetCode)<ct then return end
local g=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
for i=1,ct do local g=dg:SelectSubGroup(tp,aux.dncheck,false,ct,ct)
local tc=dg:Select(tp,1,1,nil):GetFirst()
g:AddCard(tc)
dg:Remove(Card.IsCode,nil,tc:GetCode())
end
Duel.SendtoHand(g,nil,REASON_EFFECT) Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
...@@ -51,15 +51,7 @@ function c40230018.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -51,15 +51,7 @@ function c40230018.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c40230018.filter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c40230018.filter,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)>=3 then if g:GetClassCount(Card.GetCode)>=3 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg1=g:Select(tp,1,1,nil) local sg1=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
g:Remove(Card.IsCode,nil,sg1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg2=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,sg2:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg3=g:Select(tp,1,1,nil)
sg1:Merge(sg2)
sg1:Merge(sg3)
Duel.ConfirmCards(1-tp,sg1) Duel.ConfirmCards(1-tp,sg1)
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_ATOHAND)
......
...@@ -47,11 +47,7 @@ function c40450317.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,11 +47,7 @@ function c40450317.activate(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsPlayerAffectedByEffect(tp,59822133) if not Duel.IsPlayerAffectedByEffect(tp,59822133)
and ft>1 and g:GetClassCount(Card.GetCode)>1 and tc:IsRelateToEffect(e) and tc:IsFaceup() then and ft>1 and g:GetClassCount(Card.GetCode)>1 and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
end end
if e:IsHasType(EFFECT_TYPE_ACTIVATE) then if e:IsHasType(EFFECT_TYPE_ACTIVATE) then
......
...@@ -28,15 +28,10 @@ end ...@@ -28,15 +28,10 @@ end
function c40854824.activate(e,tp,eg,ep,ev,re,r,rp) function c40854824.activate(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end if ft<=0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local g=Duel.GetMatchingGroup(c40854824.filter,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c40854824.filter,tp,LOCATION_DECK,0,nil,e,tp)
if g:GetCount()==0 then return end if g:GetCount()==0 then return end
repeat Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ft)
local sg=g:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
local tc=sg:GetFirst()
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
g:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft-1
until ft<=0 or g:GetCount()==0 or not Duel.SelectYesNo(tp,aux.Stringid(40854824,0))
Duel.SpecialSummonComplete()
end end
...@@ -66,11 +66,7 @@ function c41933425.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -66,11 +66,7 @@ function c41933425.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c41933425.spfilter1),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c41933425.spfilter1),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,nil,e,tp)
if g:GetClassCount(Card.GetCode)>1 then if g:GetClassCount(Card.GetCode)>1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg1=g:Select(tp,1,1,nil) local sg1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,sg1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg2=g:Select(tp,1,1,nil)
sg1:Merge(sg2)
Duel.SpecialSummon(sg1,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(sg1,0,tp,tp,false,false,POS_FACEUP)
end end
end end
......
...@@ -46,13 +46,8 @@ function c43886072.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -46,13 +46,8 @@ function c43886072.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end if chkc then return false end
local g=Duel.GetMatchingGroup(c43886072.thfilter,tp,LOCATION_GRAVE,0,nil,e) local g=Duel.GetMatchingGroup(c43886072.thfilter,tp,LOCATION_GRAVE,0,nil,e)
if chk==0 then return g:GetClassCount(Card.GetCode)>=2 end if chk==0 then return g:GetClassCount(Card.GetCode)>=2 end
local sg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
for i=1,2 do local sg=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
sg:Merge(g1)
end
Duel.SetTargetCard(sg) Duel.SetTargetCard(sg)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,sg,#sg,0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,sg,#sg,0,0)
end end
......
...@@ -50,11 +50,7 @@ function c44509529.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -50,11 +50,7 @@ function c44509529.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>1 and not Duel.IsPlayerAffectedByEffect(tp,59822133) if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>1 and not Duel.IsPlayerAffectedByEffect(tp,59822133)
and g:GetClassCount(Card.GetCode)>=2 end and g:GetClassCount(Card.GetCode)>=2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g1,2,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g1,2,0,0)
end end
......
...@@ -45,18 +45,12 @@ end ...@@ -45,18 +45,12 @@ end
function c46083111.filter1(c,e,tp) function c46083111.filter1(c,e,tp)
return c:IsSetCard(0x104) and not c:IsCode(46083111) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x104) and not c:IsCode(46083111) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c46083111.filter2(c,g)
return g:IsExists(c46083111.filter3,1,c,c:GetCode())
end
function c46083111.filter3(c,code)
return not c:IsCode(code)
end
function c46083111.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c46083111.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end
local g=Duel.GetMatchingGroup(c46083111.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c46083111.filter1,tp,LOCATION_DECK,0,nil,e,tp)
return g:IsExists(c46083111.filter2,1,nil,g) return g:GetClassCount(Card.GetCode)>=2
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end end
...@@ -64,18 +58,10 @@ function c46083111.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,18 +58,10 @@ function c46083111.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetMatchingGroup(c46083111.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c46083111.filter1,tp,LOCATION_DECK,0,nil,e,tp)
local dg=g:Filter(c46083111.filter2,nil,g) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
if dg:GetCount()>=1 then local sg=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) if sg then
local sg=dg:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
local tc1=sg:GetFirst() Duel.ConfirmCards(1-tp,sg)
dg:Remove(Card.IsCode,nil,tc1:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc2=dg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonComplete()
local g=Group.FromCards(tc1,tc2)
Duel.ConfirmCards(1-tp,g)
end end
end end
...@@ -56,13 +56,8 @@ function c4682617.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,13 +56,8 @@ function c4682617.activate(e,tp,eg,ep,ev,re,r,rp)
if sct>0 and ft>0 and Duel.SelectYesNo(tp,aux.Stringid(4682617,0)) then if sct>0 and ft>0 and Duel.SelectYesNo(tp,aux.Stringid(4682617,0)) then
Duel.BreakEffect() Duel.BreakEffect()
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local g=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
repeat local g=sg:SelectSubGroup(tp,aux.dncheck,false,1,math.min(ft,sct))
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc=sg:Select(tp,1,1,nil):GetFirst()
g:AddCard(tc)
sg:Remove(Card.IsCode,nil,tc:GetCode())
until sct==g:GetCount() or ft==g:GetCount() or not Duel.SelectYesNo(tp,210)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
end end
......
...@@ -66,13 +66,7 @@ function c47075569.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -66,13 +66,7 @@ function c47075569.thop(e,tp,eg,ep,ev,re,r,rp)
if ct==0 or g:GetCount()==0 then return end if ct==0 or g:GetCount()==0 then return end
if ct>g:GetClassCount(Card.GetCode) then return end if ct>g:GetClassCount(Card.GetCode) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,ct,ct)
if ct==2 then
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
end
Duel.SendtoHand(g1,nil,REASON_EFFECT) Duel.SendtoHand(g1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g1) Duel.ConfirmCards(1-tp,g1)
end end
...@@ -21,14 +21,8 @@ function c47457347.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -21,14 +21,8 @@ function c47457347.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local g=Duel.GetMatchingGroup(c47457347.filter,tp,LOCATION_REMOVED,0,nil,e,tp):Filter(Card.IsCanBeEffectTarget,nil,e) local g=Duel.GetMatchingGroup(c47457347.filter,tp,LOCATION_REMOVED,0,nil,e,tp):Filter(Card.IsCanBeEffectTarget,nil,e)
local tg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
repeat local tg=g:SelectSubGroup(tp,aux.dncheck,false,1,ft)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
tg:Merge(sg)
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
ft=ft-1
until g:GetCount()==0 or ft==0 or not Duel.SelectYesNo(tp,aux.Stringid(47457347,0))
Duel.SetTargetCard(tg) Duel.SetTargetCard(tg)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,tg,tg:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,tg,tg:GetCount(),0,0)
end end
......
...@@ -43,15 +43,7 @@ function c50756327.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -43,15 +43,7 @@ function c50756327.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c50756327.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c50756327.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)>=3 then if g:GetClassCount(Card.GetCode)>=3 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg1=g:Select(tp,1,1,nil) local sg1=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
g:Remove(Card.IsCode,nil,sg1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg2=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,sg2:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg3=g:Select(tp,1,1,nil)
sg1:Merge(sg2)
sg1:Merge(sg3)
Duel.ConfirmCards(1-tp,sg1) Duel.ConfirmCards(1-tp,sg1)
local cg=sg1:RandomSelect(1-tp,1) local cg=sg1:RandomSelect(1-tp,1)
local tc=cg:GetFirst() local tc=cg:GetFirst()
......
...@@ -54,18 +54,12 @@ end ...@@ -54,18 +54,12 @@ end
function c51205763.filter1(c,e,tp) function c51205763.filter1(c,e,tp)
return c:IsSetCard(0x104) and not c:IsCode(51205763) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x104) and not c:IsCode(51205763) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c51205763.filter2(c,g)
return g:IsExists(c51205763.filter3,1,c,c:GetCode())
end
function c51205763.filter3(c,code)
return not c:IsCode(code)
end
function c51205763.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c51205763.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end
local g=Duel.GetMatchingGroup(c51205763.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c51205763.filter1,tp,LOCATION_DECK,0,nil,e,tp)
return g:IsExists(c51205763.filter2,1,nil,g) return g:GetClassCount(Card.GetCode)>=2
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end end
...@@ -73,18 +67,10 @@ function c51205763.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -73,18 +67,10 @@ function c51205763.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetMatchingGroup(c51205763.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c51205763.filter1,tp,LOCATION_DECK,0,nil,e,tp)
local dg=g:Filter(c51205763.filter2,nil,g) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
if dg:GetCount()>=1 then local sg=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) if sg then
local sg=dg:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
local tc1=sg:GetFirst() Duel.ConfirmCards(1-tp,sg)
dg:Remove(Card.IsCode,nil,tc1:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc2=dg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonComplete()
local g=Group.FromCards(tc1,tc2)
Duel.ConfirmCards(1-tp,g)
end end
end end
...@@ -40,11 +40,7 @@ function c53208660.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -40,11 +40,7 @@ function c53208660.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c53208660.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c53208660.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)>=2 then if g:GetClassCount(Card.GetCode)>=2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SendtoHand(g1,nil,REASON_EFFECT) Duel.SendtoHand(g1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g1) Duel.ConfirmCards(1-tp,g1)
end end
......
...@@ -60,13 +60,8 @@ function c56132807.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -60,13 +60,8 @@ function c56132807.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.IsExistingTarget(c56132807.thfilter,tp,LOCATION_GRAVE,0,1,c) end if chk==0 then return Duel.IsExistingTarget(c56132807.thfilter,tp,LOCATION_GRAVE,0,1,c) end
local g=Duel.GetMatchingGroup(c56132807.thfilter,tp,LOCATION_GRAVE,0,c):Filter(Card.IsCanBeEffectTarget,nil,e) local g=Duel.GetMatchingGroup(c56132807.thfilter,tp,LOCATION_GRAVE,0,c):Filter(Card.IsCanBeEffectTarget,nil,e)
local tg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
repeat local tg=g:SelectSubGroup(tp,aux.dncheck,false,1,3)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
tg:Merge(sg)
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
until tg:GetCount()==3 or g:GetCount()==0 or not Duel.SelectYesNo(tp,aux.Stringid(56132807,0))
Duel.SetTargetCard(tg) Duel.SetTargetCard(tg)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,tg,tg:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,tg,tg:GetCount(),0,0)
end end
......
...@@ -81,7 +81,7 @@ function c56337500.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -81,7 +81,7 @@ function c56337500.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 or Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 or Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end
local g=Duel.GetMatchingGroup(c56337500.spfilter,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c56337500.spfilter,tp,LOCATION_DECK,0,nil,e,tp)
return g:CheckSubGroup(aux.dncheck,2,2) return g:GetClassCount(Card.GetCode)>=2
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end end
......
...@@ -74,13 +74,8 @@ end ...@@ -74,13 +74,8 @@ end
function c58753372.spop(e,tp,eg,ep,ev,re,r,rp) function c58753372.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c58753372.spfilter2,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c58753372.spfilter2,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)>=3 then if g:GetClassCount(Card.GetCode)>=3 then
local cg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
for i=1,3 do local cg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
cg:Merge(sg)
end
Duel.ConfirmCards(1-tp,cg) Duel.ConfirmCards(1-tp,cg)
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON)
......
...@@ -42,13 +42,8 @@ end ...@@ -42,13 +42,8 @@ end
function c58820923.rmcost(e,tp,eg,ep,ev,re,r,rp,chk) function c58820923.rmcost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c58820923.cfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c58820923.cfilter,tp,LOCATION_DECK,0,nil)
if chk==0 then return g:GetClassCount(Card.GetCode)>2 end if chk==0 then return g:GetClassCount(Card.GetCode)>2 end
local tg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
for i=1,3 do local tg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local sg=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
tg:Merge(sg)
end
Duel.SendtoGrave(tg,REASON_COST) Duel.SendtoGrave(tg,REASON_COST)
end end
function c58820923.rmtg(e,tp,eg,ep,ev,re,r,rp,chk) function c58820923.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -28,12 +28,6 @@ function c59057953.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -28,12 +28,6 @@ function c59057953.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c59057953.filter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c59057953.filter,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)<2 then return end if g:GetClassCount(Card.GetCode)<2 then return end
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(59057953,0)) Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(59057953,0))
local tg1=g:Select(tp,1,1,nil) local tg1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,tg1:GetFirst():GetCode()) Duel.SendtoExtraP(tg1,tp,REASON_EFFECT)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(59057953,0))
local tg2=g:Select(tp,1,1,nil)
tg1:Merge(tg2)
if tg1:GetCount()==2 then
Duel.SendtoExtraP(tg1,tp,REASON_EFFECT)
end
end end
...@@ -108,13 +108,8 @@ function c59934749.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -108,13 +108,8 @@ function c59934749.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
lvt[pc]=nil lvt[pc]=nil
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(59934749,2)) Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(59934749,2))
local lv=Duel.AnnounceNumber(tp,table.unpack(lvt)) local lv=Duel.AnnounceNumber(tp,table.unpack(lvt))
local rg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
for i=1,lv do local rg=cg:SelectSubGroup(tp,aux.dncheck,false,lv,lv)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local sg=cg:Select(tp,1,1,nil)
cg:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
rg:Merge(sg)
end
Duel.SendtoGrave(rg,REASON_COST) Duel.SendtoGrave(rg,REASON_COST)
e:SetLabel(lv) e:SetLabel(lv)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
......
...@@ -40,20 +40,12 @@ function c61613388.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -40,20 +40,12 @@ function c61613388.activate(e,tp,eg,ep,ev,re,r,rp)
if ct1>Duel.GetLocationCount(tp,LOCATION_MZONE) then ct1=Duel.GetLocationCount(tp,LOCATION_MZONE) end if ct1>Duel.GetLocationCount(tp,LOCATION_MZONE) then ct1=Duel.GetLocationCount(tp,LOCATION_MZONE) end
if ct2>Duel.GetLocationCount(1-tp,LOCATION_MZONE) then ct2=Duel.GetLocationCount(1-tp,LOCATION_MZONE) end if ct2>Duel.GetLocationCount(1-tp,LOCATION_MZONE) then ct2=Duel.GetLocationCount(1-tp,LOCATION_MZONE) end
if ct1<=0 then return end if ct1<=0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ct1=1 end
local g=Duel.GetMatchingGroup(c61613388.filter,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c61613388.filter,tp,LOCATION_DECK,0,nil,e,tp)
if g:GetCount()==0 then return end if g:GetCount()==0 then return end
Duel.BreakEffect() Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ct1)
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
ct1=ct1-1
while ct1>0 and g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(61613388,0)) do
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
sg:Merge(g1)
ct1=ct1-1
end
local sc=sg:GetFirst() local sc=sg:GetFirst()
while sc do while sc do
if Duel.SpecialSummonStep(sc,0,tp,tp,false,false,POS_FACEUP) then if Duel.SpecialSummonStep(sc,0,tp,tp,false,false,POS_FACEUP) then
...@@ -68,6 +60,7 @@ function c61613388.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -68,6 +60,7 @@ function c61613388.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
if ct2>0 and Duel.IsExistingMatchingCard(Card.IsCanBeSpecialSummoned,tp,0,LOCATION_DECK,1,nil,e,0,1-tp,false,false) if ct2>0 and Duel.IsExistingMatchingCard(Card.IsCanBeSpecialSummoned,tp,0,LOCATION_DECK,1,nil,e,0,1-tp,false,false)
and Duel.SelectYesNo(1-tp,aux.Stringid(61613388,1)) then and Duel.SelectYesNo(1-tp,aux.Stringid(61613388,1)) then
if Duel.IsPlayerAffectedByEffect(1-tp,59822133) then ct2=1 end
Duel.BreakEffect() Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON)
local sg2=Duel.SelectMatchingCard(1-tp,Card.IsCanBeSpecialSummoned,tp,0,LOCATION_DECK,1,ct2,nil,e,0,1-tp,false,false) local sg2=Duel.SelectMatchingCard(1-tp,Card.IsCanBeSpecialSummoned,tp,0,LOCATION_DECK,1,ct2,nil,e,0,1-tp,false,false)
......
...@@ -71,13 +71,7 @@ function c62000467.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,13 +71,7 @@ function c62000467.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c62000467.spfilter,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c62000467.spfilter,tp,LOCATION_DECK,0,nil,e,tp)
if g:GetCount()>=2 and g:GetClassCount(Card.GetCode)>=2 then if g:GetCount()>=2 and g:GetClassCount(Card.GetCode)>=2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg1=g:Select(tp,1,1,nil) local sg1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
local tc1=sg1:GetFirst()
g:Remove(Card.IsCode,nil,tc1:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg2=g:Select(tp,1,1,nil)
local tc2=sg2:GetFirst()
sg1:Merge(sg2)
local tc=sg1:GetFirst() local tc=sg1:GetFirst()
Duel.SpecialSummonStep(tc,125,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummonStep(tc,125,tp,tp,false,false,POS_FACEUP)
tc:RegisterFlagEffect(tc:GetOriginalCode(),RESET_EVENT+RESETS_STANDARD+RESET_DISABLE,0,0) tc:RegisterFlagEffect(tc:GetOriginalCode(),RESET_EVENT+RESETS_STANDARD+RESET_DISABLE,0,0)
......
...@@ -22,11 +22,7 @@ function c62376646.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -22,11 +22,7 @@ function c62376646.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 and Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and g:GetClassCount(Card.GetLevel)>=2 end and g:GetClassCount(Card.GetLevel)>=2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dlvcheck,false,2,2)
g:Remove(Card.IsLevel,nil,g1:GetFirst():GetLevel())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g1,2,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g1,2,0,0)
end end
......
...@@ -64,15 +64,7 @@ function c64280356.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,15 +64,7 @@ function c64280356.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c64280356.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c64280356.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)>=3 then if g:GetClassCount(Card.GetCode)>=3 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg1=g:Select(tp,1,1,nil) local sg1=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
g:Remove(Card.IsCode,nil,sg1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg2=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,sg2:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local sg3=g:Select(tp,1,1,nil)
sg1:Merge(sg2)
sg1:Merge(sg3)
Duel.ConfirmCards(1-tp,sg1) Duel.ConfirmCards(1-tp,sg1)
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_ATOHAND)
......
...@@ -15,17 +15,10 @@ function c64990807.cfilter(c) ...@@ -15,17 +15,10 @@ function c64990807.cfilter(c)
return c:IsSetCard(0x2f) and c:IsType(TYPE_MONSTER) and not c:IsPublic() return c:IsSetCard(0x2f) and c:IsType(TYPE_MONSTER) and not c:IsPublic()
end end
function c64990807.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c64990807.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMatchingGroup(c64990807.cfilter,tp,LOCATION_HAND,0,nil):GetClassCount(Card.GetCode)>=3 end
local g=Duel.GetMatchingGroup(c64990807.cfilter,tp,LOCATION_HAND,0,nil) local g=Duel.GetMatchingGroup(c64990807.cfilter,tp,LOCATION_HAND,0,nil)
if chk==0 then return g:GetClassCount(Card.GetCode)>=3 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local tc1=g:Select(tp,1,1,nil):GetFirst() local cg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
g:Remove(Card.IsCode,nil,tc1:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local tc2=g:Select(tp,1,1,nil):GetFirst()
g:Remove(Card.IsCode,nil,tc2:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local tc3=g:Select(tp,1,1,nil):GetFirst()
local cg=Group.FromCards(tc1,tc2,tc3)
Duel.ConfirmCards(1-tp,cg) Duel.ConfirmCards(1-tp,cg)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
end end
......
...@@ -28,14 +28,10 @@ end ...@@ -28,14 +28,10 @@ end
function c68191243.op(e,tp,eg,ep,ev,re,r,rp) function c68191243.op(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end if ft<=0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local g=Duel.GetMatchingGroup(c68191243.filter,tp,LOCATION_HAND,0,nil,e,tp) local g=Duel.GetMatchingGroup(c68191243.filter,tp,LOCATION_HAND,0,nil,e,tp)
while g:GetCount()>0 and ft>0 do if g:GetCount()==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ft)
Duel.SpecialSummonStep(sg:GetFirst(),0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
ft=ft-1
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
if g:GetCount()>0 and ft>0 and not Duel.SelectYesNo(tp,aux.Stringid(68191243,0)) then ft=0 end
end
Duel.SpecialSummonComplete()
end end
...@@ -77,7 +77,7 @@ function c69394324.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -77,7 +77,7 @@ function c69394324.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local g=Duel.GetMatchingGroup(c69394324.spfilter,tp,LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(c69394324.spfilter,tp,LOCATION_GRAVE,0,nil,e,tp)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133) if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>=3 and Duel.GetLocationCount(tp,LOCATION_MZONE)>=3
and g:CheckSubGroup(aux.dncheck,3,3) end and g:GetClassCount(Card.GetCode)>=3 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:SelectSubGroup(tp,aux.dncheck,false,3,3) local sg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.SetTargetCard(sg) Duel.SetTargetCard(sg)
......
...@@ -22,13 +22,8 @@ end ...@@ -22,13 +22,8 @@ end
function c69572169.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c69572169.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local rg=Duel.GetMatchingGroup(c69572169.rfilter,tp,LOCATION_GRAVE,0,e:GetHandler()) local rg=Duel.GetMatchingGroup(c69572169.rfilter,tp,LOCATION_GRAVE,0,e:GetHandler())
if chk==0 then return e:GetHandler():IsAbleToRemoveAsCost() and rg:GetClassCount(Card.GetCode)>=3 end if chk==0 then return e:GetHandler():IsAbleToRemoveAsCost() and rg:GetClassCount(Card.GetCode)>=3 end
local g=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
for i=1,3 do local g=rg:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc=rg:Select(tp,1,1,nil):GetFirst()
rg:Remove(Card.IsCode,nil,tc:GetCode())
g:AddCard(tc)
end
g:AddCard(e:GetHandler()) g:AddCard(e:GetHandler())
Duel.Remove(g,POS_FACEUP,REASON_COST) Duel.Remove(g,POS_FACEUP,REASON_COST)
end end
......
...@@ -64,15 +64,8 @@ function c71791814.effop(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,15 +64,8 @@ function c71791814.effop(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE) local ct=Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)
local g=Duel.GetMatchingGroup(c71791814.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c71791814.thfilter,tp,LOCATION_DECK,0,nil)
if ct<=0 or g:GetCount()==0 then return end if ct<=0 or g:GetCount()==0 then return end
local sg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
repeat local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ct)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg1=g:Select(tp,1,1,nil)
local tc=sg1:GetFirst()
sg:AddCard(tc)
g:Remove(Card.IsCode,nil,tc:GetCode())
ct=ct-1
until ct<=0 or g:GetCount()==0 or not Duel.SelectYesNo(tp,aux.Stringid(71791814,2))
Duel.SendtoHand(sg,nil,REASON_EFFECT) Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
else else
...@@ -81,15 +74,8 @@ function c71791814.effop(e,tp,eg,ep,ev,re,r,rp) ...@@ -81,15 +74,8 @@ function c71791814.effop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c71791814.spfilter,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c71791814.spfilter,tp,LOCATION_DECK,0,nil,e,tp)
if ft<=0 or ct<=0 or g:GetCount()==0 then return end if ft<=0 or ct<=0 or g:GetCount()==0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
repeat Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,math.min(ft,ct))
local sg=g:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
local tc=sg:GetFirst()
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
g:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft-1
ct=ct-1
until ft<=0 or ct<=0 or g:GetCount()==0 or not Duel.SelectYesNo(tp,aux.Stringid(71791814,3))
Duel.SpecialSummonComplete()
end end
end end
...@@ -30,15 +30,7 @@ function c72537897.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -30,15 +30,7 @@ function c72537897.activate(e,tp,eg,ep,ev,re,r,rp)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>2 and Duel.GetLocationCount(tp,LOCATION_MZONE)>2
and g:GetClassCount(Card.GetCode)>=3 then and g:GetClassCount(Card.GetCode)>=3 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg1=g:Select(tp,1,1,nil) local sg1=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
g:Remove(Card.IsCode,nil,sg1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg2=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,sg2:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg3=g:Select(tp,1,1,nil)
sg1:Merge(sg2)
sg1:Merge(sg3)
local fid=c:GetFieldID() local fid=c:GetFieldID()
local tc=sg1:GetFirst() local tc=sg1:GetFirst()
while tc do while tc do
......
...@@ -53,13 +53,8 @@ function c73881652.drtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -53,13 +53,8 @@ function c73881652.drtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local g=Duel.GetMatchingGroup(c73881652.drfilter,tp,LOCATION_GRAVE,0,e:GetHandler(),e) local g=Duel.GetMatchingGroup(c73881652.drfilter,tp,LOCATION_GRAVE,0,e:GetHandler(),e)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) if chk==0 then return Duel.IsPlayerCanDraw(tp,1)
and g:GetClassCount(Card.GetCode)>4 end and g:GetClassCount(Card.GetCode)>4 end
local sg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
for i=1,5 do local sg=g:SelectSubGroup(tp,aux.dncheck,false,5,5)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g1=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
sg:Merge(g1)
end
Duel.SetTargetCard(sg) Duel.SetTargetCard(sg)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,5,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,g,5,0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
......
...@@ -29,12 +29,12 @@ function c74414885.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -29,12 +29,12 @@ function c74414885.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end if ft<=0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c74414885.filter),tp,LOCATION_HAND+LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c74414885.filter),tp,LOCATION_HAND+LOCATION_GRAVE,0,nil,e,tp)
if g:GetCount()==0 then return end if g:GetCount()==0 then return end
repeat Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ft)
local sg=g:Select(tp,1,1,nil) for tc in aux.Next(sg) do
local tc=sg:GetFirst()
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE) Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -55,9 +55,7 @@ function c74414885.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -55,9 +55,7 @@ function c74414885.activate(e,tp,eg,ep,ev,re,r,rp)
e3:SetTarget(c74414885.splimit) e3:SetTarget(c74414885.splimit)
e3:SetReset(RESET_EVENT+RESETS_STANDARD) e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3,true) tc:RegisterEffect(e3,true)
g:Remove(Card.IsCode,nil,tc:GetCode()) end
ft=ft-1
until ft<=0 or g:GetCount()==0 or not Duel.SelectYesNo(tp,aux.Stringid(74414885,0))
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
end end
function c74414885.splimit(e,c) function c74414885.splimit(e,c)
......
...@@ -72,17 +72,11 @@ end ...@@ -72,17 +72,11 @@ end
function c74974229.spop(e,tp,eg,ep,ev,re,r,rp) function c74974229.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end if ft<=0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c74974229.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c74974229.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
local ct=Duel.GetMatchingGroupCount(c74974229.ctfilter,tp,0,LOCATION_MZONE,nil) local ct=Duel.GetMatchingGroupCount(c74974229.ctfilter,tp,0,LOCATION_MZONE,nil)
if g:GetCount()==0 or ct==0 then return end if g:GetCount()==0 or ct==0 then return end
repeat Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,math.min(ft,ct))
local sg=g:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
local tc=sg:GetFirst()
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
g:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft-1
ct=ct-1
until ft<=0 or g:GetCount()==0 or ct==0 or not Duel.SelectYesNo(tp,aux.Stringid(74974229,3))
Duel.SpecialSummonComplete()
end end
...@@ -32,7 +32,7 @@ function c76382116.fselect(g,e,tp) ...@@ -32,7 +32,7 @@ function c76382116.fselect(g,e,tp)
table.insert(code,tc:GetCode()) table.insert(code,tc:GetCode())
end end
local sg=Duel.GetMatchingGroup(c76382116.spfilter,tp,LOCATION_HAND,0,nil,e,tp,table.unpack(code)) local sg=Duel.GetMatchingGroup(c76382116.spfilter,tp,LOCATION_HAND,0,nil,e,tp,table.unpack(code))
if sg:CheckSubGroup(aux.dncheck,g:GetCount(),g:GetCount()) and Duel.GetMZoneCount(tp,g)>=g:GetCount() then if sg:GetClassCount(Card.GetCode)>=g:GetCount() and Duel.GetMZoneCount(tp,g)>=g:GetCount() then
Duel.SetSelectedCard(g) Duel.SetSelectedCard(g)
return Duel.CheckReleaseGroup(tp,nil,0,nil) return Duel.CheckReleaseGroup(tp,nil,0,nil)
else return false end else return false end
......
...@@ -63,22 +63,10 @@ function c77075360.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,22 +63,10 @@ function c77075360.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c77075360.filter,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c77075360.filter,tp,LOCATION_DECK,0,nil,e,tp)
if ft<=0 or g:GetCount()==0 then return end if ft<=0 or g:GetCount()==0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local sg=Group.CreateGroup() local ct=math.min(g:GetClassCount(Card.GetLevel),ft)
while ft>0 and g:GetCount()>0 do Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local sg=g:SelectSubGroup(tp,aux.dlvcheck,false,ct,ct)
local sg1=g:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
if sg1:GetCount()>0 then
local tc=sg1:GetFirst()
sg:AddCard(tc)
g:Remove(Card.IsLevel,nil,tc:GetLevel())
ft=ft-1
else
break
end
end
if #sg>0 then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
end
end end
function c77075360.regop(e,tp,eg,ep,ev,re,r,rp) function c77075360.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -50,16 +50,7 @@ function c78785392.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -50,16 +50,7 @@ function c78785392.activate(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsPlayerAffectedByEffect(tp,59822133) if not Duel.IsPlayerAffectedByEffect(tp,59822133)
and ct>3 and g:GetClassCount(Card.GetCode)>3 then and ct>3 and g:GetClassCount(Card.GetCode)>3 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,4,4)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
ct=ct-1
while ct>0 and g:GetCount()>0 do
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=g:Select(tp,1,1,nil)
g:Remove(Card.IsCode,nil,g2:GetFirst():GetCode())
g1:Merge(g2)
ct=ct-1
end
local tc=g1:GetFirst() local tc=g1:GetFirst()
while tc do while tc do
if Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_ATTACK) then if Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_ATTACK) then
......
...@@ -32,14 +32,8 @@ function c78859567.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -32,14 +32,8 @@ function c78859567.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ct=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ct=1 end
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c78859567.filter),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c78859567.filter),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,nil,e,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
local sg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
repeat local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ct)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg2=g:Select(tp,1,1,nil)
sg:AddCard(sg2:GetFirst())
g:Remove(Card.IsCode,nil,sg2:GetFirst():GetCode())
ct=ct-1
until ct==0 or g:GetCount()==0 or not Duel.SelectYesNo(tp,aux.Stringid(78859567,0))
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP,zone) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP,zone)
end end
end end
...@@ -38,15 +38,8 @@ function c79407975.spcon(e,c) ...@@ -38,15 +38,8 @@ function c79407975.spcon(e,c)
end end
function c79407975.spop(e,tp,eg,ep,ev,re,r,rp,c) function c79407975.spop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.GetMatchingGroup(c79407975.spfilter,tp,LOCATION_GRAVE,0,nil) local g=Duel.GetMatchingGroup(c79407975.spfilter,tp,LOCATION_GRAVE,0,nil)
local rg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
for i=1,7 do local rg=g:SelectSubGroup(tp,aux.dncheck,false,7,7)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc=g:Select(tp,1,1,nil):GetFirst()
if tc then
rg:AddCard(tc)
g:Remove(Card.IsCode,nil,tc:GetCode())
end
end
Duel.Remove(rg,POS_FACEUP,REASON_COST) Duel.Remove(rg,POS_FACEUP,REASON_COST)
end end
function c79407975.cfilter(c) function c79407975.cfilter(c)
......
...@@ -19,18 +19,12 @@ end ...@@ -19,18 +19,12 @@ end
function c81587028.filter1(c,e,tp) function c81587028.filter1(c,e,tp)
return c:IsType(TYPE_NORMAL) and (c:IsAttack(0) or c:IsDefense(0)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) return c:IsType(TYPE_NORMAL) and (c:IsAttack(0) or c:IsDefense(0)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
end end
function c81587028.filter2(c,g)
return g:IsExists(c81587028.filter3,1,c,c:GetCode())
end
function c81587028.filter3(c,code)
return c:GetCode()~=code
end
function c81587028.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c81587028.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end
local g=Duel.GetMatchingGroup(c81587028.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c81587028.filter1,tp,LOCATION_DECK,0,nil,e,tp)
return g:IsExists(c81587028.filter2,1,nil,g) return g:GetClassCount(Card.GetCode)>=2
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end end
...@@ -38,14 +32,11 @@ function c81587028.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -38,14 +32,11 @@ function c81587028.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetMatchingGroup(c81587028.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c81587028.filter1,tp,LOCATION_DECK,0,nil,e,tp)
local dg=g:Filter(c81587028.filter2,nil,g) if g:GetClassCount(Card.GetCode)>=2 then
if dg:GetCount()>=1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=dg:Select(tp,1,1,nil) local sg=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
local tc1=sg:GetFirst() local tc1=sg:GetFirst()
dg:Remove(Card.IsCode,nil,tc1:GetCode()) local tc2=sg:GetNext()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc2=dg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEUP_DEFENSE) Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEUP_DEFENSE) Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
tc1:RegisterFlagEffect(81587028,RESET_EVENT+RESETS_STANDARD,0,1) tc1:RegisterFlagEffect(81587028,RESET_EVENT+RESETS_STANDARD,0,1)
...@@ -59,7 +50,6 @@ function c81587028.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -59,7 +50,6 @@ function c81587028.spop(e,tp,eg,ep,ev,re,r,rp)
local e2=e1:Clone() local e2=e1:Clone()
tc2:RegisterEffect(e2) tc2:RegisterEffect(e2)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
sg:AddCard(tc2)
sg:KeepAlive() sg:KeepAlive()
local de=Effect.CreateEffect(e:GetHandler()) local de=Effect.CreateEffect(e:GetHandler())
de:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) de:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......
...@@ -31,22 +31,13 @@ function c82428674.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -31,22 +31,13 @@ function c82428674.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil) local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end end
function c82428674.rescon(sg,e,tp,mg)
return sg:GetClassCount(Card.GetLevel)==sg:GetCount()
end
function c82428674.activate(e,tp,eg,ep,ev,re,r,rp) function c82428674.activate(e,tp,eg,ep,ev,re,r,rp)
local dg=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil) local dg=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil)
local ct=dg:GetCount() local ct=dg:GetCount()
local g=Duel.GetMatchingGroup(c82428674.rmfilter,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_MZONE,0,nil) local g=Duel.GetMatchingGroup(c82428674.rmfilter,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_MZONE,0,nil)
if ct==0 or g:GetCount()==0 then return end if ct==0 or g:GetCount()==0 then return end
local rg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
repeat local rg=g:SelectSubGroup(tp,aux.dlvcheck,false,1,ct)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg=g:Select(tp,1,1,nil)
rg:Merge(sg)
g:Remove(Card.IsLevel,nil,sg:GetFirst():GetLevel())
ct=ct-1
until ct==0 or g:GetCount()==0 or not Duel.SelectYesNo(tp,aux.Stringid(82428674,0))
local rc=Duel.Remove(rg,POS_FACEUP,REASON_EFFECT) local rc=Duel.Remove(rg,POS_FACEUP,REASON_EFFECT)
if rc>0 then if rc>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
......
...@@ -46,18 +46,12 @@ end ...@@ -46,18 +46,12 @@ end
function c83293307.filter1(c,e,tp) function c83293307.filter1(c,e,tp)
return c:IsSetCard(0x104) and not c:IsCode(83293307) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x104) and not c:IsCode(83293307) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c83293307.filter2(c,g)
return g:IsExists(c83293307.filter3,1,c,c:GetCode())
end
function c83293307.filter3(c,code)
return not c:IsCode(code)
end
function c83293307.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c83293307.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end
local g=Duel.GetMatchingGroup(c83293307.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c83293307.filter1,tp,LOCATION_DECK,0,nil,e,tp)
return g:IsExists(c83293307.filter2,1,nil,g) return g:GetClassCount(Card.GetCode)>=2
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end end
...@@ -65,18 +59,10 @@ function c83293307.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -65,18 +59,10 @@ function c83293307.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetMatchingGroup(c83293307.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c83293307.filter1,tp,LOCATION_DECK,0,nil,e,tp)
local dg=g:Filter(c83293307.filter2,nil,g) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
if dg:GetCount()>=1 then local sg=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) if sg then
local sg=dg:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
local tc1=sg:GetFirst() Duel.ConfirmCards(1-tp,sg)
dg:Remove(Card.IsCode,nil,tc1:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc2=dg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonComplete()
local g=Group.FromCards(tc1,tc2)
Duel.ConfirmCards(1-tp,g)
end end
end end
...@@ -30,11 +30,7 @@ function c83554231.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -30,11 +30,7 @@ function c83554231.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c83554231.thfilter,tp,LOCATION_GRAVE,0,nil,e) local g=Duel.GetMatchingGroup(c83554231.thfilter,tp,LOCATION_GRAVE,0,nil,e)
if chk==0 then return g:GetClassCount(Card.GetCode)>=2 end if chk==0 then return g:GetClassCount(Card.GetCode)>=2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g1,2,0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,g1,2,0,0)
end end
......
...@@ -100,15 +100,7 @@ function c84025439.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -100,15 +100,7 @@ function c84025439.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c84025439.spfilter,tp,LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(c84025439.spfilter,tp,LOCATION_GRAVE,0,nil,e,tp)
if ft>2 and g:GetClassCount(Card.GetCode)>2 then if ft>2 and g:GetClassCount(Card.GetCode)>2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
g:Remove(Card.IsCode,nil,g2:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g3=g:Select(tp,1,1,nil)
g1:Merge(g3)
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
end end
end end
...@@ -73,15 +73,10 @@ function c85638822.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -73,15 +73,10 @@ function c85638822.spop(e,tp,eg,ep,ev,re,r,rp)
local tg=Duel.GetMatchingGroup(c85638822.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,nil,e,tp) local tg=Duel.GetMatchingGroup(c85638822.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,nil,e,tp)
if tg:GetCount()==0 or ft<=0 then return end if tg:GetCount()==0 or ft<=0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local g=Group.CreateGroup() local ct=math.min(tg:GetClassCount(Card.GetCode),ft)
while tg:GetCount()>0 and ft>0 do Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local g=tg:SelectSubGroup(tp,aux.dncheck,false,ct,ct)
local sg=tg:Select(tp,1,1,nil) if Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then
g:Merge(sg)
ft=ft-1
tg:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
end
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then
c:AddCounter(0x46,3) c:AddCounter(0x46,3)
end end
end end
...@@ -21,7 +21,7 @@ function c856784.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -21,7 +21,7 @@ function c856784.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if not Duel.IsPlayerCanDraw(tp,1) then return false end if not Duel.IsPlayerCanDraw(tp,1) then return false end
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(nil,tp,LOCATION_DECK,0,nil)
return g:CheckSubGroup(aux.dncheck,3,3) return g:GetClassCount(Card.GetCode)>=3
end end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end end
......
...@@ -44,18 +44,12 @@ end ...@@ -44,18 +44,12 @@ end
function c88316955.filter1(c,e,tp) function c88316955.filter1(c,e,tp)
return c:IsSetCard(0x104) and not c:IsCode(88316955) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x104) and not c:IsCode(88316955) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c88316955.filter2(c,g)
return g:IsExists(c88316955.filter3,1,c,c:GetCode())
end
function c88316955.filter3(c,code)
return not c:IsCode(code)
end
function c88316955.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c88316955.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return false end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return false end
local g=Duel.GetMatchingGroup(c88316955.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c88316955.filter1,tp,LOCATION_DECK,0,nil,e,tp)
return g:IsExists(c88316955.filter2,1,nil,g) return g:GetClassCount(Card.GetCode)>=2
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end end
...@@ -63,18 +57,10 @@ function c88316955.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,18 +57,10 @@ function c88316955.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetMatchingGroup(c88316955.filter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c88316955.filter1,tp,LOCATION_DECK,0,nil,e,tp)
local dg=g:Filter(c88316955.filter2,nil,g) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
if dg:GetCount()>=1 then local sg=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) if sg then
local sg=dg:Select(tp,1,1,nil) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
local tc1=sg:GetFirst() Duel.ConfirmCards(1-tp,sg)
dg:Remove(Card.IsCode,nil,tc1:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc2=dg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.SpecialSummonComplete()
local g=Group.FromCards(tc1,tc2)
Duel.ConfirmCards(1-tp,g)
end end
end end
...@@ -41,29 +41,22 @@ end ...@@ -41,29 +41,22 @@ end
function c89397517.activate(e,tp,eg,ep,ev,re,r,rp) function c89397517.activate(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end if ft<=0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local rmg=Duel.GetMatchingGroup(aux.NecroValleyFilter(c89397517.rmfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,nil) local rmg=Duel.GetMatchingGroup(aux.NecroValleyFilter(c89397517.rmfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,nil)
local rmct=rmg:GetClassCount(Card.GetCode) local rmct=rmg:GetClassCount(Card.GetCode)
local spg=Duel.GetMatchingGroup(aux.NecroValleyFilter(c89397517.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,nil,e,tp) local spg=Duel.GetMatchingGroup(aux.NecroValleyFilter(c89397517.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,nil,e,tp)
local spct=spg:GetClassCount(Card.GetCode) local spct=spg:GetClassCount(Card.GetCode)
local ct=math.min(3,ft,spct,rmct) local ct=math.min(3,ft,spct,rmct)
if ct==0 then return end if ct==0 then return end
local g=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
repeat local g=rmg:SelectSubGroup(tp,aux.dncheck,false,1,ct)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc=rmg:Select(tp,1,1,nil):GetFirst()
rmg:Remove(Card.IsCode,nil,tc:GetCode())
g:AddCard(tc)
ct=ct-1
until ct<1 or not Duel.SelectYesNo(tp,aux.Stringid(89397517,0))
Duel.Remove(g,POS_FACEUP,REASON_EFFECT) Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
ct=g:FilterCount(Card.IsLocation,nil,LOCATION_REMOVED) ct=g:FilterCount(Card.IsLocation,nil,LOCATION_REMOVED)
while ct>0 do Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local sg=spg:SelectSubGroup(tp,aux.dncheck,false,ct,ct)
local tc=spg:Select(tp,1,1,nil):GetFirst() for tc in aux.Next(sg) do
spg:Remove(Card.IsCode,nil,tc:GetCode())
Duel.SpecialSummonStep(tc,0,tp,tp,true,true,POS_FACEUP) Duel.SpecialSummonStep(tc,0,tp,tp,true,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
ct=ct-1
end end
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
end end
...@@ -28,7 +28,7 @@ function c938717.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -28,7 +28,7 @@ function c938717.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local g=Duel.GetMatchingGroup(c938717.eqfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(c938717.eqfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,nil,e,tp)
local ft=math.min((Duel.GetLocationCount(tp,LOCATION_SZONE)),2) local ft=math.min((Duel.GetLocationCount(tp,LOCATION_SZONE)),2)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and g:CheckSubGroup(aux.dncheck,1,ft) and g:GetCount()>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ft) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ft)
......
...@@ -75,11 +75,7 @@ function c96570609.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -75,11 +75,7 @@ function c96570609.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c96570609.tgfilter,tp,LOCATION_HAND+LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c96570609.tgfilter,tp,LOCATION_HAND+LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)<2 then return end if g:GetClassCount(Card.GetCode)<2 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tg1=g:Select(tp,1,1,nil) local tg1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,tg1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tg2=g:Select(tp,1,1,nil)
tg1:Merge(tg2)
if Duel.SendtoGrave(tg1,REASON_EFFECT)~=0 and tg1:IsExists(Card.IsLocation,2,nil,LOCATION_GRAVE) if Duel.SendtoGrave(tg1,REASON_EFFECT)~=0 and tg1:IsExists(Card.IsLocation,2,nil,LOCATION_GRAVE)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
......
...@@ -40,15 +40,7 @@ function c97433739.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -40,15 +40,7 @@ function c97433739.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>2 and Duel.GetLocationCount(tp,LOCATION_MZONE)>2
and g:GetClassCount(Card.GetLevel)>=3 end and g:GetClassCount(Card.GetLevel)>=3 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dlvcheck,false,3,3)
g:Remove(Card.IsLevel,nil,g1:GetFirst():GetLevel())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=g:Select(tp,1,1,nil)
g:Remove(Card.IsLevel,nil,g2:GetFirst():GetLevel())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g3=g:Select(tp,1,1,nil)
g1:Merge(g2)
g1:Merge(g3)
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g1,3,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g1,3,0,0)
end end
......
...@@ -27,11 +27,7 @@ function c97648103.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -27,11 +27,7 @@ function c97648103.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c97648103.thfilter,tp,LOCATION_GRAVE,0,nil,e) local g=Duel.GetMatchingGroup(c97648103.thfilter,tp,LOCATION_GRAVE,0,nil,e)
if chk==0 then return g:GetClassCount(Card.GetCode)>=2 end if chk==0 then return g:GetClassCount(Card.GetCode)>=2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
g:Remove(Card.IsCode,nil,g1:GetFirst():GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=g:Select(tp,1,1,nil)
g1:Merge(g2)
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g1,2,0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,g1,2,0,0)
end end
......
...@@ -37,15 +37,7 @@ function c98672567.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -37,15 +37,7 @@ function c98672567.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end end
local g=Duel.GetMatchingGroup(c98672567.filter,tp,LOCATION_GRAVE,0,nil,e) local g=Duel.GetMatchingGroup(c98672567.filter,tp,LOCATION_GRAVE,0,nil,e)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g1=g:Select(tp,1,1,nil) local g1=g:SelectSubGroup(tp,aux.drccheck,false,3,3)
g:Remove(Card.IsRace,nil,g1:GetFirst():GetRace())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g2=g:Select(tp,1,1,nil)
g:Remove(Card.IsRace,nil,g2:GetFirst():GetRace())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g3=g:Select(tp,1,1,nil)
g1:Merge(g2)
g1:Merge(g3)
Duel.SetTargetCard(g1) Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g1,3,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,g1,3,0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
......
...@@ -69,13 +69,8 @@ function c99157310.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -69,13 +69,8 @@ function c99157310.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133) if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>2 and Duel.GetLocationCount(tp,LOCATION_MZONE)>2
and g:GetClassCount(Card.GetCode)>2 end and g:GetClassCount(Card.GetCode)>2 end
local tg=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
for i=1,3 do local tg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
tg:Merge(sg)
g:Remove(Card.IsCode,nil,sg:GetFirst():GetCode())
end
Duel.SetTargetCard(tg) Duel.SetTargetCard(tg)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,tg,tg:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,tg,tg:GetCount(),0,0)
end end
......
...@@ -2238,6 +2238,26 @@ end ...@@ -2238,6 +2238,26 @@ end
function Auxiliary.dncheck(g) function Auxiliary.dncheck(g)
return g:GetClassCount(Card.GetCode)==#g return g:GetClassCount(Card.GetCode)==#g
end end
--check for cards with different levels
function Auxiliary.dlvcheck(g)
return g:GetClassCount(Card.GetLevel)==#g
end
--check for cards with different ranks
function Auxiliary.drkcheck(g)
return g:GetClassCount(Card.GetRank)==#g
end
--check for cards with different links
function Auxiliary.dlkcheck(g)
return g:GetClassCount(Card.GetLink)==#g
end
--check for cards with different attributes
function Auxiliary.dabcheck(g)
return g:GetClassCount(Card.GetAttribute)==#g
end
--check for cards with different races
function Auxiliary.drccheck(g)
return g:GetClassCount(Card.GetRace)==#g
end
--used for "except this card" --used for "except this card"
function Auxiliary.ExceptThisCard(e) function Auxiliary.ExceptThisCard(e)
local c=e:GetHandler() local c=e:GetHandler()
......
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