Commit b20d9921 authored by POLYMER's avatar POLYMER

fix

parent c9bf0659
......@@ -383,7 +383,7 @@ function cm.sptg(e,te,tp)
return te:GetHandler()==e:GetHandler()
end
function cm.sfilter(c,tp)
return c:IsFaceup() or c:IsControler(tp) or c:GetFlagEffect(11451031)>0
return c:IsFaceup() or (c:IsControler(tp) and (c:IsPublic() or not c:IsLocation(LOCATION_DECK))) or c:GetFlagEffect(11451031)>0
end
function cm.spcop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -412,7 +412,7 @@ function cm.sptg(e,c,tp)
return c==e:GetHandler()
end
function cm.sfilter(c,tp)
return c:IsFaceup() or c:IsControler(tp) or c:GetFlagEffect(11451031)>0
return c:IsFaceup() or (c:IsControler(tp) and (c:IsPublic() or not c:IsLocation(LOCATION_DECK))) or c:GetFlagEffect(11451031)>0
end
function cm.spcop(e,tp,eg,ep,ev,re,r,rp,c)
local c=c or e:GetHandler()
......
......@@ -410,7 +410,7 @@ function cm.sptg(e,c,tp)
return c==e:GetHandler()
end
function cm.sfilter(c,tp)
return c:IsFaceup() or c:IsControler(tp) or c:GetFlagEffect(11451031)>0
return c:IsFaceup() or (c:IsControler(tp) and (c:IsPublic() or not c:IsLocation(LOCATION_DECK))) or c:GetFlagEffect(11451031)>0
end
function cm.spcop(e,tp,eg,ep,ev,re,r,rp,c)
local c=c or e:GetHandler()
......
......@@ -379,7 +379,7 @@ function cm.sptg(e,c,tp)
return c==e:GetHandler()
end
function cm.sfilter(c,tp)
return c:IsFaceup() or c:IsControler(tp) or c:GetFlagEffect(11451031)>0
return c:IsFaceup() or (c:IsControler(tp) and (c:IsPublic() or not c:IsLocation(LOCATION_DECK))) or c:GetFlagEffect(11451031)>0
end
function cm.spcop(e,tp,eg,ep,ev,re,r,rp,c)
local c=c or e:GetHandler()
......
......@@ -31,7 +31,18 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetTarget(cm.distg)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetOperation(cm.disop)
Duel.RegisterEffect(e2,tp)
end
function cm.distg(e,c)
return c:IsType(TYPE_EFFECT) or c:GetOriginalType()&TYPE_EFFECT~=0
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
local tl=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)
if bit.band(tl,LOCATION_MZONE)~=0 and re:IsActiveType(TYPE_MONSTER) then
Duel.NegateEffect(ev)
end
end
\ No newline at end of file
......@@ -32,7 +32,7 @@ function s.synfilter(c,mg)
end
function s.spfilter(c,ec)
local mg=Group.FromCards(c,ec)
return c:IsType(TYPE_MONSTER) and Duel.IsExistingMatchingCard(s.synfilter,tp,LOCATION_EXTRA,0,1,nil,mg)
return c:IsType(TYPE_MONSTER) and Duel.IsExistingMatchingCard(s.synfilter,c:GetControler(),LOCATION_EXTRA,0,1,nil,mg)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return e:GetHandler():IsLevelAbove(1) end
......
......@@ -22,6 +22,7 @@ function s.initial_effect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1,id+o)
e2:SetTarget(s.sptg)
e2:SetOperation(s.spop)
......
--救世之章 强能
local s,id,o=GetID()
function s.initial_effect(c)
--synchro summon
aux.AddSynchroMixProcedure(c,s.mfilter,nil,nil,aux.FilterBoolFunction(Card.IsType,TYPE_MONSTER),1,99)
c:EnableReviveLimit()
--destroy
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(60461804,0))
......
......@@ -47,7 +47,7 @@ function c67201509.target(e,tp,eg,ep,ev,re,r,rp,chk)
local mg2=Duel.GetMatchingGroup(c67201509.mfilter,tp,LOCATION_SZONE+LOCATION_FZONE,0,nil)
aux.RCheckAdditional=c67201509.rcheck
aux.RGCheckAdditional=c67201509.rgcheck
local res=Duel.IsExistingMatchingCard(c67201509.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil,c67201509.filter,e,tp,mg,mg2,Card.GetLevel,"Greater")
local res=Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil,c67201509.filter,e,tp,mg,mg2,Card.GetLevel,"Greater")
aux.RCheckAdditional=nil
aux.RGCheckAdditional=nil
return res
......
......@@ -49,10 +49,10 @@ end
function c67201510.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg=Duel.GetRitualMaterial(tp):Filter(c67201510.matfilter,nil)
local mg2=Duel.GetMatchingGroup(c67201510.mfilter,tp,LOCATION_SZONE+LOCATION_FZONE,0,nil)
local mg2=Duel.GetMatchingGroup(c67201510.mfilter,tp,LOCATION_SZONE+LOCATION_FZONE,0,nil,e)
aux.RCheckAdditional=c67201510.rcheck
aux.RGCheckAdditional=c67201510.rgcheck
local res=Duel.IsExistingMatchingCard(c67201510.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil,c67201510.filter,e,tp,mg,mg2,Card.GetLevel,"Greater")
local res=Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil,c67201510.filter,e,tp,mg,mg2,Card.GetLevel,"Greater")
aux.RCheckAdditional=nil
aux.RGCheckAdditional=nil
return res
......
......@@ -41,7 +41,7 @@ function c67201512.target(e,tp,eg,ep,ev,re,r,rp,chk)
local mg2=Duel.GetMatchingGroup(c67201512.mfilter,tp,LOCATION_SZONE+LOCATION_FZONE,0,nil)
aux.RCheckAdditional=c67201512.rcheck
aux.RGCheckAdditional=c67201512.rgcheck
local res=Duel.IsExistingMatchingCard(c67201512.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil,c67201512.filter,e,tp,mg,mg2,Card.GetLevel,"Greater")
local res=Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil,c67201512.filter,e,tp,mg,mg2,Card.GetLevel,"Greater")
aux.RCheckAdditional=nil
aux.RGCheckAdditional=nil
return res
......
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