Commit c0cfb1d1 authored by TanakaKotoha's avatar TanakaKotoha

fix

parent a8819f6f
...@@ -6,6 +6,7 @@ function cm.initial_effect(c) ...@@ -6,6 +6,7 @@ function cm.initial_effect(c)
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE) e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_TRAP_ACT_IN_HAND) e0:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e0:SetCondition(cm.handcon)
c:RegisterEffect(e0) c:RegisterEffect(e0)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -30,7 +31,8 @@ function cm.initial_effect(c) ...@@ -30,7 +31,8 @@ function cm.initial_effect(c)
end end
function cm.handcon(e,tp,eg,ep,ev,re,r,rp) function cm.handcon(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsChainNegatable(ev) then return false end if not Duel.IsChainNegatable(ev) then return false end
return local res,teg,tep,tev,tre,tr,trp=Duel.CheckEvent(EVENT_CHAINING,true)
return tre:IsHasCategory(CATEGORY_DISABLE) or tre:IsHasCategory(CATEGORY_NEGATE)
end end
function cm.syncost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.syncost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToRemoveAsCost() end if chk==0 then return e:GetHandler():IsAbleToRemoveAsCost() end
......
...@@ -16,13 +16,21 @@ function cm.initial_effect(c) ...@@ -16,13 +16,21 @@ function cm.initial_effect(c)
e1:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0xa82)) e1:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0xa82))
e1:SetValue(1) e1:SetValue(1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
Duel.EnableGlobalFlag(GLOBALFLAG_BRAINWASHING_CHECK) -- Duel.EnableGlobalFlag(GLOBALFLAG_BRAINWASHING_CHECK)
--e2 --e2
-- local e2=Effect.CreateEffect(c)
-- e2:SetCategory(CATEGORY_CONTROL)
-- e2:SetType(EFFECT_TYPE_FIELD)
-- e2:SetTarget(cm.target)
-- e2:SetOperation(cm.activate)
-- c:RegisterEffect(e2)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_CONTROL)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetTarget(cm.target) e2:SetCode(EFFECT_REMOVE_BRAINWASHING)
e2:SetOperation(cm.activate) e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e2:SetRange(LOCATION_SZONE)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0xa82))
c:RegisterEffect(e2) c:RegisterEffect(e2)
--disable spsummon --disable spsummon
local e9=Effect.CreateEffect(c) local e9=Effect.CreateEffect(c)
...@@ -48,64 +56,67 @@ function cm.initial_effect(c) ...@@ -48,64 +56,67 @@ function cm.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
--e2 --e2
function cm.filter(c) --function cm.filter(c)
return c:GetControler()~=c:GetOwner() and c:IsSetCard(0xa82) -- return c:GetControler()~=c:GetOwner() and c:IsSetCard(0xa82)
end --end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) --function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end -- if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
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 g=Duel.GetFieldGroup(tp,LOCATION_MZONE,LOCATION_MZONE) -- local g=Duel.GetFieldGroup(tp,LOCATION_MZONE,LOCATION_MZONE)
local tg=Group.CreateGroup() -- local tg=Group.CreateGroup()
local tc=g:GetFirst() -- local tc=g:GetFirst()
while tc do -- while tc do
if not tc:IsImmuneToEffect(e) and tc:GetFlagEffect(m)==0 then -- if not tc:IsImmuneToEffect(e) and tc:GetFlagEffect(m)==0 then
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1) -- tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1)
tg:AddCard(tc) -- - tg:AddCard(tc)
end -- end
tc=g:GetNext() -- tc=g:GetNext()
end -- end
tg:KeepAlive() -- tg:KeepAlive()
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_REMOVE_BRAINWASHING) -- e1:SetCode(EFFECT_REMOVE_BRAINWASHING)
e1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE) -- e1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e1:SetTarget(aux.TargetEqualFunction(Card.GetFlagEffect,1,m)) -- e1:SetTarget(aux.TargetEqualFunction(Card.GetFlagEffect,1,m))
e1:SetLabelObject(tg) -- e1:SetLabelObject(tg)
Duel.RegisterEffect(e1,tp) -- Duel.RegisterEffect(e1,tp)
--force adjust --force adjust
local e2=Effect.CreateEffect(e:GetHandler()) -- local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) -- e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVED) --- e2:SetCode(EVENT_CHAIN_SOLVED)
e2:SetProperty(EFFECT_FLAG_DELAY) -- e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetLabelObject(e1) -- e2:SetLabelObject(e1)
Duel.RegisterEffect(e2,tp) -- Duel.RegisterEffect(e2,tp)
--reset --reset
local e3=Effect.CreateEffect(e:GetHandler()) -- local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) -- e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_SOLVED) -- e3:SetCode(EVENT_CHAIN_SOLVED)
e3:SetLabelObject(e2) -- e3:SetLabelObject(e2)
e3:SetLabel(Duel.GetChainInfo(0,CHAININFO_CHAIN_ID)) -- e3:SetLabel(Duel.GetChainInfo(0,CHAININFO_CHAIN_ID))
e3:SetOperation(cm.reset) -- e3:SetOperation(cm.reset)
Duel.RegisterEffect(e3,tp) -- Duel.RegisterEffect(e3,tp)
end --end
function cm.reset(e,tp,eg,ep,ev,re,r,rp) --function cm.reset(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetChainInfo(ev,CHAININFO_CHAIN_ID)==e:GetLabel() then -- if Duel.GetChainInfo(ev,CHAININFO_CHAIN_ID)==e:GetLabel() then
local e2=e:GetLabelObject() -- local e2=e:GetLabelObject()
local e1=e2:GetLabelObject() -- local e1=e2:GetLabelObject()
local tg=e1:GetLabelObject() -- local tg=e1:GetLabelObject()
for tc in aux.Next(tg) do -- for tc in aux.Next(tg) do
tc:ResetFlagEffect(m) -- tc:ResetFlagEffect(m)
end -- end
tg:DeleteGroup() -- tg:DeleteGroup()
e1:Reset() -- e1:Reset()
e2:Reset() -- e2:Reset()
e:Reset() -- e:Reset()
end -- end
end --end
--e9 --e9
--function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
-- return c:GetRace()~=(RACE_FAIRY or RACE_FIEND)
--end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp) function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return c:GetRace()~=(RACE_FAIRY or RACE_FIEND) return not (c:IsRace(RACE_FAIRY) or c:IsRace(RACE_FIEND))
end end
--e3 --e3
function cm.cfilter(c,tp,rp) function cm.cfilter(c,tp,rp)
......
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