Commit ea8f4e38 authored by Tachibana's avatar Tachibana

得得得得得

parent 208195d4
No preview for this file type
...@@ -39,8 +39,13 @@ function c17032480.xyzop(e,tp,chk) ...@@ -39,8 +39,13 @@ function c17032480.xyzop(e,tp,chk)
Duel.SendtoGrave(tc,REASON_DISCARD+REASON_COST) Duel.SendtoGrave(tc,REASON_DISCARD+REASON_COST)
end end
end end
function c17032480.qfilter(c)
if c:IsCode(40516623,71614230,77511331) then return end
return c:IsType(TYPE_FUSION+TYPE_RITUAL+TYPE_SYNCHRO+TYPE_XYZ+TYPE_SPSUMMON+TYPE_LINK+TYPE_SPIRIT)
end
function c17032480.spfilter(c,e,tp) function c17032480.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and
(c:IsStatus(STATUS_PROC_COMPLETE) or not s.qfilter(c))
end end
function c17032480.target(e,tp,eg,ep,ev,re,r,rp,chk) function c17032480.target(e,tp,eg,ep,ev,re,r,rp,chk)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
......
--朱翼的炎舞·南朱 --朱翼的炎舞·南朱
function c17032690.initial_effect(c) function c17032690.initial_effect(c)
aux.EnablePendulumAttribute(c,LOCATION_HAND) aux.EnablePendulumAttribute(c)
c:EnableReviveLimit()
--revive limit --revive limit
aux.EnableReviveLimitPendulumSummonable(c) aux.EnableReviveLimitPendulumSummonable(c,LOCATION_HAND)
c:EnableReviveLimit()
--extra attack --extra attack
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -23,7 +23,8 @@ function c17032690.initial_effect(c) ...@@ -23,7 +23,8 @@ function c17032690.initial_effect(c)
e2:SetOperation(c17032690.pcop) e2:SetOperation(c17032690.pcop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c17032690.condition(e,tp,eg,ep,ev,re,r,rp) function c17032690.condition(e)
local tp=e:GetHandlerPlayer()
return Duel.GetLP(tp)<=2000 return Duel.GetLP(tp)<=2000
end end
function c17032690.pcfilter(c) function c17032690.pcfilter(c)
......
...@@ -10,13 +10,18 @@ function c17033000.initial_effect(c) ...@@ -10,13 +10,18 @@ function c17033000.initial_effect(c)
e1:SetOperation(s.activate) e1:SetOperation(s.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function s.qfilter(c)
if c:IsCode(40516623,71614230,77511331) then return end
return c:IsType(TYPE_FUSION+TYPE_RITUAL+TYPE_SYNCHRO+TYPE_XYZ+TYPE_SPSUMMON+TYPE_LINK+TYPE_SPIRIT)
end
function s.filter(c,e,tp) function s.filter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and
(c:IsStatus(STATUS_PROC_COMPLETE) or not s.qfilter(c))
end end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk) function s.target(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
and Duel.GetOverlayGroup(tp,1,1):IsExists(s.filter,1,nil,e,tp) end and Duel.GetOverlayGroup(tp,1,1):IsExists(s.filter,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,nil)
end end
function s.activate(e,tp,eg,ep,ev,re,r,rp) function s.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
......
...@@ -80,7 +80,7 @@ function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -80,7 +80,7 @@ function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoDeck(e:GetHandler(),nil,2,REASON_COST) Duel.SendtoDeck(e:GetHandler(),nil,2,REASON_COST)
end end
function cm.thfilter(c) function cm.thfilter(c)
return c:IsCode(28303003) and c:IsAbleToHand() return c:IsCode(81010001) and c:IsAbleToHand()
end end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
......
...@@ -66,7 +66,11 @@ end ...@@ -66,7 +66,11 @@ end
function cm.spop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK+LOCATION_GRAVE+LOCATION_HAND,0,1,1,nil,e,tp) local g1=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK+LOCATION_GRAVE+LOCATION_HAND,0,1,1,nil,e,tp)
if g1:GetCount()>0 then if g1:GetCount()<=0 then return end
local tc=g1:GetFirst()
if tc:IsType(TYPE_RITUAL) then
Duel.SpecialSummon(g1,SUMMON_TYPE_RITUAL,tp,tp,true,true,POS_FACEUP)
else
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
end end
e:GetHandler():AddCounter(0x34f,3) e:GetHandler():AddCounter(0x34f,3)
......
...@@ -19,6 +19,7 @@ function c33400202.initial_effect(c) ...@@ -19,6 +19,7 @@ function c33400202.initial_effect(c)
e2:SetCode(EVENT_TO_GRAVE) e2:SetCode(EVENT_TO_GRAVE)
e2:SetCountLimit(1,33400202+10000) e2:SetCountLimit(1,33400202+10000)
e2:SetCondition(c33400202.sgcn) e2:SetCondition(c33400202.sgcn)
e2:SetTarget(c33400202.tg)
e2:SetOperation(c33400202.operation) e2:SetOperation(c33400202.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
...@@ -61,6 +62,9 @@ end ...@@ -61,6 +62,9 @@ end
function c33400202.tgfilter(c) function c33400202.tgfilter(c)
return c:IsSetCard(0x6342) and c:IsAbleToGrave() return c:IsSetCard(0x6342) and c:IsAbleToGrave()
end end
function c33400202.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33400202.tgfilter,tp,LOCATION_DECK,0,1,nil) end
end
function c33400202.operation(e,tp,eg,ep,ev,re,r,rp) function c33400202.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c33400202.tgfilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c33400202.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
......
...@@ -111,7 +111,13 @@ function cm.checkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -111,7 +111,13 @@ function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst() local tc=eg:GetFirst()
while tc do while tc do
if tc:IsSetCard(0x5341) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m)==0 then if tc:IsSetCard(0x5341) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m)==0 then
Duel.RegisterFlagEffect(tc:GetSummonPlayer(),33400329,0,0,0) Duel.RegisterFlagEffect(tc:GetSummonPlayer(),33400329,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,2))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tc:GetSummonPlayer())
-- Duel.Recover(tp,20,REASON_EFFECT) -- Duel.Recover(tp,20,REASON_EFFECT)
end end
tc=eg:GetNext() tc=eg:GetNext()
...@@ -123,43 +129,103 @@ function cm.checkop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -123,43 +129,103 @@ function cm.checkop2(e,tp,eg,ep,ev,re,r,rp)
while tc do while tc do
if tc:GetPreviousPosition()&POS_FACEUP~=0 and tc:IsType(TYPE_MONSTER) then if tc:GetPreviousPosition()&POS_FACEUP~=0 and tc:IsType(TYPE_MONSTER) then
if tc:IsSetCard(0x5341) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+1)==0 then if tc:IsSetCard(0x5341) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+1)==0 then
Duel.RegisterFlagEffect(tp,33400330,0,0,1) Duel.RegisterFlagEffect(tp,33400330,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,12))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,10,REASON_EFFECT) -- Duel.Recover(tp,10,REASON_EFFECT)
end end
if tc:IsSetCard(0x5342) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+2)==0 then if tc:IsSetCard(0x5342) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+2)==0 then
Duel.RegisterFlagEffect(tp,33400331,0,0,1) Duel.RegisterFlagEffect(tp,33400331,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,3))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,1,REASON_EFFECT) -- Duel.Recover(tp,1,REASON_EFFECT)
end end
if tc:IsSetCard(0x6342)and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+3)==0 then if tc:IsSetCard(0x6342)and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+3)==0 then
Duel.RegisterFlagEffect(tp,33400332,0,0,1) Duel.RegisterFlagEffect(tp,33400332,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,4))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,2,REASON_EFFECT) -- Duel.Recover(tp,2,REASON_EFFECT)
end end
if tc:IsSetCard(0x3341)and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+4)==0 then if tc:IsSetCard(0x3341)and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+4)==0 then
Duel.RegisterFlagEffect(tp,33400333,0,0,1) Duel.RegisterFlagEffect(tp,33400333,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,5))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,3,REASON_EFFECT) -- Duel.Recover(tp,3,REASON_EFFECT)
end end
if tc:IsSetCard(0x6341)and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+5)==0 then if tc:IsSetCard(0x6341)and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+5)==0 then
Duel.RegisterFlagEffect(tp,33400334,0,0,1) Duel.RegisterFlagEffect(tp,33400334,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,6))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,4,REASON_EFFECT) -- Duel.Recover(tp,4,REASON_EFFECT)
end end
if tc:IsSetCard(0x9341) and tc:GetOriginalAttribute()==ATTRIBUTE_FIRE and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+6)==0 then if tc:IsSetCard(0x9341) and tc:GetOriginalAttribute()==ATTRIBUTE_FIRE and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+6)==0 then
Duel.RegisterFlagEffect(tp,33400335,0,0,1) Duel.RegisterFlagEffect(tp,33400335,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,7))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,5,REASON_EFFECT) -- Duel.Recover(tp,5,REASON_EFFECT)
end end
if tc:IsSetCard(0x9342)and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+7)==0 then if tc:IsSetCard(0x9342)and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+7)==0 then
Duel.RegisterFlagEffect(tp,33400336,0,0,1) Duel.RegisterFlagEffect(tp,33400336,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,8))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,6,REASON_EFFECT) -- Duel.Recover(tp,6,REASON_EFFECT)
end end
if tc:IsSetCard(0x3342) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+8)==0 then if tc:IsSetCard(0x3342) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+8)==0 then
Duel.RegisterFlagEffect(tp,33400337,0,0,1) Duel.RegisterFlagEffect(tp,33400337,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,9))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,7,REASON_EFFECT) -- Duel.Recover(tp,7,REASON_EFFECT)
end end
if tc:IsSetCard(0xa341) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+9)==0 then if tc:IsSetCard(0xa341) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+9)==0 then
Duel.RegisterFlagEffect(tp,33400338,0,0,1) Duel.RegisterFlagEffect(tp,33400338,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,10))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,8,REASON_EFFECT) -- Duel.Recover(tp,8,REASON_EFFECT)
end end
if tc:IsSetCard(0xc341) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+10)==0 then if tc:IsSetCard(0xc341) and Duel.GetFlagEffect(tc:GetSummonPlayer(),m+10)==0 then
Duel.RegisterFlagEffect(tp,33400339,0,0,1) Duel.RegisterFlagEffect(tp,33400339,0,0,0)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetDescription(aux.Stringid(m,11))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
Duel.RegisterEffect(e3,tp)
-- Duel.Recover(tp,9,REASON_EFFECT) -- Duel.Recover(tp,9,REASON_EFFECT)
end end
end end
...@@ -169,6 +235,7 @@ end ...@@ -169,6 +235,7 @@ end
function cm.sprcon(e,c) function cm.sprcon(e,c)
if c==nil then return true end if c==nil then return true end
local tp=e:GetHandlerPlayer()
local g=Duel.GetMatchingGroup(nil,e:GetHandlerPlayer(),LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(nil,e:GetHandlerPlayer(),LOCATION_DECK,0,nil)
return Duel.GetFlagEffect(tp,33400329)>0 and return Duel.GetFlagEffect(tp,33400329)>0 and
Duel.GetFlagEffect(tp,33400330)>0 and Duel.GetFlagEffect(tp,33400330)>0 and
...@@ -182,6 +249,7 @@ function cm.sprcon(e,c) ...@@ -182,6 +249,7 @@ function cm.sprcon(e,c)
Duel.GetFlagEffect(tp,33400338)>0 and Duel.GetFlagEffect(tp,33400338)>0 and
Duel.GetFlagEffect(tp,33400339)>0 and Duel.GetFlagEffect(tp,33400339)>0 and
g:GetClassCount(Card.GetCode)==g:GetCount() g:GetClassCount(Card.GetCode)==g:GetCount()
and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end end
function cm.spop0(e,tp,eg,ep,ev,re,r,rp,c) function cm.spop0(e,tp,eg,ep,ev,re,r,rp,c)
local hg=Duel.GetMatchingGroup(nil,tp,LOCATION_DECK,0,nil) local hg=Duel.GetMatchingGroup(nil,tp,LOCATION_DECK,0,nil)
......
...@@ -87,8 +87,8 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -87,8 +87,8 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end end
if Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_HAND+LOCATION_GRAVE,LOCATION_GRAVE,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then if Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_HAND+LOCATION_GRAVE,LOCATION_GRAVE,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local rg=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_HAND+LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil) local rg=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_HAND+LOCATION_GRAVE,LOCATION_GRAVE,0,1,1,nil)
Duel.Remove(rg,REASON_EFFECT) Duel.Remove(rg,POS_FACEUP,REASON_EFFECT)
end end
end end
......
...@@ -111,7 +111,7 @@ function cm.tgop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -111,7 +111,7 @@ function cm.tgop2(e,tp,eg,ep,ev,re,r,rp)
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
end end
Duel.SendtoGrave(e:GetHandler(),REASON_EFFECT) Duel.SendtoGrave(e:GetHandler(),REASON_EFFECT)
end end
end end
end end
if key==1 then if key==1 then
...@@ -119,20 +119,26 @@ function cm.tgop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -119,20 +119,26 @@ function cm.tgop2(e,tp,eg,ep,ev,re,r,rp)
local tc=g2:GetFirst() local tc=g2:GetFirst()
while tc do while tc do
tc:AddCounter(0x1015,1) tc:AddCounter(0x1015,1)
Duel.NegateRelatedChain(tc,RESET_TURN_SET) tc=g2:GetNext()
end
local g3=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_ONFIELD,nil)
local tc2=g3:GetFirst()
while tc2 do
Duel.NegateRelatedChain(tc2,RESET_TURN_SET)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE) e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1) tc2:RegisterEffect(e1)
local e2=Effect.CreateEffect(e:GetHandler()) local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT) e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+RESETS_STANDARD) e2:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetValue(RESET_TURN_SET) e2:SetValue(RESET_TURN_SET)
tc:RegisterEffect(e2) tc2:RegisterEffect(e2)
tc=g:GetNext() tc2=g3:GetNext()
end end
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE) e1:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
......
...@@ -36,9 +36,9 @@ function cm.f(c) ...@@ -36,9 +36,9 @@ function cm.f(c)
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_GRAVE and chkc:IsAbleToDeck() end if chkc then return chkc:GetLocation()==LOCATION_GRAVE and chkc:IsAbleToDeck() end
if chk==0 then return Duel.IsExistingTarget(cm.f,tp,0,LOCATION_GRAVE,1,nil) end if chk==0 then return Duel.IsExistingTarget(cm.f,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectTarget(tp,cm.f,tp,0,LOCATION_GRAVE,1,1,nil) local g=Duel.SelectTarget(tp,cm.f,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,1-tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,1-tp,LOCATION_GRAVE)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp,chk) function cm.operation(e,tp,eg,ep,ev,re,r,rp,chk)
...@@ -50,9 +50,9 @@ end ...@@ -50,9 +50,9 @@ end
function cm.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_GRAVE end if chkc then return chkc:GetLocation()==LOCATION_GRAVE end
if chk==0 then return Duel.IsExistingTarget(Card.IsCode,tp,0,LOCATION_GRAVE,1,nil,35800200) end if chk==0 then return Duel.IsExistingTarget(Card.IsCode,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil,35800200) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectTarget(tp,Card.IsCode,tp,0,LOCATION_GRAVE,1,1,nil,35800200) local g=Duel.SelectTarget(tp,Card.IsCode,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil,35800200)
end end
function cm.operation1(e,tp,eg,ep,ev,re,r,rp,chk) function cm.operation1(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
......
...@@ -49,6 +49,7 @@ function cm.initial_effect(c) ...@@ -49,6 +49,7 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_RELEASE) e3:SetCode(EVENT_RELEASE)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.atcon) e3:SetCondition(cm.atcon)
e3:SetOperation(cm.atop) e3:SetOperation(cm.atop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
...@@ -158,7 +159,7 @@ function cm.atop(e,tp,eg,ep,ev,re,r,rp) ...@@ -158,7 +159,7 @@ function cm.atop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(atk) e1:SetValue(atk/2)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
......
...@@ -66,7 +66,7 @@ end ...@@ -66,7 +66,7 @@ end
function cm.con(e) function cm.con(e)
local ph=Duel.GetCurrentPhase() local ph=Duel.GetCurrentPhase()
local ct=Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_REMOVED,0,nil) local ct=Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_REMOVED,0,nil)
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE and ct>4 return ct>4
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsSetCard(0x480) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x480) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
...@@ -44,7 +44,8 @@ function cm.filter(c) ...@@ -44,7 +44,8 @@ function cm.filter(c)
end end
function cm.atkcost1(e,tp,eg,ep,ev,re,r,rp,chk) function cm.atkcost1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE,0,1,nil) end
local ct=Duel.DiscardHand(tp,cm.filter,1,60,REASON_COST) local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_GRAVE,0,1,60,nil)
local ct=Duel.Remove(g,POS_FACEUP,REASON_COST)
e:SetLabel(ct) e:SetLabel(ct)
end end
function cm.atkop1(e,tp,eg,ep,ev,re,r,rp) function cm.atkop1(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -33,8 +33,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -33,8 +33,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,g,1,0,0)
end end
function cm.mgfilter(c,e,tp,fusc,mg) function cm.mgfilter(c,e,tp,fusc,mg)
return c:IsControler(tp) and c:IsLocation(LOCATION_GRAVE) return c:IsControler(tp) and c:IsLocation(LOCATION_GRAVE)
and c:GetReason()&(REASON_FUSION+REASON_MATERIAL)==(REASON_FUSION+REASON_MATERIAL) and c:GetReasonCard()==fusc
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function cm.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -41,7 +41,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -41,7 +41,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local dg=g:Select(tp,1,1,nil) local dg=g:Select(tp,1,1,nil)
if Duel.Destroy(dg,REASON_EFFECT)~=0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then if Duel.Destroy(dg,REASON_EFFECT)~=0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.tgf21),tp,LOCATION_GRAVE,0,nil,tp,tc:GetCode()) local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.tgf21),tp,LOCATION_GRAVE,0,nil,tp)
Duel.MoveToField(sg:GetFirst(),tp,tp,LOCATION_SZONE,POS_FACEUP,true) Duel.MoveToField(sg:GetFirst(),tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end end
end end
......
...@@ -34,7 +34,7 @@ function cm.initial_effect(c) ...@@ -34,7 +34,7 @@ function cm.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetRange(LOCATION_SZONE) e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(1) e2:SetCountLimit(1,m-1)
e2:SetCondition(cm.condition) e2:SetCondition(cm.condition)
e2:SetTarget(cm.target) e2:SetTarget(cm.target)
e2:SetOperation(cm.operation) e2:SetOperation(cm.operation)
...@@ -93,7 +93,7 @@ function cm.spop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -93,7 +93,7 @@ function cm.spop2(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.condition(e,tp,eg,ep,ev,re,r,rp) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsSetCard,1,nil,0xa01+0xb81) return eg:IsExists(Card.IsSetCard,1,nil,0xa01,0xb81)
end end
function cm.tfilter(c,e,tp) function cm.tfilter(c,e,tp)
return aux.IsCodeListed(c,m) and c:IsAbleToHand() and c:IsType(TYPE_MONSTER) return aux.IsCodeListed(c,m) and c:IsAbleToHand() and c:IsType(TYPE_MONSTER)
......
...@@ -2587,6 +2587,14 @@ function cm.AllEffectRstop(e,tp,eg,ep,ev,re,r,rp) ...@@ -2587,6 +2587,14 @@ function cm.AllEffectRstop(e,tp,eg,ep,ev,re,r,rp)
ex1:SetTarget(function(e,te,tp)return te==e:GetLabelObject()end) ex1:SetTarget(function(e,te,tp)return te==e:GetLabelObject()end)
ex1:SetCost(function(e,te,tp)return Duel.GetFlagEffect(0,53796005)==0 end) ex1:SetCost(function(e,te,tp)return Duel.GetFlagEffect(0,53796005)==0 end)
sc:RegisterEffect(ex1) sc:RegisterEffect(ex1)
local x=true
if sc:IsHasEffect(53796005) then
for _,i in ipairs{sc:IsHasEffect(53796005)} do
if i:GetOperation()==se:GetOperation() then x=false end
end
end
if x then
Debug.Message(114)
local ex2=se:Clone() local ex2=se:Clone()
ex2:SetCode(EVENT_LEAVE_FIELD) ex2:SetCode(EVENT_LEAVE_FIELD)
sc:RegisterEffect(ex2) sc:RegisterEffect(ex2)
...@@ -2595,6 +2603,14 @@ function cm.AllEffectRstop(e,tp,eg,ep,ev,re,r,rp) ...@@ -2595,6 +2603,14 @@ function cm.AllEffectRstop(e,tp,eg,ep,ev,re,r,rp)
ex3:SetTarget(function(e,te,tp)return te==e:GetLabelObject()end) ex3:SetTarget(function(e,te,tp)return te==e:GetLabelObject()end)
ex3:SetCost(function(e,te,tp)return Duel.GetFlagEffect(0,53796005)>0 end) ex3:SetCost(function(e,te,tp)return Duel.GetFlagEffect(0,53796005)>0 end)
sc:RegisterEffect(ex3) sc:RegisterEffect(ex3)
local ex4=Effect.CreateEffect(sc)
ex4:SetType(EFFECT_TYPE_SINGLE)
ex4:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
ex4:SetCode(53796005)
ex4:SetRange(0xff)
ex4:SetOperation(se:GetOperation())
sc:RegisterEffect(ex4)
end
end end
end end
if cm.IsInTable(53799017,rstt) then if cm.IsInTable(53799017,rstt) then
......
...@@ -44,7 +44,7 @@ end ...@@ -44,7 +44,7 @@ end
function c67200302.spop(e,tp,eg,ep,ev,re,r,rp) function c67200302.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.SendtoDeck(eg,nil,REASON_EFFECT) Duel.SendtoDeck(eg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end end
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