Commit 7b5edcce authored by Huangnan's avatar Huangnan

fix

parent 2edcb4d2
Pipeline #38416 passed with stages
in 58 minutes and 12 seconds
...@@ -109,12 +109,12 @@ function s.disable(e,c) ...@@ -109,12 +109,12 @@ function s.disable(e,c)
return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_MZONE,0,1,nil,c) return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_MZONE,0,1,nil,c)
end end
-- --
function s.adfilter(c,tp) function s.adfilter(c,e,tp)
return c:IsControler(1-tp) return c:IsControler(1-tp) and not c:IsImmuneToEffect(e)
end end
function s.adjustop(e,tp,eg,ep,ev,re,r,rp) function s.adjustop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local cg=c:GetColumnGroup():Filter(s.adfilter,nil,tp) local cg=c:GetColumnGroup():Filter(s.adfilter,nil,e,tp)
if cg:GetCount()>0 then if cg:GetCount()>0 then
local tc=cg:GetFirst() local tc=cg:GetFirst()
while tc do while tc do
...@@ -195,7 +195,7 @@ function s.spop5(e,tp,eg,ep,ev,re,r,rp) ...@@ -195,7 +195,7 @@ function s.spop5(e,tp,eg,ep,ev,re,r,rp)
if b2 then if b2 then
local ss=0 local ss=0
if c:IsLocation(LOCATION_EXTRA) then ss=1 end if c:IsLocation(LOCATION_EXTRA) then ss=1 end
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 and ss==1 then if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 and ss==1 then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_LEAVE_FIELD_REDIRECT) e1:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
......
...@@ -44,15 +44,15 @@ end ...@@ -44,15 +44,15 @@ end
function s.xyzcheck(g) function s.xyzcheck(g)
return g:GetClassCount(Card.GetRank)==1 return g:GetClassCount(Card.GetRank)==1
end end
function s.ovfilter(c) function s.ovfilter(c,e)
return c:IsSetCard(0x6ce1) and c:IsType(TYPE_MONSTER) and not c:IsImmuneToEffect(e) return c:IsSetCard(0x6ce1) and c:IsType(TYPE_MONSTER) and not c:IsImmuneToEffect(e)
end end
function s.ovtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function s.ovtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(s.ovfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(s.ovfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil,e) end
end end
function s.ovop(e,tp,eg,ep,ev,re,r,rp) function s.ovop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.ovfilter),tp,LOCATION_GRAVE+LOCATION_REMOVED,0,nil) local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.ovfilter),tp,LOCATION_GRAVE+LOCATION_REMOVED,0,nil,e)
if #g>0 and c:IsRelateToEffect(e) and c:IsType(TYPE_XYZ) and c:IsFaceup() then if #g>0 and c:IsRelateToEffect(e) and c:IsType(TYPE_XYZ) and c:IsFaceup() then
Duel.Overlay(c,g) Duel.Overlay(c,g)
end end
......
...@@ -51,18 +51,16 @@ function s.con2(e,tp,eg,ep,ev,re,r,rp) ...@@ -51,18 +51,16 @@ function s.con2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,18018006) return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,18018006)
end end
function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsAbleToRemove() end if chkc then return chkc:GetControler()~=tp and chkc:GetLocation()==LOCATION_GRAVE and chkc:IsAbleToRemove() end
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToRemove,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil) end if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToRemove,tp,0,LOCATION_GRAVE,1,nil) end
local ct=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tg=Duel.SelectTarget(tp,Card.IsAbleToRemove,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil) local g=Duel.SelectTarget(tp,Card.IsAbleToRemove,tp,0,LOCATION_GRAVE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,tg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0)
end end
function s.rmop(e,tp,eg,ep,ev,re,r,rp) function s.rmop(e,tp,eg,ep,ev,re,r,rp)
local tg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS) local tc=Duel.GetFirstTarget()
local rg=tg:Filter(Card.IsRelateToEffect,nil,e) if tc:IsRelateToEffect(e) then
if rg:GetCount()>0 then Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)
Duel.Remove(rg,POS_FACEUP,REASON_EFFECT)
end end
end end
function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -11,7 +11,7 @@ function s.initial_effect(c) ...@@ -11,7 +11,7 @@ function s.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,id) e1:SetCountLimit(1,id)
e1:SetCondition(s.con1) --e1:SetCondition(s.con1)
e1:SetTarget(s.thtg) e1:SetTarget(s.thtg)
e1:SetOperation(s.thop) e1:SetOperation(s.thop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
...@@ -45,11 +45,11 @@ function s.xyzop(e,tp,chk) ...@@ -45,11 +45,11 @@ function s.xyzop(e,tp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,id)==0 end if chk==0 then return Duel.GetFlagEffect(tp,id)==0 end
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1) Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end end
function s.con1(e,tp,eg,ep,ev,re,r,rp) --function s.con1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7) --return not e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7)
end --end
function s.con2(e,tp,eg,ep,ev,re,r,rp) function s.con2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7) return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,18018006)
end end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() end if chkc then return chkc:IsOnField() end
......
...@@ -11,7 +11,7 @@ function s.initial_effect(c) ...@@ -11,7 +11,7 @@ function s.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,id) e1:SetCountLimit(1,id)
e1:SetCondition(s.con1) --e1:SetCondition(s.con1)
e1:SetTarget(s.thtg) e1:SetTarget(s.thtg)
e1:SetOperation(s.thop) e1:SetOperation(s.thop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
...@@ -45,11 +45,11 @@ function s.xyzop(e,tp,chk) ...@@ -45,11 +45,11 @@ function s.xyzop(e,tp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,id)==0 end if chk==0 then return Duel.GetFlagEffect(tp,id)==0 end
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1) Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end end
function s.con1(e,tp,eg,ep,ev,re,r,rp) --function s.con1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7) --return not e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7)
end --end
function s.con2(e,tp,eg,ep,ev,re,r,rp) function s.con2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7) return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,18018006)
end end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and aux.NegateAnyFilter(chkc) end if chkc then return chkc:IsOnField() and aux.NegateAnyFilter(chkc) end
......
...@@ -10,7 +10,7 @@ function s.initial_effect(c) ...@@ -10,7 +10,7 @@ function s.initial_effect(c)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,id) e1:SetCountLimit(1,id)
e1:SetCondition(s.con1) --e1:SetCondition(s.con1)
e1:SetCost(s.rmcost) e1:SetCost(s.rmcost)
e1:SetTarget(s.rmtg) e1:SetTarget(s.rmtg)
e1:SetOperation(s.rmop) e1:SetOperation(s.rmop)
...@@ -45,11 +45,11 @@ function s.xyzop(e,tp,chk) ...@@ -45,11 +45,11 @@ function s.xyzop(e,tp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,id)==0 end if chk==0 then return Duel.GetFlagEffect(tp,id)==0 end
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1) Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end end
function s.con1(e,tp,eg,ep,ev,re,r,rp) --function s.con1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7) --return not e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7)
end --end
function s.con2(e,tp,eg,ep,ev,re,r,rp) function s.con2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7) return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,18018006)
end end
function s.rmcost(e,tp,eg,ep,ev,re,r,rp,chk) function s.rmcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
......
...@@ -10,7 +10,7 @@ function s.initial_effect(c) ...@@ -10,7 +10,7 @@ function s.initial_effect(c)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,id) e1:SetCountLimit(1,id)
e1:SetCondition(s.con1) --e1:SetCondition(s.con1)
e1:SetCost(s.rmcost) e1:SetCost(s.rmcost)
e1:SetTarget(s.rmtg) e1:SetTarget(s.rmtg)
e1:SetOperation(s.rmop) e1:SetOperation(s.rmop)
...@@ -45,9 +45,9 @@ function s.xyzop(e,tp,chk) ...@@ -45,9 +45,9 @@ function s.xyzop(e,tp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,id)==0 end if chk==0 then return Duel.GetFlagEffect(tp,id)==0 end
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1) Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end end
function s.con1(e,tp,eg,ep,ev,re,r,rp) --function s.con1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7) --return not e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7)
end --end
function s.con2(e,tp,eg,ep,ev,re,r,rp) function s.con2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7) return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,id-7)
end end
......
--奇物-121 净泉碧枝 --奇物-121 净泉碧枝
local m=18700137 local cm,m,o=GetID()
local cm=_G["c"..m]
xpcall(function() require("expansions/script/1") end,function() require("script/1") end)
function cm.initial_effect(c) function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,2,2,cm.ovfilter,aux.Stringid(m,0),2,cm.xyzop) aux.AddXyzProcedure(c,nil,2,2,cm.ovfilter,aux.Stringid(m,0),2,cm.xyzop)
...@@ -31,7 +29,6 @@ function cm.initial_effect(c) ...@@ -31,7 +29,6 @@ function cm.initial_effect(c)
e3:SetCategory(CATEGORY_TOHAND) e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET) e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetCountLimit(1,m+1) e3:SetCountLimit(1,m+1)
e3:SetCost(cm.descost) e3:SetCost(cm.descost)
...@@ -83,7 +80,7 @@ function cm.xfilter(c,tp) ...@@ -83,7 +80,7 @@ function cm.xfilter(c,tp)
and c:GetOverlayGroup():IsExists(cm.thfilter,1,nil,tp) and c:GetOverlayGroup():IsExists(cm.thfilter,1,nil,tp)
end end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and s.xfilter(chkc,tp) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and cm.xfilter(chkc,tp) end
if chk==0 then return Duel.IsExistingTarget(cm.xfilter,tp,LOCATION_MZONE,0,1,nil,tp) end if chk==0 then return Duel.IsExistingTarget(cm.xfilter,tp,LOCATION_MZONE,0,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.SelectTarget(tp,cm.xfilter,tp,LOCATION_MZONE,0,1,1,nil,tp) Duel.SelectTarget(tp,cm.xfilter,tp,LOCATION_MZONE,0,1,1,nil,tp)
......
...@@ -78,6 +78,7 @@ function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -78,6 +78,7 @@ function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,sg,sg:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,sg,sg:GetCount(),0,0)
end end
function cm.desop(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,m+2,0,0,1)
local sg=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil) local sg=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil)
Duel.Destroy(sg,REASON_EFFECT) Duel.Destroy(sg,REASON_EFFECT)
if e:GetLabel()==100 then if e:GetLabel()==100 then
......
...@@ -40,12 +40,14 @@ function cm.initial_effect(c) ...@@ -40,12 +40,14 @@ function cm.initial_effect(c)
end end
end end
function cm.aclimit1(e,tp,eg,ep,ev,re,r,rp) function cm.aclimit1(e,tp,eg,ep,ev,re,r,rp)
if not (ep~=tp or re:GetHandler():IsCode(18700392)) then return end if ep==tp and re:GetHandler():IsCode(18700392) then
Duel.RegisterFlagEffect(tp,m+1,0,0,1) Duel.RegisterFlagEffect(tp,m+1,0,0,1)
end
end end
function cm.aclimit2(e,tp,eg,ep,ev,re,r,rp) function cm.aclimit2(e,tp,eg,ep,ev,re,r,rp)
if not (ep~=tp or re:GetHandler():IsCode(18700392)) then return end if ep==tp and re:GetHandler():IsCode(18700392) then
Duel.ResetFlagEffect(tp,m+1) Duel.ResetFlagEffect(tp,m+1)
end
end end
function cm.thfilter(c) function cm.thfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and aux.IsCodeListed(c,18700201) return c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and aux.IsCodeListed(c,18700201)
...@@ -130,7 +132,7 @@ function cm.drop(e,tp,eg,ep,ev,re,r,rp) ...@@ -130,7 +132,7 @@ function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local ct=1 local ct=1
if Duel.IsPlayerCanDraw(tp,2) then ct=2 end if Duel.IsPlayerCanDraw(tp,2) then ct=2 end
local g=Duel.SelectMatchingCard(tp,cm.drfilter,tp,LOCATION_GRAVE,0,1,ct,e:GetHandler()) local g=Duel.SelectMatchingCard(tp,cm.drfilter,tp,LOCATION_GRAVE,0,1,ct,e:GetHandler())
if g:GetCount()>0 and Duel.SendtoDeck(g,nil,0,REASON_EFFECT)~=0 then if g:GetCount()>0 and Duel.SendtoDeck(g,nil,1,REASON_EFFECT)~=0 then
Duel.Draw(tp,g:GetCount(),REASON_EFFECT) Duel.Draw(tp,g:GetCount(),REASON_EFFECT)
Duel.BreakEffect() Duel.BreakEffect()
if Duel.GetFlagEffect(tp,m+2)~=0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(cm.sumfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) and Duel.SelectYesNo(tp,aux.Stringid(m,4)) then if Duel.GetFlagEffect(tp,m+2)~=0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(cm.sumfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) and Duel.SelectYesNo(tp,aux.Stringid(m,4)) then
......
...@@ -49,7 +49,7 @@ end ...@@ -49,7 +49,7 @@ end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return aux.IsCodeListed(c,18700201) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return aux.IsCodeListed(c,18700201) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function cm.filter2(c) function cm.filter2(c,tp)
return aux.IsCodeListed(c,18700201) and c:IsAbleToDeck() and Duel.IsExistingMatchingCard(cm.filter3,tp,LOCATION_DECK,0,1,nil,c) return aux.IsCodeListed(c,18700201) and c:IsAbleToDeck() and Duel.IsExistingMatchingCard(cm.filter3,tp,LOCATION_DECK,0,1,nil,c)
end end
function cm.filter3(c,tc) function cm.filter3(c,tc)
...@@ -62,7 +62,7 @@ end ...@@ -62,7 +62,7 @@ end
function cm.eff2tg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.eff2tg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) local b1=Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp)
local b2=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_GRAVE,0,1,nil) local b2=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_GRAVE,0,1,nil)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) or Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) or Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_GRAVE,0,1,nil,tp) end
local op=aux.SelectFromOptions(tp, local op=aux.SelectFromOptions(tp,
{b1,aux.Stringid(m,2)}, {b1,aux.Stringid(m,2)},
{b2,aux.Stringid(m,3)}) {b2,aux.Stringid(m,3)})
...@@ -70,8 +70,7 @@ function cm.eff2tg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -70,8 +70,7 @@ function cm.eff2tg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.SelectTarget(tp,cm.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectTarget(tp,cm.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
e:SetLabel(100) e:SetLabel(100)
else else
local g=Duel.SelectTarget(tp,cm.filter2,tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectTarget(tp,cm.filter2,tp,LOCATION_GRAVE,0,1,1,nil,tp)
end end
end end
function cm.eff2op(e,tp) function cm.eff2op(e,tp)
......
...@@ -24,6 +24,7 @@ function cm.initial_effect(c) ...@@ -24,6 +24,7 @@ function cm.initial_effect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_PHASE+PHASE_END) e5:SetCode(EVENT_PHASE+PHASE_END)
e5:SetRange(LOCATION_SZONE) e5:SetRange(LOCATION_SZONE)
e5:SetCondition(cm.condition)
e5:SetCountLimit(1) e5:SetCountLimit(1)
e5:SetTarget(cm.target) e5:SetTarget(cm.target)
e5:SetOperation(cm.activate) e5:SetOperation(cm.activate)
...@@ -32,6 +33,9 @@ end ...@@ -32,6 +33,9 @@ end
function cm.accon(e,tp,eg,ep,ev,re,r,rp) function cm.accon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCustomActivityCount(m,tp,ACTIVITY_SUMMON)==0 return Duel.GetCustomActivityCount(m,tp,ACTIVITY_SUMMON)==0
end end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==e:GetHandlerPlayer()
end
function cm.filter(c) function cm.filter(c)
return aux.IsCodeListed(c,60010029) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() return aux.IsCodeListed(c,60010029) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end 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