Commit 4cb82022 authored by DailyShana's avatar DailyShana

update & fix

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