Commit bda2366d authored by Chen Bill's avatar Chen Bill

add Auxiliary.TriamidSpSummonType

parent 60a23de3
...@@ -62,7 +62,7 @@ function c64576557.spcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -62,7 +62,7 @@ function c64576557.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c64576557.desfilter,1,nil,tp) return eg:IsExists(c64576557.desfilter,1,nil,tp)
end end
function c64576557.spfilter(c,e,tp,eg) function c64576557.spfilter(c,e,tp,eg)
return c:IsSetCard(0xe2) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not eg:IsExists(Card.IsCode,1,nil,c:GetCode()) return c:IsSetCard(0xe2) and c:IsCanBeSpecialSummoned(e,0,tp,false,aux.TriamidSpSummonType(c)) and not eg:IsExists(Card.IsCode,1,nil,c:GetCode())
end end
function c64576557.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c64576557.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
...@@ -78,6 +78,9 @@ function c64576557.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -78,6 +78,9 @@ function c64576557.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=Duel.SelectMatchingCard(tp,c64576557.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,g) local tg=Duel.SelectMatchingCard(tp,c64576557.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,g)
if tg:GetCount()>0 then if tg:GetCount()>0 then
Duel.SpecialSummon(tg,0,tp,tp,false,false,POS_FACEUP) local sc=tg:GetFirst()
if Duel.SpecialSummon(tg,0,tp,tp,false,aux.TriamidSpSummonType(sc),POS_FACEUP) and aux.TriamidSpSummonType(sc) then
sc:CompleteProcedure()
end
end end
end end
...@@ -48,7 +48,7 @@ function c72772445.spcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -48,7 +48,7 @@ function c72772445.spcon(e,tp,eg,ep,ev,re,r,rp)
return c:IsPreviousLocation(LOCATION_FZONE) and c:IsPreviousPosition(POS_FACEUP) return c:IsPreviousLocation(LOCATION_FZONE) and c:IsPreviousPosition(POS_FACEUP)
end end
function c72772445.spfilter(c,e,tp) function c72772445.spfilter(c,e,tp)
return c:IsSetCard(0xe2) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0xe2) and c:IsCanBeSpecialSummoned(e,0,tp,false,aux.TriamidSpSummonType(c))
end end
function c72772445.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c72772445.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
...@@ -60,6 +60,9 @@ function c72772445.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,6 +60,9 @@ function c72772445.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c72772445.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c72772445.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) local sc=g:GetFirst()
if Duel.SpecialSummon(g,0,tp,tp,false,aux.TriamidSpSummonType(sc),POS_FACEUP) and aux.TriamidSpSummonType(sc) then
sc:CompleteProcedure()
end
end end
end end
...@@ -82,7 +82,7 @@ function c96100333.spcfilter2(c,sg) ...@@ -82,7 +82,7 @@ function c96100333.spcfilter2(c,sg)
return sg:IsExists(aux.TRUE,1,c) return sg:IsExists(aux.TRUE,1,c)
end end
function c96100333.spfilter(c,e,tp) function c96100333.spfilter(c,e,tp)
return c:IsRace(RACE_ROCK) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) return c:IsRace(RACE_ROCK) and c:IsCanBeSpecialSummoned(e,0,tp,false,aux.TriamidSpSummonType(c),POS_FACEUP_DEFENSE)
end end
function c96100333.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c96100333.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c96100333.spfilter(chkc,e,tp) end if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c96100333.spfilter(chkc,e,tp) end
...@@ -106,7 +106,9 @@ end ...@@ -106,7 +106,9 @@ end
function c96100333.spop(e,tp,eg,ep,ev,re,r,rp) function c96100333.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then if tc:IsRelateToEffect(e) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE) if Duel.SpecialSummon(tc,0,tp,tp,false,aux.TriamidSpSummonType(tc),POS_FACEUP_DEFENSE)~=0 and aux.TriamidSpSummonType(tc) then
tc:CompleteProcedure()
end
end end
end end
function c96100333.tdcfilter1(c,cg,sg) function c96100333.tdcfilter1(c,cg,sg)
......
...@@ -926,13 +926,19 @@ end ...@@ -926,13 +926,19 @@ end
function Auxiliary.DrytronSpSummonType(c) function Auxiliary.DrytronSpSummonType(c)
return c:IsType(TYPE_SPSUMMON) return c:IsType(TYPE_SPSUMMON)
end end
---The `nolimit` parameter for Special Summon effects of Dragon, Xyz monsters where Soul Drain Dragon is available. ---The `nolimit` parameter for Special Summon effects of Dragon, Xyz monsters where Soul Drain Dragon is available
---(Soul Drain Dragon, Level 8/LIGHT/Dragon/4000/0) ---(Soul Drain Dragon, Level 8/LIGHT/Dragon/4000/0)
---@param c Card ---@param c Card
---@return boolean ---@return boolean
function Auxiliary.DragonXyzSpSummonType(c) function Auxiliary.DragonXyzSpSummonType(c)
return c:GetOriginalCode()==55735315 return c:GetOriginalCode()==55735315
end end
---The `nolimit` parameter for Special Summon effects of Triamid cards
---@param c Card
---@return boolean
function Auxiliary.TriamidSpSummonType(c)
return c:IsType(TYPE_SPSUMMON)
end
--additional destroy effect for the Labrynth field --additional destroy effect for the Labrynth field
function Auxiliary.LabrynthDestroyOp(e,tp,res) function Auxiliary.LabrynthDestroyOp(e,tp,res)
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