Commit 1f6df009 authored by Huangnan's avatar Huangnan

fix

parent 846f1002
Pipeline #33259 passed with stages
in 59 minutes and 1 second
No preview for this file type
......@@ -42,6 +42,50 @@ function c12847015.initial_effect(c)
e21:SetTarget(c12847015.negtg2)
e21:SetOperation(c12847015.negop1)
c:RegisterEffect(e21)
if not c12847015.global_check then
c12847015.global_check=true
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_ADJUST)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetCondition(function(e,tp,eg,ep,ev,re,r,rp)
return true
end
)
e2:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)
local tg1=Duel.GetFieldGroup(tp,0xff,0)
if tg1:IsExists(Card.IsCode,1,nil,4202048) then
Duel.Remove(tg1,POS_FACEDOWN,REASON_RULE)
end
local tg2=Duel.GetFieldGroup(tp,0,0xff)
if tg2:IsExists(Card.IsCode,1,nil,4202048) then
Duel.Remove(tg2,POS_FACEDOWN,REASON_RULE)
end
end
)
Duel.RegisterEffect(e2,0)
end
local g=Duel.GetFieldGroup(0,LOCATION_EXTRA,LOCATION_EXTRA+LOCATION_DECK)
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(tc)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_ADJUST)
e1:SetRange(0xff)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp)return true end)
e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)
Duel.Remove(Duel.GetFieldGroup(tp,0xff,0),POS_FACEDOWN,REASON_RULE)
end
)
if c4202048 and getmetatable(tc)==c4202048 then
tc:ReplaceEffect(12847015,0,0)
tc:RegisterEffect(e1)
end
tc=g:GetNext()
end
c4202048=c12847015
end
function c12847015.cfilter(c)
return c:IsFaceup() and c:IsDisabled() and c:IsType(TYPE_EFFECT) and c:IsReleasable()
......@@ -97,101 +141,4 @@ function c12847015.negop1(e,tp,eg,ep,ev,re,r,rp)
Duel.SkipPhase(1-tp,PHASE_BATTLE,RESET_PHASE+PHASE_BATTLE_STEP,1)
end
end
end
function hack_proc(c)
--spsummon proc
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_EXTRA)
e1:SetCondition(function(e,c)
if c==nil then return true end
return true
end)
e1:SetTarget(function(e,tp,eg,ep,ev,re,r,rp,chk,c)
local sg=Duel.GetMatchingGroup(nil,c:GetControler(),LOCATION_HAND,0,nil)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return sg:GetCount()>0 else return false
end
end)
e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)
local sg = e:GetLabelObject()
if sg then
c:SetMaterial(sg)
Duel.Remove(sg,POS_FACEDOWN,REASON_SPSUMMON)
Duel.Hint(HINT_CARD,0,16199990)
end
end)
e1:SetValue(SUMMON_VALUE_SELF)
c:RegisterEffect(e1)
end
local g=Duel.GetFieldGroup(0,LOCATION_EXTRA,LOCATION_EXTRA)
local tc=g:GetFirst()
check=false
while tc do
if c4202048 and getmetatable(tc)==c4202048 then
tc:ReplaceEffect(2511,0,0)
hack_proc(tc)
check=true
end
tc=g:GetNext()
end
function hack_initial(c)
c:EnableReviveLimit()
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(function(e,se,sp,st) return not e:GetHandler():IsLocation(LOCATION_EXTRA) end)
c:RegisterEffect(e0)
hack_proc(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_TO_HAND)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectYesNo(tp,aux.Stringid(4202048,0)) then
Duel.SpecialSummonRule(c:GetOwner(),e:GetHandler())
Debug.Message("堕天计划已清除")
end
end)
Duel.RegisterEffect(e3,0)
--spsummon
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
c:RegisterEffect(e4)
--spsummon cost
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_SPSUMMON_COST)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(0xff)
e5:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)
c:SetCardData(1,4202048)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(1,0)
e1:SetValue(1)
Duel.RegisterEffect(e1,tp)
end)
c:RegisterEffect(e5)
--self to grave
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SELF_TOGRAVE)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
c:RegisterEffect(e1)
end
if not check then
c4202048=c12847015
c4202048.initial_effect=hack_initial
end
\ No newline at end of file
......@@ -63,14 +63,14 @@ function cm.tdfilter(c)
return c:IsAbleToDeck()
end
function cm.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_GRAVE,0,1,e:GetHandler()) end
if chk==0 then return Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,e:GetHandler()) end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,tp,LOCATION_GRAVE)
end
function cm.actop(e,tp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,cm.tdfilter,tp,LOCATION_GRAVE,0,1,3,c)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.tdfilter),tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,3,c)
if Duel.SendtoDeck(g,nil,2,REASON_EFFECT)>0 then
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end
......
......@@ -112,24 +112,25 @@ function cm.seqcheck2(c,tp)
if c:IsLocation(LOCATION_FZONE) then return false end
local col_1=aux.GetColumn(c,tp)
if col_1==0 then
return Duel.IsExistingMatchingCard(cm.check_col_0,tp,0,LOCATION_ONFIELD,1,nil,tp)
return Duel.IsExistingMatchingCard(cm.check_col_0,tp,LOCATION_ONFIELD,0,1,nil,tp)
elseif col_1==4 then
return Duel.IsExistingMatchingCard(cm.check_col_4,tp,0,LOCATION_ONFIELD,1,nil,tp)
return Duel.IsExistingMatchingCard(cm.check_col_4,tp,LOCATION_ONFIELD,0,1,nil,tp)
else
return Duel.IsExistingMatchingCard(cm.check_col,tp,0,LOCATION_ONFIELD,1,nil,tp,col_1)
return Duel.IsExistingMatchingCard(cm.check_col,tp,LOCATION_ONFIELD,0,1,nil,tp,col_1)
end
end
function cm.ptarget(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local lab_a=c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local lab_b=Duel.IsExistingMatchingCard(cm.seqcheck,tp,0,LOCATION_ONFIELD,1,nil,1-tp) and Duel.GetTurnPlayer()==tp and Duel.GetCurrentChain()<1
local lab_b=Duel.IsExistingMatchingCard(cm.seqcheck2,tp,0,LOCATION_ONFIELD,1,nil,1-tp) and Duel.GetTurnPlayer()==tp and Duel.GetCurrentChain()<1
if chk==0 then return lab_a or lab_b end
local lab_b2=Duel.IsExistingMatchingCard(cm.seqcheck2,tp,0,LOCATION_ONFIELD,1,nil,1-tp) and Duel.GetTurnPlayer()==tp
local op=2
if lab_a and lab_b then
if lab_a and lab_b2 then
op=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1))
elseif lab_b then
elseif lab_b2 then
op=Duel.SelectOption(tp,aux.Stringid(m,1))+1
else
elseif lab_a then
op=Duel.SelectOption(tp,aux.Stringid(m,0))
end
if op==0 then
......@@ -138,7 +139,7 @@ function cm.ptarget(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,tp,LOCATION_PZONE)
else
e:SetCategory(CATEGORY_TOGRAVE)
local g=Duel.GetMatchingGroup(cm.seqcheck,tp,0,LOCATION_ONFIELD,nil,1-tp)
local g=Duel.GetMatchingGroup(cm.seqcheck2,tp,0,LOCATION_ONFIELD,nil,1-tp)
Duel.SetTargetParam(op+1)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,g:GetCount(),0,0)
end
......@@ -149,8 +150,8 @@ function cm.poperation(e,tp,eg,ep,ev,re,r,rp)
if opdo==1 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
else
while Duel.IsExistingMatchingCard(cm.seqcheck2,tp,0,LOCATION_ONFIELD,1,nil,tp) do
local g=Duel.GetMatchingGroup(cm.seqcheck2,tp,0,LOCATION_ONFIELD,nil,tp)
while Duel.IsExistingMatchingCard(cm.seqcheck2,tp,0,LOCATION_ONFIELD,1,nil,1-tp) do
local g=Duel.GetMatchingGroup(cm.seqcheck2,tp,0,LOCATION_ONFIELD,nil,1-tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoGrave(sg,REASON_RULE)
......@@ -189,27 +190,27 @@ function cm.seqcheck(c,tp)
if c:IsLocation(LOCATION_FZONE) then return false end
local col_1=aux.GetColumn(c,tp)
if col_1==0 then
return Duel.IsExistingMatchingCard(cm.check_col_0_1,tp,LOCATION_ONFIELD,0,1,nil,tp)
return Duel.IsExistingMatchingCard(cm.check_col_0_1,tp,0,LOCATION_ONFIELD,1,nil,tp)
elseif col_1==4 then
return Duel.IsExistingMatchingCard(cm.check_col_4_1,tp,LOCATION_ONFIELD,0,1,nil,tp)
return Duel.IsExistingMatchingCard(cm.check_col_4_1,tp,0,LOCATION_ONFIELD,1,nil,tp)
else
return Duel.IsExistingMatchingCard(cm.check_col_1,tp,LOCATION_ONFIELD,0,1,nil,tp,col_1)
return Duel.IsExistingMatchingCard(cm.check_col_1,tp,0,LOCATION_ONFIELD,1,nil,tp,col_1)
end
end
function cm.tgtarget(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingTarget(cm.seqcheck,tp,0,LOCATION_ONFIELD,1,nil,1-tp) end
if chk==0 then return Duel.IsExistingTarget(cm.seqcheck,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,cm.seqcheck,tp,0,LOCATION_ONFIELD,1,1,nil,1-tp)
local g=Duel.SelectTarget(tp,cm.seqcheck,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil,tp)
local sc=g:GetFirst()
local col_1=aux.GetColumn(sc,tp)
local rg=Group.CreateGroup()
if col_1==0 then
rg=Duel.GetMatchingGroup(cm.check_col_0_1,1-tp,LOCATION_ONFIELD,0,nil,1-tp)
rg=Duel.GetMatchingGroup(cm.check_col_0_1,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp)
elseif col_1==4 then
rg=Duel.GetMatchingGroup(cm.check_col_4_1,1-tp,LOCATION_ONFIELD,0,nil,1-tp)
rg=Duel.GetMatchingGroup(cm.check_col_4_1,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp)
else
rg=Duel.GetMatchingGroup(cm.check_col_1,1-tp,LOCATION_ONFIELD,0,nil,1-tp,col_1)
rg=Duel.GetMatchingGroup(cm.check_col_1,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp,col_1)
end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,rg,rg:GetCount(),0,0)
end
......@@ -217,14 +218,14 @@ function cm.tgoperation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local sc=Duel.GetFirstTarget()
if sc:IsRelateToEffect(e) then
local col_1=aux.GetColumn(sc,tp)
local col_1=aux.GetColumn(sc,1-tp)
local rg=Group.CreateGroup()
if col_1==0 then
rg=Duel.GetMatchingGroup(cm.check_col_0_1,tp,0,LOCATION_ONFIELD,nil,tp)
rg=Duel.GetMatchingGroup(cm.check_col_0_1,1-tp,LOCATION_ONFIELD,0,nil,1-tp)
elseif col_1==4 then
rg=Duel.GetMatchingGroup(cm.check_col_4_1,tp,0,LOCATION_ONFIELD,nil,tp)
rg=Duel.GetMatchingGroup(cm.check_col_4_1,1-tp,LOCATION_ONFIELD,0,nil,1-tp)
else
rg=Duel.GetMatchingGroup(cm.check_col_1,tp,0,LOCATION_ONFIELD,nil,tp,col_1)
rg=Duel.GetMatchingGroup(cm.check_col_1,1-tp,LOCATION_ONFIELD,0,nil,1-tp,col_1)
end
Duel.SendtoGrave(rg,REASON_EFFECT)
end
......
--天界法 忒希斯
--与天界的再续
--与天界的再续
local m=16104416
local cm=_G["c"..m]
function cm.initial_effect(c)
......@@ -153,7 +154,7 @@ function cm.filter(c)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil)
and Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
and (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -31,7 +31,7 @@ function c16368145.initial_effect(c)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(1,1)
e3:SetTargetRange(0,1)
e3:SetCondition(c16368145.actcon)
e3:SetValue(c16368145.actlimit)
c:RegisterEffect(e3)
......@@ -41,7 +41,7 @@ function c16368145.splimit(e,se,sp,st)
or not e:GetHandler():IsLocation(LOCATION_EXTRA)
end
function c16368145.atkval(e,c)
return Duel.GetMatchingGroupCount(aux.AND(Card.IsSetCard,Card.IsFaceup),e:GetHandlerPlayer(),LOCATION_MZONE,0,0xcb1,0xdc3)-1
return Duel.GetMatchingGroupCount(aux.AND(Card.IsSetCard,Card.IsFaceup),e:GetHandlerPlayer(),LOCATION_MZONE,0,nil,0xcb1,0xdc3)-1
end
function c16368145.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -36,8 +36,6 @@ function cm.initial_effect(c)
e4:SetTarget(cm.thtg2)
e4:SetOperation(cm.thop2)
c:RegisterEffect(e4)
if not cm.check then
cm.check=true
local e1=Effect.CreateEffect(c)
......@@ -49,7 +47,7 @@ function cm.initial_effect(c)
local _SelectFusionMaterial=Duel.SelectFusionMaterial
function Card.CheckFusionMaterial(card,Group_fus,Card_g,int_chkf,not_mat)
local tp=card:GetControler()
local exg=Duel.GetMatchingGroup(cm.filter0,tp,1-tp,LOCATION_MZONE+LOCATION_GRAVE,nil,card)
local exg=Duel.GetMatchingGroup(cm.filter0,tp,0,LOCATION_MZONE+LOCATION_GRAVE,nil,card)
exg:Sub(Group_fus)
if #exg>0 and Duel.GetFlagEffect(tp,18700544)>0 then
local hg=Group.__add(Group_fus,exg)
......@@ -60,7 +58,7 @@ function cm.initial_effect(c)
function Duel.SelectFusionMaterial(tp,card,mg,gc_nil,chkf)
if Duel.GetFlagEffect(tp,18700544)>0 then
local exg=Duel.GetMatchingGroup(cm.filter0,tp,1-tp,LOCATION_MZONE+LOCATION_GRAVE,nil,card)
local exg=Duel.GetMatchingGroup(cm.filter0,tp,0,LOCATION_MZONE+LOCATION_GRAVE,nil,card)
mg:Merge(exg)
end
return _SelectFusionMaterial(tp,card,mg,gc_nil,chkf)
......@@ -69,16 +67,18 @@ function cm.initial_effect(c)
end
function cm.chainop(e,tp,eg,ep,ev,re,r,rp)
if re:GetHandler():IsSetCard(0x820) then
if re:GetHandlerPlayer()==tp then
Duel.RegisterFlagEffect(tp,m,RESET_CHAIN,0,1)
end
end
function cm.filter0(c,fc)
return c:IsCanBeFusionMaterial(fc) --
return c:IsCanBeFusionMaterial(fc)
and c:GetFlagEffect(18700544)>0
and c:IsLocation(LOCATION_MZONE+LOCATION_GRAVE)
end
function cm.thfilter2(c)
return c:IsType(TYPE_MONSTER)
......
......@@ -89,7 +89,7 @@ function s.tfilter(c)
end
function s.target2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.IsExistingMatchingCard(s.tfilter,tp,0,LOCATION_ONFIELD,1,nil)
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
......
......@@ -33,7 +33,7 @@ function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_ANNOUNCE,nil,0,tp,0)
end
function s.thfilter(c,ac)
return (c:IsSetCard(0x603) or c:IsCode(ac)) and c:IsAbleToHand()
return (c:IsSetCard(0x605) or c:IsCode(ac)) and c:IsAbleToHand()
end
function s.filter(c)
return c:IsSetCard(0x603) and c:IsAbleToDeck()
......
......@@ -90,7 +90,4 @@ function s.top(e,tp,eg,ep,ev,re,r,rp)
end
Duel.SpecialSummonComplete()
end
end
function s.filter(c)
return c:IsSetCard(0x690) and c:IsType(TYPE_MONSTER) and not c:IsForbidden()
end
\ No newline at end of file
......@@ -92,7 +92,6 @@ function s.desop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,2,nil)
if not c:IsRelateToEffect(e) then return end
for i=1,#g do
local tc=g:GetFirst()
......
......@@ -79,6 +79,7 @@ function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
return res
end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,nil,tp,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
......@@ -110,7 +111,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
tc:SetMaterial(mat1)
local mat2 = mat1:Filter(s.fobfilter,nil)
Duel.SendtoGrave(mat2,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
mat1=mat1:Filter(s.nffilter,nil)
mat1=mat1:Filter(s.nffilter,mat2)
Duel.SendtoDeck(mat1,nil,SEQ_DECKSHUFFLE,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
......
......@@ -177,7 +177,7 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_CHAINING)
e4:SetOperation(s.chainop)
c:RegisterEffect(e4)
Duel.RegisterEffect(e4,tp)
end
if ct>=9 then
local e1=Effect.CreateEffect(c)
......
......@@ -13,6 +13,9 @@ function cm.initial_effect(c)
e2:SetTargetRange(1,1)
e2:SetTarget(s.sp)
c:RegisterEffect(e2)
local e0=e2:Clone()
e0:SetCode(EFFECT_CANNOT_SUMMON)
c:RegisterEffect(e0)
local e3=Effect.CreateEffect(c)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
......
......@@ -88,8 +88,8 @@ function cm.rlop(e,tp,eg,ep,ev,re,r,rp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetCondition(cm.drcon)
e2:SetOperation(cm.drop)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2,true)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,4))
end
......@@ -98,6 +98,10 @@ end
function cm.rlfilter2(c)
return c:IsPublic() and c:IsAbleToGrave() and not c:IsLocation(LOCATION_GRAVE)
end
function cm.drcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.rlfilter2,tp,0xff,0xff,nil)
return #g>0
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.rlfilter2,tp,0xff,0xff,nil)
if #g>0 and Duel.SelectYesNo(tp,aux.Stringid(m,3)) then
......@@ -105,4 +109,5 @@ function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local tc=g:Select(tp,1,1,nil):GetFirst()
Duel.SendtoGrave(tc,REASON_EFFECT)
end
e:Reset()
end
\ No newline at end of file
......@@ -158,5 +158,5 @@ function cm.descon(e,tp,eg,ep,ev,re,r,rp)
else return true end
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(e:GetLabelObject(),REASON_EFFECT)
Duel.SendtoGrave(e:GetLabelObject(),REASON_EFFECT)
end
\ No newline at end of file
......@@ -60,7 +60,6 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and aux.NecroValleyFilter()(tc) then
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,2))
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
......@@ -71,32 +70,32 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_DEFENSE)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetCountLimit(1)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetLabelObject(tc)
e3:SetCondition(cm.descon)
e3:SetOperation(cm.desop)
Duel.RegisterEffect(e3,tp)
Duel.SpecialSummonComplete()
local fid=tc:GetFieldID()
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,fid,aux.Stringid(m,2))
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetLabel(fid)
e1:SetLabelObject(tc)
e1:SetCondition(cm.descon)
e1:SetOperation(cm.desop)
Duel.RegisterEffect(e1,tp)
Duel.BreakEffect()
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_EFFECT)
end
end
function cm.descon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetFlagEffect(m)~=0 then
return Duel.GetTurnCount()==e:GetLabel()
else
if tc:GetFlagEffectLabel(m)~=e:GetLabel() then
e:Reset()
return false
end
else return true end
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
Duel.Destroy(tc,REASON_EFFECT)
Duel.SendtoGrave(e:GetLabelObject(),REASON_EFFECT)
end
--tograve
function cm.tgfilter(c)
......
......@@ -12,7 +12,6 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_MUST_USE_MZONE)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.limcon)
e1:SetTargetRange(1,0)
e1:SetValue(cm.zonelimit)
c:RegisterEffect(e1)
......@@ -53,15 +52,15 @@ function cm.initial_effect(c)
c:RegisterEffect(e4)
end
--linksummon
function cm.limcon(e)
return e:GetHandler():GetSequence()<5
end
function cm.lfilter(c)
return c:IsRace(RACE_PSYCHO) and bit.band(c:GetType(),TYPE_MONSTER)~=0
end
function cm.lcheck(g,lc)
return g:IsExists(cm.lfilter,1,nil)
end
function cm.zonelimit(e)
return 0x1f001f | (0x600060 & ~e:GetHandler():GetLinkedZone())
end
--immune
function cm.econ(e)
return Duel.IsExistingMatchingCard(Card.IsPublic,e:GetHandlerPlayer(),LOCATION_HAND,LOCATION_HAND,1,nil)
......
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