Commit 4304547c authored by salix5's avatar salix5

RUM & CNo.88

parent 8fc6ab32
......@@ -27,12 +27,12 @@ function c45950291.cfilter(c,rk)
end
function c45950291.filter1(c,e,tp)
local rk=c:GetRank()
return rk>0 and c:IsFaceup()
return c:IsFaceup() and c:IsType(TYPE_XYZ)
and not Duel.IsExistingMatchingCard(c45950291.cfilter,tp,LOCATION_MZONE,0,1,nil,rk)
and Duel.IsExistingMatchingCard(c45950291.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c,rk+2,c:GetRace(),c:GetAttribute(),c:GetCode())
end
function c45950291.filter2(c,e,tp,mc,rk,rc,att,code)
if c:IsCode(6165656) and code~=48995978 then return false end
if c:GetOriginalCode()==6165656 and code~=48995978 then return false end
return c:GetRank()==rk and c:IsRace(rc) and c:IsAttribute(att) and mc:IsCanBeXyzMaterial(c,true)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false)
end
......
......@@ -12,11 +12,11 @@ function c47660516.initial_effect(c)
end
function c47660516.filter1(c,e,tp)
local rk=c:GetRank()
return rk>0 and c:IsFaceup()
return c:IsFaceup() and c:IsType(TYPE_XYZ)
and Duel.IsExistingMatchingCard(c47660516.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c,rk+1,c:GetRace(),c:GetCode())
end
function c47660516.filter2(c,e,tp,mc,rk,rc,code)
if c:IsCode(6165656) and code~=48995978 then return false end
if c:GetOriginalCode()==6165656 and code~=48995978 then return false end
return c:GetRank()==rk and c:IsRace(rc) and (c:IsSetCard(0x1048) or c:IsSetCard(0x1073)) and mc:IsCanBeXyzMaterial(c,true)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false)
end
......
......@@ -12,11 +12,11 @@ function c48333324.initial_effect(c)
end
function c48333324.filter1(c,e,tp)
local rk=c:GetRank()
return rk>0 and c:IsFaceup()
return c:IsFaceup() and c:IsType(TYPE_XYZ)
and Duel.IsExistingMatchingCard(c48333324.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c,rk+1,c:GetRace(),c:GetCode())
end
function c48333324.filter2(c,e,tp,mc,rk,rc,code)
if c:IsCode(6165656) and code~=48995978 then return false end
if c:GetOriginalCode()==6165656 and code~=48995978 then return false end
return c:GetRank()==rk and c:IsRace(rc) and c:IsSetCard(0x1048) and mc:IsCanBeXyzMaterial(c,true)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false)
end
......
......@@ -11,11 +11,13 @@ function c92365601.initial_effect(c)
c:RegisterEffect(e1)
end
function c92365601.filter1(c,e,tp)
return c:IsFaceup() and c:GetRank()==4
and Duel.IsExistingMatchingCard(c92365601.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c)
local rk=c:GetRank()
return c:IsFaceup() and c:IsType(TYPE_XYZ) and rk==4
and Duel.IsExistingMatchingCard(c92365601.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c,rk+1)
end
function c92365601.filter2(c,e,tp,mc)
return c:GetRank()==5 and c:IsSetCard(0x1048) and mc:IsCanBeXyzMaterial(c,true)
function c92365601.filter2(c,e,tp,mc,rk)
if c:GetOriginalCode()==6165656 and not mc:IsCode(48995978) then return false end
return c:GetRank()==rk and c:IsSetCard(0x1048) and mc:IsCanBeXyzMaterial(c,true)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false)
end
function c92365601.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......@@ -31,7 +33,7 @@ function c92365601.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c92365601.filter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc)
local g=Duel.SelectMatchingCard(tp,c92365601.filter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc,tc:GetRank()+1)
local sc=g:GetFirst()
if sc then
local mg=tc:GetOverlayGroup()
......
......@@ -24,11 +24,11 @@ function c94220427.initial_effect(c)
end
function c94220427.filter1(c,e,tp)
local rk=c:GetRank()
return rk>4 and c:IsFaceup()
return rk>4 and c:IsFaceup() and c:IsType(TYPE_XYZ)
and Duel.IsExistingMatchingCard(c94220427.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c,rk+1,c:GetCode())
end
function c94220427.filter2(c,e,tp,mc,rk,code)
if c:IsCode(6165656) and code~=48995978 then return false end
if c:GetOriginalCode()==6165656 and code~=48995978 then return false end
return c:GetRank()==rk and (c:IsSetCard(0x1048) or c:IsSetCard(0x1073)) and mc:IsCanBeXyzMaterial(c,true)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false)
end
......
......@@ -28,15 +28,31 @@ end
function c96142517.filter1(c,e,tp)
local rk=c:GetRank()
return c:IsType(TYPE_XYZ)
and Duel.IsExistingMatchingCard(c96142517.filter2,tp,0,LOCATION_GRAVE,1,nil,e,tp,rk)
and Duel.IsExistingMatchingCard(c96142517.filter2,tp,0,LOCATION_GRAVE,1,nil,e,rk)
and Duel.IsExistingMatchingCard(c96142517.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp,rk+1)
end
function c96142517.filter2(c,e,tp,rk)
function c96142517.filter2(c,e,rk)
return c:IsType(TYPE_XYZ) and c:GetRank()==rk and c:IsCanBeEffectTarget(e)
end
function c96142517.filter3(c)
return c:IsType(TYPE_XYZ) and c:GetRank()==8 and c:IsCode(48995978)
end
function c96142517.spfilter(c,e,tp,rk)
return c:GetRank()==rk and (c:IsSetCard(0x1048) or c:IsSetCard(0x1073))
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
if c:GetOriginalCode()==6165656 then
local g1=Duel.GetMatchingGroup(c96142517.filter2,tp,LOCATION_GRAVE,0,nil,e,8)
local g2=Duel.GetMatchingGroup(c96142517.filter2,tp,0,LOCATION_GRAVE,nil,e,8)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and g1:GetCount()>0 and g2:GetCount()>0
and (g1:IsExists(Card.IsCode,1,nil,48995978) or g2:IsExists(Card.IsCode,1,nil,48995978))
else
return c:GetRank()==rk and (c:IsSetCard(0x1048) or c:IsSetCard(0x1073)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
end
function c96142517.spfilter2(c,e,tp,rk,g)
if c:GetOriginalCode()==6165656 then
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and g:IsExists(Card.IsCode,1,nil,48995978)
else
return c:GetRank()==rk and (c:IsSetCard(0x1048) or c:IsSetCard(0x1073)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
end
function c96142517.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
......@@ -47,9 +63,9 @@ function c96142517.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local rk=g1:GetFirst():GetRank()
e:SetLabel(rk)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g2=Duel.SelectTarget(tp,c96142517.filter2,tp,0,LOCATION_GRAVE,1,1,nil,e,tp,rk)
local g2=Duel.SelectTarget(tp,c96142517.filter2,tp,0,LOCATION_GRAVE,1,1,nil,e,rk)
g1:Merge(g2)
local g=Duel.GetMatchingGroup(c96142517.filter2,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil,e,tp,rk)
local g=Duel.GetMatchingGroup(c96142517.filter2,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil,e,rk)
g:Sub(g1)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(96142517,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
......@@ -57,17 +73,25 @@ function c96142517.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.SetTargetCard(sg)
g1:Merge(sg)
end
local xg=Duel.GetMatchingGroup(c96142517.spfilter,tp,LOCATION_EXTRA,0,nil,e,tp,9)
if rk==8 and xg:GetClassCount(Card.GetOriginalCode)==1 and xg:GetFirst():GetOriginalCode()==6165656
and not g1:IsExists(Card.IsCode,1,nil,48995978) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local ng=Duel.SelectTarget(tp,c96142517.filter3,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil)
g1:Merge(ng)
end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g1,g1:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c96142517.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local rk=e:GetLabel()
local mg0=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local mg=mg0:Filter(Card.IsRelateToEffect,nil,e)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 or mg:GetCount()==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c96142517.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,rk+1)
local g=Duel.SelectMatchingCard(tp,c96142517.spfilter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,rk+1,mg0)
local sc=g:GetFirst()
if sc then
local mg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
Duel.Overlay(sc,mg)
Duel.SpecialSummon(sc,0,tp,tp,false,false,POS_FACEUP)
end
......
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