Commit 4cb82022 authored by DailyShana's avatar DailyShana

update & fix

parent 79d7026c
......@@ -41,35 +41,34 @@ end
function c4709881.atkval(e,c)
return Duel.GetMatchingGroup(c4709881.atkfilter,c:GetControler(),LOCATION_GRAVE,0,nil):GetClassCount(Card.GetCode)*300
end
function c4709881.cfilter(c,g)
function c4709881.cfilter(c,g,tp,zone)
return c:IsSetCard(0xfd) and g:IsContains(c)
and (g:GetCount()<2 or Duel.CheckLocation(c:GetControler(),LOCATION_MZONE,c:GetSequence(),true))
and Duel.GetMZoneCount(tp,c,tp,LOCATION_REASON_TOFIELD,zone)>0
end
function c4709881.spcost1(e,tp,eg,ep,ev,re,r,rp,chk)
local lg=e:GetHandler():GetLinkedGroup()
if chk==0 then return Duel.CheckReleaseGroup(tp,c4709881.cfilter,1,nil,lg) end
local g=Duel.SelectReleaseGroup(tp,c4709881.cfilter,1,1,nil,lg)
local zone=e:GetHandler():GetLinkedZone(tp)
if chk==0 then return Duel.CheckReleaseGroup(tp,c4709881.cfilter,1,nil,lg,tp,zone) end
local g=Duel.SelectReleaseGroup(tp,c4709881.cfilter,1,1,nil,lg,tp,zone)
Duel.Release(g,REASON_COST)
e:SetLabelObject(g:GetFirst())
end
function c4709881.spfilter1(c,e,tp,zone)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone,true)
function c4709881.spfilter1(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c4709881.sptg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local zone=e:GetHandler():GetLinkedZone(tp)
local cc=e:GetLabelObject()
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp)
and chkc~=cc and c4709881.spfilter1(chkc,e,tp,zone) end
if chk==0 then return zone~=0
and Duel.IsExistingTarget(c4709881.spfilter1,tp,LOCATION_GRAVE,0,1,cc,e,tp,zone) end
and chkc~=cc and c4709881.spfilter1(chkc,e,tp) end
if chk==0 then return Duel.IsExistingTarget(c4709881.spfilter1,tp,LOCATION_GRAVE,0,1,cc,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c4709881.spfilter1,tp,LOCATION_GRAVE,0,1,1,cc,e,tp,zone)
local g=Duel.SelectTarget(tp,c4709881.spfilter1,tp,LOCATION_GRAVE,0,1,1,cc,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function c4709881.spop1(e,tp,eg,ep,ev,re,r,rp)
local zone=e:GetHandler():GetLinkedZone(tp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and zone~=0 then
if tc:IsRelateToEffect(e) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP,zone)
end
end
......
......@@ -33,7 +33,7 @@ function c85138716.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local g=Duel.GetMatchingGroup(c85138716.filter,tp,LOCATION_DECK,0,nil,e,tp)
return not Duel.IsPlayerAffectedByEffect(tp,59822133)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and g:IsExists(c85138716.filter2,1,nil,g)
and Duel.GetMZoneCount(tp,e:GetHandler())>1 and g:IsExists(c85138716.filter2,1,nil,g)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end
......
......@@ -53,7 +53,7 @@ function c88406570.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(1-tp,59822133) then ft=1 end
if ft>1 then ft=2 end
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON)
local g1=Duel.SelectMatchingCard(1-tp,aux.NecroValleyFilter(c88406570.spfilter1),1-tp,LOCATION_GRAVE,0,1,ft,nil,e,1-tp)
local g1=Duel.SelectMatchingCard(1-tp,c88406570.spfilter1,1-tp,LOCATION_GRAVE,0,1,ft,nil,e,1-tp)
if g1:GetCount()>0 then
local ct=Duel.SpecialSummon(g1,0,1-tp,1-tp,false,false,POS_FACEUP)
local zone=c:GetLinkedZone(tp)
......@@ -61,7 +61,7 @@ function c88406570.spop(e,tp,eg,ep,ev,re,r,rp)
if zone~=0 and ct>0 and c:IsRelateToEffect(e) then
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ct=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c88406570.spfilter2),tp,LOCATION_GRAVE,0,1,ct,nil,e,tp,zone)
local g2=Duel.SelectMatchingCard(tp,c88406570.spfilter2,tp,LOCATION_GRAVE,0,1,ct,nil,e,tp,zone)
if g2:GetCount()>0 then
Duel.BreakEffect()
Duel.SpecialSummon(g2,0,tp,tp,false,false,POS_FACEUP,zone)
......
......@@ -32,42 +32,28 @@ end
function c93503294.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2
end
function c93503294.spcfilter(c,g,zone)
return c:IsSetCard(0x103) and (zone~=0 or g:IsContains(c))
function c93503294.spcfilter(c,tp,zone)
return c:IsSetCard(0x103) and Duel.GetMZoneCount(tp,c,tp,LOCATION_REASON_TOFIELD,zone)>0
end
function c93503294.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local lg=c:GetLinkedGroup()
local zone=c:GetLinkedZone(tp)
if chk==0 then return Duel.CheckReleaseGroup(tp,c93503294.spcfilter,1,c,lg,zone) end
local tc=Duel.SelectReleaseGroup(tp,c93503294.spcfilter,1,1,c,lg,zone):GetFirst()
if lg:IsContains(tc) then
e:SetLabel(tc:GetSequence())
end
Duel.Release(tc,REASON_COST)
if chk==0 then return Duel.CheckReleaseGroup(tp,c93503294.spcfilter,1,c,tp,zone) end
local g=Duel.SelectReleaseGroup(tp,c93503294.spcfilter,1,1,c,tp,zone)
Duel.Release(g,REASON_COST)
end
function c93503294.spfilter0(c,e,tp)
function c93503294.spfilter(c,e,tp)
return c:IsSetCard(0x103) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c93503294.spfilter1(c,e,tp,zone)
return c:IsSetCard(0x103) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone)
end
function c93503294.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local zone=e:GetHandler():GetLinkedZone(tp)
if zone~=0 then
return Duel.IsExistingMatchingCard(c93503294.spfilter1,tp,LOCATION_DECK,0,1,nil,e,tp,zone)
else
return Duel.IsExistingMatchingCard(c93503294.spfilter0,tp,LOCATION_DECK,0,1,nil,e,tp)
end
end
if chk==0 then return Duel.IsExistingMatchingCard(c93503294.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function c93503294.spop(e,tp,eg,ep,ev,re,r,rp)
local zone=e:GetHandler():GetLinkedZone(tp)
if zone==0 then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c93503294.spfilter1,tp,LOCATION_DECK,0,1,1,nil,e,tp,zone)
local g=Duel.SelectMatchingCard(tp,c93503294.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP,zone)
end
......
......@@ -23,9 +23,8 @@ function c98045062.filter2(c)
return c:IsFaceup() and c:IsControlerCanBeChanged(true)
end
function c98045062.cfilter(c,tp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)
if c:IsControler(tp) and c:GetSequence()<5 then ft=ft+1 end
return ft>0 and Duel.IsExistingTarget(c98045062.filter2,tp,0,LOCATION_MZONE,1,c)
return Duel.GetMZoneCount(tp,c,tp,LOCATION_REASON_CONTROL)>0
and Duel.IsExistingTarget(c98045062.filter2,tp,0,LOCATION_MZONE,1,c)
end
function c98045062.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then
......
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