Commit 9195954d authored by POLYMER's avatar POLYMER

fix

parent 226d9bf3
...@@ -23,6 +23,10 @@ function cm.initial_effect(c) ...@@ -23,6 +23,10 @@ function cm.initial_effect(c)
Duel.Equip=function(p,c,...) Duel.Equip=function(p,c,...)
if not c:IsOnField() and not c:IsHasEffect(EFFECT_EQUIP_LIMIT) then c:RegisterFlagEffect(m,RESET_CHAIN,0,1) end if not c:IsOnField() and not c:IsHasEffect(EFFECT_EQUIP_LIMIT) then c:RegisterFlagEffect(m,RESET_CHAIN,0,1) end
local res=_Equip(p,c,...) local res=_Equip(p,c,...)
if c:IsHasEffect(EFFECT_EQUIP_LIMIT) then
c:ResetFlagEffect(m)
Duel.RaiseEvent(Group.FromCards(c),EVENT_CUSTOM+m,e,0,0,0,0)
end
return res return res
end end
local _CRegisterEffect=Card.RegisterEffect local _CRegisterEffect=Card.RegisterEffect
......
...@@ -77,6 +77,10 @@ function cm.initial_effect(c) ...@@ -77,6 +77,10 @@ function cm.initial_effect(c)
Duel.Equip=function(p,c,...) Duel.Equip=function(p,c,...)
if not (c:IsControler(p) and c:IsLocation(LOCATION_SZONE)) then c:RegisterFlagEffect(11451409,RESET_CHAIN,0,1) c:RegisterFlagEffect(11451409,RESET_CHAIN,0,1) end if not (c:IsControler(p) and c:IsLocation(LOCATION_SZONE)) then c:RegisterFlagEffect(11451409,RESET_CHAIN,0,1) c:RegisterFlagEffect(11451409,RESET_CHAIN,0,1) end
local res=_Equip(p,c,...) local res=_Equip(p,c,...)
if c:IsHasEffect(EFFECT_EQUIP_LIMIT) then
c:ResetFlagEffect(11451409)
cm.desop2(e,0,Group.FromCards(c),0,0,e,0,0)
end
return res return res
end end
local _CRegisterEffect=Card.RegisterEffect local _CRegisterEffect=Card.RegisterEffect
......
...@@ -22,6 +22,10 @@ function cm.initial_effect(c) ...@@ -22,6 +22,10 @@ function cm.initial_effect(c)
Duel.Equip=function(p,c,...) Duel.Equip=function(p,c,...)
if not (c:IsControler(p) and c:IsLocation(LOCATION_SZONE)) and not c:IsHasEffect(EFFECT_EQUIP_LIMIT) then c:RegisterFlagEffect(11451566,RESET_CHAIN,0,1) c:RegisterFlagEffect(11451566,RESET_CHAIN,0,1) end if not (c:IsControler(p) and c:IsLocation(LOCATION_SZONE)) and not c:IsHasEffect(EFFECT_EQUIP_LIMIT) then c:RegisterFlagEffect(11451566,RESET_CHAIN,0,1) c:RegisterFlagEffect(11451566,RESET_CHAIN,0,1) end
local res=_Equip(p,c,...) local res=_Equip(p,c,...)
if c:IsHasEffect(EFFECT_EQUIP_LIMIT) then
c:ResetFlagEffect(11451566)
cm.deop2(e,0,Group.FromCards(c),0,0,e,0,0)
end
return res return res
end end
local _CRegisterEffect=Card.RegisterEffect local _CRegisterEffect=Card.RegisterEffect
......
...@@ -101,6 +101,10 @@ function cm.initial_effect(c) ...@@ -101,6 +101,10 @@ function cm.initial_effect(c)
Duel.Equip=function(p,c,...) Duel.Equip=function(p,c,...)
if not (c:IsControler(p) and c:IsLocation(LOCATION_SZONE)) then c:RegisterFlagEffect(11451409,RESET_CHAIN,0,1) c:RegisterFlagEffect(11451409,RESET_CHAIN,0,1) end if not (c:IsControler(p) and c:IsLocation(LOCATION_SZONE)) then c:RegisterFlagEffect(11451409,RESET_CHAIN,0,1) c:RegisterFlagEffect(11451409,RESET_CHAIN,0,1) end
local res=_Equip(p,c,...) local res=_Equip(p,c,...)
if c:IsHasEffect(EFFECT_EQUIP_LIMIT) then
c:ResetFlagEffect(11451409)
cm.desop21(e,0,Group.FromCards(c),0,0,e,0,0)
end
return res return res
end end
local _CRegisterEffect=Card.RegisterEffect local _CRegisterEffect=Card.RegisterEffect
......
...@@ -30,6 +30,10 @@ function cm.initial_effect(c) ...@@ -30,6 +30,10 @@ function cm.initial_effect(c)
Duel.Equip=function(p,c,...) Duel.Equip=function(p,c,...)
if not (c:IsControler(p) and c:IsLocation(LOCATION_SZONE)) and not c:IsHasEffect(EFFECT_EQUIP_LIMIT) then c:RegisterFlagEffect(11451848,RESET_CHAIN,0,1) c:RegisterFlagEffect(11451848,RESET_CHAIN,0,1) end if not (c:IsControler(p) and c:IsLocation(LOCATION_SZONE)) and not c:IsHasEffect(EFFECT_EQUIP_LIMIT) then c:RegisterFlagEffect(11451848,RESET_CHAIN,0,1) c:RegisterFlagEffect(11451848,RESET_CHAIN,0,1) end
local res=_Equip(p,c,...) local res=_Equip(p,c,...)
if c:IsHasEffect(EFFECT_EQUIP_LIMIT) then
c:ResetFlagEffect(11451848)
cm.desop2(e,0,Group.FromCards(c),0,0,e,0,0)
end
return res return res
end end
local _CRegisterEffect=Card.RegisterEffect local _CRegisterEffect=Card.RegisterEffect
...@@ -256,6 +260,7 @@ function cm.thcon2(e,tp,eg,ep,ev,re,r,rp) ...@@ -256,6 +260,7 @@ function cm.thcon2(e,tp,eg,ep,ev,re,r,rp)
local i=e:GetLabel() local i=e:GetLabel()
local ng=Duel.GetMatchingGroup(cm.clfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp,i) local ng=Duel.GetMatchingGroup(cm.clfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp,i)
local res=#Group.__band(ng,eg)>0 local res=#Group.__band(ng,eg)>0
--if #ng>0 then Debug.Message(i..ng:GetFirst():GetCode()..eg:GetFirst():GetCode()) end
if res then if res then
local cid=i+1 local cid=i+1
if tp==1 then cid=5-i end if tp==1 then cid=5-i end
...@@ -280,7 +285,7 @@ function cm.thtg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -280,7 +285,7 @@ function cm.thtg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler() local c=e:GetHandler()
if chkc then return false end if chkc then return false end
if chk==0 then return true end if chk==0 then return true end
e:GetHandler():ClearEffectRelation() --e:GetHandler():ClearEffectRelation()
local te=e:GetLabelObject() local te=e:GetLabelObject()
e:SetTarget(aux.FALSE) e:SetTarget(aux.FALSE)
te:SetTarget(aux.FALSE) te:SetTarget(aux.FALSE)
......
...@@ -60,6 +60,10 @@ function cm.initial_effect(c) ...@@ -60,6 +60,10 @@ function cm.initial_effect(c)
Duel.Equip=function(p,c,...) Duel.Equip=function(p,c,...)
if not c:IsOnField() and not c:IsHasEffect(EFFECT_EQUIP_LIMIT) then c:RegisterFlagEffect(m-4,RESET_CHAIN,0,1) end if not c:IsOnField() and not c:IsHasEffect(EFFECT_EQUIP_LIMIT) then c:RegisterFlagEffect(m-4,RESET_CHAIN,0,1) end
local res=_Equip(p,c,...) local res=_Equip(p,c,...)
if c:IsHasEffect(EFFECT_EQUIP_LIMIT) then
c:ResetFlagEffect(m-4)
Duel.RaiseEvent(Group.FromCards(c),EVENT_CUSTOM+m,e,0,0,0,0)
end
return res return res
end end
local _CRegisterEffect=Card.RegisterEffect local _CRegisterEffect=Card.RegisterEffect
......
...@@ -92,8 +92,7 @@ function cm.bkop(e,tp,eg,ep,ev,re,r,rp,c) ...@@ -92,8 +92,7 @@ function cm.bkop(e,tp,eg,ep,ev,re,r,rp,c)
if op==0 then if op==0 then
Duel.SendtoDeck(c,nil,0,REASON_EFFECT) Duel.SendtoDeck(c,nil,0,REASON_EFFECT)
Duel.BreakEffect() Duel.BreakEffect()
local num=Duel.GetFieldGroupCount(tp,LOCATION_DECK,0) local ug=Duel.GetFieldGroup(tp,LOCATION_DECK,0):Filter(cm.location,nil)
local ug=Duel.GetFieldGroup(tp,LOCATION_DECK,0):Sub(Duel.GetDecktopGroup(tp,num-1))
Duel.SendtoHand(ug,nil,REASON_EFFECT) Duel.SendtoHand(ug,nil,REASON_EFFECT)
elseif op==1 then elseif op==1 then
Duel.SendtoDeck(c,nil,1,REASON_EFFECT) Duel.SendtoDeck(c,nil,1,REASON_EFFECT)
...@@ -103,6 +102,9 @@ function cm.bkop(e,tp,eg,ep,ev,re,r,rp,c) ...@@ -103,6 +102,9 @@ function cm.bkop(e,tp,eg,ep,ev,re,r,rp,c)
end end
end end
end end
function cm.location(c)
return c:GetSequence()==0
end
--random --random
function getrand() function getrand()
local result=0 local result=0
......
...@@ -42,6 +42,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -42,6 +42,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end end
function cm.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
......
...@@ -34,7 +34,7 @@ function s.thfilter(c) ...@@ -34,7 +34,7 @@ function s.thfilter(c)
return c:IsCode(60000211) and c:IsAbleToHand() return c:IsCode(60000211) and c:IsAbleToHand()
end end
function s.spfilter(c,e,tp) function s.spfilter(c,e,tp)
return c:IsCode(60000211) and c:IsCanBeSpecialSummoned(e,0,tp,true,false) and (c:IsLocation(LOCATION_GRAVE) or (c:IsLocation(LOCATION_REMOVED) and c:IsFaceup())) return c:IsCode(60000211) and c:IsCanBeSpecialSummoned(e,0,tp,true,false) and (c:IsLocation(LOCATION_HAND) or (c:IsLocation(LOCATION_REMOVED) and c:IsFaceup()))
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 if chk==0 then
...@@ -54,7 +54,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,7 +54,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local b2=Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_HAND+LOCATION_REMOVED,0,1,nil,e,tp) and Duel.GetFlagEffect(tp,id+20000000)==0 local b2=Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_HAND+LOCATION_REMOVED,0,1,nil,e,tp) and Duel.GetFlagEffect(tp,id+20000000)==0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
if not b1 and not b2 then return end if not b1 and not b2 then return end
local op=aux.SelectFromOptions(tp,{b1,aux.Stringid(id,2)},{b2,aux.Stringid(id,3)}) local op=aux.SelectFromOptions(tp,{b1,aux.Stringid(id,1)},{b2,aux.Stringid(id,2)})
if op==1 then if op==1 then
Duel.RegisterFlagEffect(tp,id+10000000,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,id+10000000,RESET_PHASE+PHASE_END,0,1)
-- 检索效果 -- 检索效果
......
...@@ -53,7 +53,7 @@ function cm.thcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -53,7 +53,7 @@ function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.thop(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectYesNo(tp,aux.Stringid(id,4)) then if Duel.SelectYesNo(tp,aux.Stringid(m,4)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if #g>0 then if #g>0 then
......
...@@ -55,7 +55,7 @@ function cm.thcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -55,7 +55,7 @@ function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.thop(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectYesNo(tp,aux.Stringid(id,4)) then if Duel.SelectYesNo(tp,aux.Stringid(m,4)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if #g>0 then if #g>0 then
......
...@@ -20,6 +20,7 @@ function cm.initial_effect(c) ...@@ -20,6 +20,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_CHAINING) e2:SetCode(EVENT_CHAINING)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL) e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
e2:SetCondition(cm.discon) e2:SetCondition(cm.discon)
e2:SetCost(cm.discost) e2:SetCost(cm.discost)
e2:SetTarget(cm.distg) e2:SetTarget(cm.distg)
...@@ -31,12 +32,11 @@ function cm.discon(e,tp,eg,ep,ev,re,r,rp) ...@@ -31,12 +32,11 @@ function cm.discon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and Duel.IsChainNegatable(ev) return rp==1-tp and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and Duel.IsChainNegatable(ev)
end end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,m)==0 and Duel.GetFieldGroup(tp,LOCATION_DECK,0)>=4 end if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>=4 end
Duel.RegisterFlagEffect(tp,m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
end end
function cm.disop(e,tp,eg,ep,ev,re,r,rp) function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroup(tp,LOCATION_DECK,0)>=4 then if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>=4 then
local lg=Duel.GetDecktopGroup(tp,4) local lg=Duel.GetDecktopGroup(tp,4)
local g1=lg:Select(tp,1,1,nil):GetFirst() local g1=lg:Select(tp,1,1,nil):GetFirst()
local g2=lg:Select(1-tp,1,1,nil):GetFirst() local g2=lg:Select(1-tp,1,1,nil):GetFirst()
......
...@@ -112,7 +112,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -112,7 +112,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
g:AddCard(ac) g:AddCard(ac)
if g:GetClassCount(Card.GetRace)==g:GetCount() and g:GetClassCount(Card.GetAttribute)==g:GetCount() then if g:GetClassCount(Card.GetRace)==g:GetCount() and g:GetClassCount(Card.GetAttribute)==g:GetCount() then
cg:AddCard(ac) cg:AddCard(ac)
Debug.Message("1") --Debug.Message("1")
end end
g:RemoveCard(ac) g:RemoveCard(ac)
ac=dg:GetNext() ac=dg:GetNext()
......
...@@ -3,6 +3,7 @@ local cm,m,o=GetID() ...@@ -3,6 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH) e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
......
...@@ -38,7 +38,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -38,7 +38,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
te:UseCountLimit(tp,1,true) te:UseCountLimit(tp,1,true)
cm.ActivateCard(ec,tp,e) cm.ActivateCard(ec,tp,e)
if (not (ec:IsType(TYPE_CONTINUOUS) or ec:IsType(TYPE_FIELD) or ec:IsType(TYPE_EQUIP))) and ec:IsRelateToEffect(e) then if not (ec:IsType(TYPE_CONTINUOUS) or ec:IsType(TYPE_FIELD) or ec:IsType(TYPE_EQUIP)) then
Duel.SendtoGrave(ec,REASON_RULE) Duel.SendtoGrave(ec,REASON_RULE)
end end
end end
......
...@@ -9,12 +9,15 @@ function cm.initial_effect(c) ...@@ -9,12 +9,15 @@ function cm.initial_effect(c)
e11:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e11:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e11:SetCode(EVENT_SPSUMMON_SUCCESS) e11:SetCode(EVENT_SPSUMMON_SUCCESS)
e11:SetProperty(EFFECT_FLAG_DELAY) e11:SetProperty(EFFECT_FLAG_DELAY)
e11:SetRange(LOCATION_HAND+LOCATION_GRAVE) e11:SetRange(LOCATION_HAND)
e11:SetCountLimit(1,m+10000000) e11:SetCountLimit(1,m+10000000)
e11:SetCondition(cm.spcon) e11:SetCondition(cm.spcon)
e11:SetTarget(cm.sptg) e11:SetTarget(cm.sptg)
e11:SetOperation(cm.spop) e11:SetOperation(cm.spop)
c:RegisterEffect(e11) c:RegisterEffect(e11)
local e22=e11:Clone()
e22:SetCondition(cm.spcon2)
c:RegisterEffect(e22)
--search --search
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
--e3:SetDescription(aux.Stringid(m,4)) --e3:SetDescription(aux.Stringid(m,4))
...@@ -27,12 +30,18 @@ function cm.initial_effect(c) ...@@ -27,12 +30,18 @@ function cm.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function cm.cfilter(c,tp) function cm.cfilter(c,tp)
return c:IsSummonPlayer(1-tp) and (c:IsSummonLocation(LOCATION_EXTRA) or Duel.IsPlayerAffectedByEffect(tp,60010135)) return c:IsSummonPlayer(1-tp) --and (c:IsSummonLocation(LOCATION_EXTRA) or Duel.IsPlayerAffectedByEffect(tp,60010135))
end end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
return eg:IsExists(cm.cfilter,1,nil,tp) return eg:IsExists(cm.cfilter,1,nil,tp)
end end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
return eg:IsExists(cm.cfilter,1,nil,tp) and Duel.IsPlayerAffectedByEffect(tp,60010135)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sptg(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 e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
......
...@@ -28,6 +28,7 @@ function c60010077.initial_effect(c) ...@@ -28,6 +28,7 @@ function c60010077.initial_effect(c)
e2:SetOperation(c60010077.operation) e2:SetOperation(c60010077.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
-- --
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAINING) e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
...@@ -36,7 +37,7 @@ function c60010077.initial_effect(c) ...@@ -36,7 +37,7 @@ function c60010077.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c60010077.spcon(e,tp,eg,ep,ev,re,r,rp) function c60010077.spcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_FZONE,0,1,nil) return not Duel.IsExistingMatchingCard(aux.TRUE,e:GetHandlerPlayer(),LOCATION_FZONE,0,1,nil)
end end
function c60010077.filter(c,tp) function c60010077.filter(c,tp)
return c:IsCode(60010029) and c:IsType(TYPE_FIELD) and c:GetActivateEffect():IsActivatable(tp,true,true) return c:IsCode(60010029) and c:IsType(TYPE_FIELD) and c:GetActivateEffect():IsActivatable(tp,true,true)
......
...@@ -45,7 +45,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -45,7 +45,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if not aux.MustMaterialCheck(tc,tp,EFFECT_MUST_BE_XMATERIAL) then return end if not aux.MustMaterialCheck(tc,tp,EFFECT_MUST_BE_XMATERIAL) then return end
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) then return end if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.filter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc,tc:GetRank()+1) local g=Duel.SelectMatchingCard(tp,cm.filter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc,tc:GetLevel())
local sc=g:GetFirst() local sc=g:GetFirst()
if sc then if sc then
local mg=tc:GetOverlayGroup() local mg=tc:GetOverlayGroup()
......
--梦应归于何处 --梦应归于何处
function c60010129.initial_effect(c) function c60010129.initial_effect(c)
aux.AddCodeList(c,60010028) aux.AddCodeList(c,60010029)
aux.AddCodeList(c,60010128)
--Activate --Activate
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetCategory(CATEGORY_SEARCH) e0:SetCategory(CATEGORY_SEARCH)
...@@ -54,7 +55,7 @@ function c60010129.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,7 +55,7 @@ function c60010129.condition(e,tp,eg,ep,ev,re,r,rp)
return SpaceCheck[tp] return SpaceCheck[tp]
end end
function c60010129.thfilter(c) function c60010129.thfilter(c)
return c:IsCode(60010128) and c:IsAbleToHand() return c:IsCode(60010128,60010029) and c:IsAbleToHand()
end end
function c60010129.activate(e,tp,eg,ep,ev,re,r,rp) function c60010129.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c60010129.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c60010129.thfilter,tp,LOCATION_DECK,0,nil)
......
--命运从未公平 --命运从未公平
function c60010130.initial_effect(c) function c60010130.initial_effect(c)
aux.AddCodeList(c,60010029)
aux.AddCodeList(c,60010051) aux.AddCodeList(c,60010051)
--Activate --Activate
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
...@@ -56,7 +57,7 @@ function c60010130.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,7 +57,7 @@ function c60010130.condition(e,tp,eg,ep,ev,re,r,rp)
return SpaceCheck[tp] return SpaceCheck[tp]
end end
function c60010130.thfilter(c) function c60010130.thfilter(c)
return c:IsCode(60010051) and c:IsAbleToHand() return c:IsCode(60010051,60010029) and c:IsAbleToHand()
end end
function c60010130.activate(e,tp,eg,ep,ev,re,r,rp) function c60010130.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c60010130.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c60010130.thfilter,tp,LOCATION_DECK,0,nil)
......
...@@ -54,7 +54,7 @@ function c60010135.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,7 +54,7 @@ function c60010135.condition(e,tp,eg,ep,ev,re,r,rp)
return SpaceCheck[tp] return SpaceCheck[tp]
end end
function c60010135.thfilter(c) function c60010135.thfilter(c)
return c:IsCode(60010076) and c:IsAbleToHand() return c:IsCode(60010076,60010029) and c:IsAbleToHand()
end end
function c60010135.activate(e,tp,eg,ep,ev,re,r,rp) function c60010135.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c60010135.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c60010135.thfilter,tp,LOCATION_DECK,0,nil)
......
...@@ -60,7 +60,7 @@ function c60010136.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,7 +60,7 @@ function c60010136.condition(e,tp,eg,ep,ev,re,r,rp)
return SpaceCheck[tp] return SpaceCheck[tp]
end end
function c60010136.thfilter(c) function c60010136.thfilter(c)
return c:IsCode(60010056) and c:IsAbleToHand() return c:IsCode(60010056,60010029) and c:IsAbleToHand()
end end
function c60010136.activate(e,tp,eg,ep,ev,re,r,rp) function c60010136.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c60010136.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c60010136.thfilter,tp,LOCATION_DECK,0,nil)
......
--铭记于心的约定 --铭记于心的约定
function c60010137.initial_effect(c) function c60010137.initial_effect(c)
aux.AddCodeList(c,60010031) aux.AddCodeList(c,60010031)
aux.AddCodeList(c,60010029)
--Activate --Activate
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetCategory(CATEGORY_SEARCH) e0:SetCategory(CATEGORY_SEARCH)
...@@ -62,7 +63,7 @@ function c60010137.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -62,7 +63,7 @@ function c60010137.condition(e,tp,eg,ep,ev,re,r,rp)
return SpaceCheck[tp] return SpaceCheck[tp]
end end
function c60010137.thfilter(c) function c60010137.thfilter(c)
return c:IsCode(60010031) and c:IsAbleToHand() return c:IsCode(60010031,60010029) and c:IsAbleToHand()
end end
function c60010137.activate(e,tp,eg,ep,ev,re,r,rp) function c60010137.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c60010137.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c60010137.thfilter,tp,LOCATION_DECK,0,nil)
...@@ -84,7 +85,6 @@ function c60010137.drop(e,tp,eg,ep,ev,re,r,rp) ...@@ -84,7 +85,6 @@ function c60010137.drop(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetOperation(c60010137.draw) e1:SetOperation(c60010137.draw)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
...@@ -98,6 +98,7 @@ function c60010137.draw(e,tp,eg,ep,ev,re,r,rp) ...@@ -98,6 +98,7 @@ function c60010137.draw(e,tp,eg,ep,ev,re,r,rp)
Duel.SSet(tp,sg) Duel.SSet(tp,sg)
end end
end end
e:Reset()
end end
function c60010137.ownerfilter(c,tp) function c60010137.ownerfilter(c,tp)
return c:IsCode(60010031) and c:IsFaceup() and c:IsSummonPlayer(tp) return c:IsCode(60010031) and c:IsFaceup() and c:IsSummonPlayer(tp)
...@@ -106,13 +107,13 @@ function c60010137.decon(e,tp,eg,ep,ev,re,r,rp) ...@@ -106,13 +107,13 @@ function c60010137.decon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c60010137.ownerfilter,1,nil,tp) return eg:IsExists(c60010137.ownerfilter,1,nil,tp)
end end
function c60010137.detg(e,tp,eg,ep,ev,re,r,rp,chk) function c60010137.detg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_MZONE,1,nil) end
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil) local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end end
function c60010137.deop(e,tp,eg,ep,ev,re,r,rp) function c60010137.deop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil) local g=Duel.SelectMatchingCard(tp,nil,tp,0,LOCATION_MZONE,1,1,nil)
if #g>0 then if #g>0 then
Duel.HintSelection(g) Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT) Duel.Destroy(g,REASON_EFFECT)
......
...@@ -61,7 +61,7 @@ function c60010138.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,7 +61,7 @@ function c60010138.condition(e,tp,eg,ep,ev,re,r,rp)
return SpaceCheck[tp] return SpaceCheck[tp]
end end
function c60010138.thfilter(c) function c60010138.thfilter(c)
return c:IsCode(60010058) and c:IsAbleToHand() return c:IsCode(60010058,60010029) and c:IsAbleToHand()
end end
function c60010138.activate(e,tp,eg,ep,ev,re,r,rp) function c60010138.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c60010138.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c60010138.thfilter,tp,LOCATION_DECK,0,nil)
......
--片刻,留在眼底 --片刻,留在眼底
function c60010139.initial_effect(c) function c60010139.initial_effect(c)
aux.AddCodeList(c,60010078) aux.AddCodeList(c,60010078)
aux.AddCodeList(c,60010029)
--Activate --Activate
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetCategory(CATEGORY_SEARCH) e0:SetCategory(CATEGORY_SEARCH)
...@@ -54,7 +55,7 @@ function c60010139.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,7 +55,7 @@ function c60010139.condition(e,tp,eg,ep,ev,re,r,rp)
return SpaceCheck[tp] return SpaceCheck[tp]
end end
function c60010139.thfilter(c) function c60010139.thfilter(c)
return c:IsCode(60010078) and c:IsAbleToHand() return c:IsCode(60010078,60010029) and c:IsAbleToHand()
end end
function c60010139.activate(e,tp,eg,ep,ev,re,r,rp) function c60010139.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c60010139.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c60010139.thfilter,tp,LOCATION_DECK,0,nil)
......
--烦恼着,幸福着 --烦恼着,幸福着
function c60010140.initial_effect(c) function c60010140.initial_effect(c)
aux.AddCodeList(c,60010059) aux.AddCodeList(c,60010059)
aux.AddCodeList(c,60010029)
--Activate --Activate
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetCategory(CATEGORY_SEARCH) e0:SetCategory(CATEGORY_SEARCH)
...@@ -63,7 +64,7 @@ function c60010140.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,7 +64,7 @@ function c60010140.condition(e,tp,eg,ep,ev,re,r,rp)
return SpaceCheck[tp] return SpaceCheck[tp]
end end
function c60010140.thfilter(c) function c60010140.thfilter(c)
return c:IsCode(60010059) and c:IsAbleToHand() return c:IsCode(60010059,60010029) and c:IsAbleToHand()
end end
function c60010140.activate(e,tp,eg,ep,ev,re,r,rp) function c60010140.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c60010140.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c60010140.thfilter,tp,LOCATION_DECK,0,nil)
......
...@@ -63,14 +63,8 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,14 +63,8 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
local fid=e:GetHandler():GetFieldID() local fid=e:GetHandler():GetFieldID()
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,fid) tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,fid)
else local fid=e:GetHandler():GetFieldID()
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) tc:RegisterFlagEffect(595626,RESET_EVENT+RESETS_STANDARD,0,1,fid)
end
end
c:ResetFlagEffect(1)
elseif c:GetFlagEffect(2)>0 then
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP,0x60)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
...@@ -81,6 +75,14 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -81,6 +75,14 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCondition(cm.tgcon) e1:SetCondition(cm.tgcon)
e1:SetOperation(cm.tgop) e1:SetOperation(cm.tgop)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
else
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)
end
end
c:ResetFlagEffect(1)
elseif c:GetFlagEffect(2)>0 then
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP,0x60)
c:ResetFlagEffect(2) c:ResetFlagEffect(2)
elseif c:GetFlagEffect(3)>0 then elseif c:GetFlagEffect(3)>0 then
local g=Duel.SelectMatchingCard(tp,cm.lfilter,tp,LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.lfilter,tp,LOCATION_EXTRA,0,1,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