Commit 51860c27 authored by Grajade's avatar Grajade

Update c86379654.lua

parent e0938fbb
Pipeline #9331 passed with stage
in 2 minutes and 3 seconds
...@@ -111,46 +111,57 @@ function c86379654.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -111,46 +111,57 @@ function c86379654.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,c86379654.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c86379654.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
if Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then if Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then
local rc=g:GetFirst() local rc=Duel.GetOperatedGroup():GetFirst()
local tg=rc:GetColumnGroup() local tg=rc:GetColumnGroup()
tg:AddCard(rc) tg:AddCard(rc)
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT+REASON_TEMPORARY) if Duel.Remove(tg,POS_FACEUP,REASON_EFFECT+REASON_TEMPORARY)<1 then return end
local fid=c:GetFieldID()
local rg=Duel.GetOperatedGroup() local rg=Duel.GetOperatedGroup()
if rg:GetCount()>0 then for tc in aux.Next(rg) do
rg:KeepAlive() tc:RegisterFlagEffect(86379655,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,2,fid)
for tc in aux.Next(rg) do
tc:RegisterFlagEffect(86379654,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(86379655,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,2,fid)
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(rg)
e1:SetCondition(c86379654.con1_2)
e1:SetOperation(c86379654.op1_2)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
end end
rg:KeepAlive()
local ct=Duel.GetTurnCount()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid,ct)
e1:SetLabelObject(rg)
e1:SetCondition(c86379654.con1_2)
e1:SetOperation(c86379654.op1_2)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
end end
end end
end end
function c86379654.refilter(c)
return c:GetFlagEffect(86379654)>0
end
function c86379654.con1_2(e,tp,eg,ep,ev,re,r,rp) function c86379654.con1_2(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject() local fid,ct=e:GetLabel()
local sg=g:Filter(c86379654.refilter,nil) return Duel.GetTurnCount()~=ct
return sg:GetCount()<=0
end end
function c86379654.refilter2(c,fid) function c86379654.refilter2(c,fid)
return c:GetFlagEffect(86379655)>0 return c:GetFlagEffect(86379655)>0
and c:GetFlagEffectLabel(86379655)==fid and c:GetFlagEffectLabel(86379655)==fid
end end
function c86379654.op1_2(e,tp,eg,ep,ev,re,r,rp) function c86379654.op1_2(e,tp,eg,ep,ev,re,r,rp)
local fid,oil=e:GetLabel()
local g=e:GetLabelObject() local g=e:GetLabelObject()
local sg=g:Filter(c86379654.refilter2,nil,e:GetLabel()) local sg=g:Filter(c86379654.refilter2,nil,fid)
for i=1,2 do
local p=tp
if i==2 then p=1-tp end
if sg:GetCount()<1 then return end
local lg=sg:Filter(Card.IsPreviousControler,nil,p)
local ft=Duel.GetLocationCount(p,LOCATION_MZONE)
if lg and ft>0 and ft<lg:GetCount() then
Duel.Hint(HINT_SELECTMSG,p,aux.Stringid(86379654,4))
local rg=lg:Select(p,ft,ft,nil)
for tc in aux.Next(rg) do
Duel.ReturnToField(tc)
sg:RemoveCard(tc)
end
end
end
if sg:GetCount()<1 then return end if sg:GetCount()<1 then return end
for tc in aux.Next(sg) do for tc in aux.Next(sg) do
Duel.ReturnToField(tc) Duel.ReturnToField(tc)
......
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