Commit 8bb4bcb5 authored by POLYMER's avatar POLYMER

fix

parent 209dfbda
......@@ -2,11 +2,12 @@
local cm,m=GetID()
function cm.initial_effect(c)
--effect1
local custom_code=cm.RegisterMergedEvent_ToSingleCard(c,m,EVENT_TO_GRAVE)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCode(custom_code)
e1:SetRange(LOCATION_HAND)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(2,m)
......@@ -14,12 +15,17 @@ function cm.initial_effect(c)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--[[local e1x=e1:Clone()
e1x:SetCode(EVENT_TO_GRAVE)
e1x:SetCondition(aux.FALSE)
c:RegisterEffect(e1x)--]]
--effect2
local custom_code2=cm.RegisterMergedEvent_ToSingleCard(c,m,EVENT_TO_HAND)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_HAND)
e2:SetCode(custom_code2)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(2,m)
......@@ -39,9 +45,113 @@ function cm.initial_effect(c)
e6:SetValue(0x6d)
c:RegisterEffect(e6)
end
function cm.RegisterMergedEvent_ToSingleCard(c,code,events)
local g=Group.CreateGroup()
g:KeepAlive()
local mt=getmetatable(c)
local seed=0
if type(events) == "table" then
for _, event in ipairs(events) do
seed = seed + event
end
else
seed = events
end
while(mt[seed]==true) do
seed = seed + 1
end
mt[seed]=true
local event_code_single = (code ~ (seed << 16)) | EVENT_CUSTOM
if type(events) == "table" then
for _, event in ipairs(events) do
cm.RegisterMergedEvent_ToSingleCard_AddOperation(c,g,event,event_code_single)
end
else
cm.RegisterMergedEvent_ToSingleCard_AddOperation(c,g,events,event_code_single)
end
--listened to again
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e3:SetCode(EVENT_MOVE)
e3:SetLabelObject(g)
e3:SetOperation(cm.ThisCardMovedToPublicResetCheck_ToSingleCard)
c:RegisterEffect(e3)
return event_code_single
end
function cm.RegisterMergedEvent_ToSingleCard_AddOperation(c,g,event,event_code_single)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(event)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetRange(0xff)
e1:SetLabel(event_code_single)
e1:SetLabelObject(g)
e1:SetOperation(cm.MergedDelayEventCheck1_ToSingleCard)
c:RegisterEffect(e1)
--[[local _GetCode=Effect.GetCode
function Effect.GetCode(e,...)
return _GetCode(e,...)==event_code_single and event or _GetCode(e,...)
end--]]
local ec={
EVENT_CHAIN_ACTIVATING,
EVENT_CHAINING,
EVENT_ATTACK_ANNOUNCE,
EVENT_BREAK_EFFECT,
EVENT_CHAIN_SOLVING,
EVENT_CHAIN_SOLVED,
EVENT_CHAIN_END,
EVENT_SUMMON,
EVENT_SPSUMMON
}
for _,code in ipairs(ec) do
local ce=e1:Clone()
ce:SetCode(code)
ce:SetOperation(cm.MergedDelayEventCheck2_ToSingleCard)
c:RegisterEffect(ce)
end
end
function cm.MergedDelayEventCheck1_ToSingleCard(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local c=e:GetOwner()
g:Merge(eg)
if Duel.CheckEvent(EVENT_MOVE) then
local _,meg=Duel.CheckEvent(EVENT_MOVE,true)
if meg:IsContains(c) and (c:IsFaceup() or c:IsPublic()) then
g:Clear()
end
end
if Duel.GetCurrentChain()==0 and #g>0 then
local _eg=g:Clone()
Duel.RaiseEvent(_eg,e:GetLabel(),re,r,rp,ep,ev)
g:Clear()
end
end
function cm.MergedDelayEventCheck2_ToSingleCard(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if Duel.CheckEvent(EVENT_MOVE) then
local _,meg=Duel.CheckEvent(EVENT_MOVE,true)
local c=e:GetOwner()
if meg:IsContains(c) and (c:IsFaceup() or c:IsPublic()) then
g:Clear()
end
end
if #g>0 then
local _eg=g:Clone()
Duel.RaiseEvent(_eg,e:GetLabel(),re,r,rp,ep,ev)
g:Clear()
end
end
function cm.ThisCardMovedToPublicResetCheck_ToSingleCard(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetOwner()
local g=e:GetLabelObject()
if c:IsFaceup() or c:IsPublic() then
g:Clear()
end
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local num=eg:FilterCount(Card.IsType,nil,TYPE_MONSTER)
return rp==1-tp and num>=1
return num>=1 and rp==1-tp
end
function cm.tgfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsLocation(LOCATION_GRAVE)
......
......@@ -16,7 +16,7 @@ function cm.initial_effect(c)
--effect2
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetCategory(CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_CHAIN_SOLVED)
e2:SetRange(LOCATION_GRAVE)
......@@ -112,7 +112,7 @@ function cm.ngtg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_NEGATE,nil,1,0,0)
end
function cm.ngop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
--if not e:GetHandler():IsRelateToEffect(e) then return end
local list={}
for i=1,ev do
local te,tgp=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER)
......@@ -122,7 +122,7 @@ function cm.ngop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,1))
local num=Duel.AnnounceNumber(tp,table.unpack(list))
local te=Duel.GetChainInfo(num,CHAININFO_TRIGGERING_EFFECT)
if Duel.NegateActivation(num) and te:GetHandler():IsDestructable() and e:GetHandler():IsRelateToEffect(e) then
if Duel.NegateActivation(num) and te:GetHandler():IsRelateToEffect(te) and te:GetHandler():IsDestructable() and e:GetHandler():IsRelateToEffect(e) then
local dg=Group.FromCards(e:GetHandler(),te:GetHandler())
Duel.Destroy(dg,REASON_EFFECT)
end
......@@ -139,7 +139,7 @@ end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local num=e:GetLabel()
if chk==0 then return (num>=2 or (Duel.IsPlayerAffectedByEffect(tp,11451482) and num>=1)) and not Duel.IsPlayerAffectedByEffect(tp,59822133) and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) and c:GetFlagEffect(m)==0 end
if chk==0 then return (num>=2 or (Duel.IsPlayerAffectedByEffect(tp,11451482) and num>=1)) and c:IsAbleToHand() and Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end --and not Duel.IsPlayerAffectedByEffect(tp,59822133) and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) and c:GetFlagEffect(m)==0 end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
if Duel.IsPlayerAffectedByEffect(tp,11451482) then
if num>=2 then
......@@ -154,15 +154,24 @@ function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.ResetFlagEffect(tp,11451481)
end
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_HAND+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),2,PLAYER_ALL,LOCATION_ONFIELD+c:GetLocation())
--Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_HAND+LOCATION_GRAVE)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToHand,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
local tc=g:GetFirst()
if not tc then return end
local rg=Group.FromCards(c,tc)
Duel.SendtoHand(rg,nil,REASON_EFFECT)
--[[local c=e:GetHandler()
if Duel.IsPlayerAffectedByEffect(tp,59822133) or Duel.GetLocationCount(tp,LOCATION_MZONE)<2 or not c:IsRelateToEffect(e) or not c:IsCanBeSpecialSummoned(e,0,tp,false,false) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 then
g:AddCard(c)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end--]]
end
\ No newline at end of file
--魔人★双子使徒 小雪
local cm,m=GetID()
function cm.initial_effect(c)
Duel.EnableGlobalFlag(GLOBALFLAG_DETACH_EVENT)
--Duel.EnableGlobalFlag(GLOBALFLAG_DETACH_EVENT)
--effect1
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_REMOVE)
......@@ -16,7 +16,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_DETACH_MATERIAL)
e3:SetCode(EVENT_TO_GRAVE)
e3:SetRange(LOCATION_GRAVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(2,m)
......@@ -84,10 +84,10 @@ function cm.reop(e,tp,eg,ep,ev,re,r,rp)
Duel.Remove(sg,POS_FACEUP,REASON_EFFECT)
end
function cm.thfilter(c,tp)
return c:GetPreviousControler()==tp and c:IsPreviousLocation(LOCATION_OVERLAY)
return c:IsPreviousLocation(LOCATION_OVERLAY) --and c:GetPreviousControler()==tp
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.thfilter,1,1,nil,tp) --and not eg:IsContains(e:GetHandler())
return eg:IsExists(cm.thfilter,1,1,nil,tp) and not eg:IsContains(e:GetHandler())
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,0,LOCATION_ONFIELD)
......
......@@ -30,6 +30,24 @@ function cm.initial_effect(c)
ge4:SetLabelObject(ge3)
ge4:SetOperation(cm.checkop4)
Duel.RegisterEffect(ge4,0)
local ec={
EVENT_CHAIN_ACTIVATING,
EVENT_CHAINING,
EVENT_ATTACK_ANNOUNCE,
EVENT_BREAK_EFFECT,
EVENT_CHAIN_SOLVING,
EVENT_CHAIN_SOLVED,
EVENT_CHAIN_END,
EVENT_SUMMON,
EVENT_SPSUMMON
}
for _,code in ipairs(ec) do
local ce=ge3:Clone()
ce:SetCode(code)
ce:SetLabelObject(ge3)
ce:SetOperation(cm.checkop31)
Duel.RegisterEffect(ce,0)
end
end
end
function cm.checkop3(e,tp,eg,ep,ev,re,r,rp)
......@@ -37,7 +55,6 @@ function cm.checkop3(e,tp,eg,ep,ev,re,r,rp)
for tc in aux.Next(g) do
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,e:GetLabel())
end
e:SetLabel(e:GetLabel()+1)
end
function cm.checkop4(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
......@@ -47,6 +64,10 @@ function cm.checkop4(e,tp,eg,ep,ev,re,r,rp)
end
te:SetLabel(te:GetLabel()+1)
end
function cm.checkop31(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
te:SetLabel(te:GetLabel()+1)
end
function cm.fieldid(c)
return c:GetFlagEffectLabel(m) or -1
end
......
......@@ -18,6 +18,24 @@ function cm.initial_effect(c)
ge3:SetCode(EVENT_TO_GRAVE)
ge3:SetOperation(cm.checkop3)
Duel.RegisterEffect(ge3,0)
local ec={
EVENT_CHAIN_ACTIVATING,
EVENT_CHAINING,
EVENT_ATTACK_ANNOUNCE,
EVENT_BREAK_EFFECT,
EVENT_CHAIN_SOLVING,
EVENT_CHAIN_SOLVED,
EVENT_CHAIN_END,
EVENT_SUMMON,
EVENT_SPSUMMON
}
for _,code in ipairs(ec) do
local ce=ge3:Clone()
ce:SetCode(code)
ce:SetLabelObject(ge3)
ce:SetOperation(cm.checkop31)
Duel.RegisterEffect(ce,0)
end
end
end
function cm.checkop3(e,tp,eg,ep,ev,re,r,rp)
......@@ -25,7 +43,10 @@ function cm.checkop3(e,tp,eg,ep,ev,re,r,rp)
for tc in aux.Next(g) do
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,e:GetLabel())
end
e:SetLabel(e:GetLabel()+1)
end
function cm.checkop31(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
te:SetLabel(te:GetLabel()+1)
end
function cm.fieldid(c)
return c:GetFlagEffectLabel(m)
......
......@@ -16,16 +16,18 @@ function cm.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetRange(LOCATION_GRAVE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetCode(m)
c:RegisterEffect(e2)
local custom_code=cm.RegisterMergedEvent_ToSingleCard(c,m,{EVENT_LEAVE_FIELD,EVENT_LEAVE_GRAVE,EVENT_MOVE,EVENT_CUSTOM+m+1})
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_LEAVE_FIELD)
e4:SetCode(custom_code)
e4:SetRange(0xff)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetOperation(cm.leaveop)
c:RegisterEffect(e4)
local e5=e4:Clone()
--[[local e5=e4:Clone()
e5:SetCode(EVENT_LEAVE_GRAVE)
c:RegisterEffect(e5)
local e6=e4:Clone()
......@@ -33,7 +35,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e6)
local e7=e4:Clone()
e7:SetCode(EVENT_CUSTOM+m+1)
c:RegisterEffect(e7)
c:RegisterEffect(e7)--]]
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
......@@ -67,6 +69,106 @@ function cm.initial_effect(c)
end
end
end
function cm.RegisterMergedEvent_ToSingleCard(c,code,events)
local g=Group.CreateGroup()
g:KeepAlive()
local mt=getmetatable(c)
local seed=0
if type(events) == "table" then
for _, event in ipairs(events) do
seed = seed + event
end
else
seed = events
end
while(mt[seed]==true) do
seed = seed + 1
end
mt[seed]=true
local event_code_single = (code ~ (seed << 16)) | EVENT_CUSTOM
if type(events) == "table" then
for _, event in ipairs(events) do
cm.RegisterMergedEvent_ToSingleCard_AddOperation(c,g,event,event_code_single)
end
else
cm.RegisterMergedEvent_ToSingleCard_AddOperation(c,g,events,event_code_single)
end
return event_code_single
end
function cm.RegisterMergedEvent_ToSingleCard_AddOperation(c,g,event,event_code_single)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(event)
e1:SetValue(event)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetRange(0xff)
e1:SetLabel(event_code_single)
e1:SetLabelObject(g)
e1:SetOperation(cm.MergedDelayEventCheck1_ToSingleCard)
c:RegisterEffect(e1)
--[[local _GetCode=Effect.GetCode
function Effect.GetCode(e,...)
return _GetCode(e,...)==event_code_single and event or _GetCode(e,...)
end--]]
local ec={
EVENT_CHAIN_ACTIVATING,
EVENT_CHAINING,
EVENT_ATTACK_ANNOUNCE,
EVENT_BREAK_EFFECT,
EVENT_CHAIN_SOLVING,
EVENT_CHAIN_SOLVED,
EVENT_CHAIN_END,
EVENT_SUMMON,
EVENT_SPSUMMON
}
for _,code in ipairs(ec) do
local ce=e1:Clone()
ce:SetCode(code)
ce:SetOperation(cm.MergedDelayEventCheck2_ToSingleCard)
c:RegisterEffect(ce)
end
end
function cm.MergedDelayEventCheck1_ToSingleCard(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local c=e:GetOwner()
g:Merge(eg)
if Duel.GetCurrentChain()==0 and #g>0 then
local _eg=g:Clone()
if g:IsContains(c) and (c:IsFaceup() or c:IsPreviousPosition(POS_FACEUP)) then
if e:GetValue()==EVENT_MOVE then
local loc=0
if c:GetPreviousLocation()&LOCATION_ONFIELD>0 then
loc=LOCATION_GRAVE
elseif c:GetPreviousLocation()&LOCATION_GRAVE>0 then
loc=LOCATION_ONFIELD
end
_eg=_eg:Filter(Card.IsPreviousLocation,nil,loc)
end
if #_eg>0 then Duel.RaiseEvent(_eg,e:GetLabel(),re,r,rp,ep,ev) end
end
g:Clear()
end
end
function cm.MergedDelayEventCheck2_ToSingleCard(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local c=e:GetOwner()
if #g>0 then
local _eg=g:Clone()
if g:IsContains(c) and (c:IsFaceup() or c:IsPreviousPosition(POS_FACEUP)) then
if e:GetValue()==EVENT_MOVE then
local loc=0
if c:GetPreviousLocation()&LOCATION_ONFIELD>0 then
loc=LOCATION_GRAVE
elseif c:GetPreviousLocation()&LOCATION_GRAVE>0 then
loc=LOCATION_ONFIELD
end
_eg=_eg:Filter(Card.IsPreviousLocation,nil,loc)
end
if #_eg>0 then Duel.RaiseEvent(_eg,e:GetLabel(),re,r,rp,ep,ev) end
end
g:Clear()
end
end
function cm.check(e,tp,eg,ep,ev,re,r,rp)
local tf=re:GetHandler():IsRelateToEffect(re)
local cid=re:GetHandler():GetRealFieldID()
......@@ -175,17 +277,7 @@ function cm.leaveop(e,tp,eg,ep,ev,re,r,rp)
if not eg:IsContains(c) then return end
local g=eg:Clone()
if c:IsFacedown() and c:IsPreviousPosition(POS_FACEDOWN) then return end
if e:GetCode()==EVENT_MOVE then
local loc=0
if c:GetPreviousLocation()&LOCATION_ONFIELD>0 then
loc=LOCATION_GRAVE
elseif c:GetPreviousLocation()&LOCATION_GRAVE>0 then
loc=LOCATION_ONFIELD
else return end
g=eg:Filter(Card.IsPreviousLocation,nil,loc)
else
Duel.Hint(HINT_CARD,0,m)
end
Duel.Hint(HINT_CARD,0,m)
for tc in aux.Next(g) do
if tc:IsPreviousPosition(POS_FACEUP) then
local c=e:GetHandler()
......
......@@ -27,7 +27,8 @@ function cm.initial_effect(c)
end
cm.lvup={m-4}
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsStatus(STATUS_SET_TURN) or e:GetHandler():IsHasEffect(EFFECT_QP_ACT_IN_SET_TURN)
local c=e:GetHandler()
return (not c:IsLocation(LOCATION_HAND) or Duel.GetTurnPlayer()==tp or c:IsHasEffect(EFFECT_QP_ACT_IN_NTPHAND)) and (not c:IsStatus(STATUS_SET_TURN) or c:IsHasEffect(EFFECT_QP_ACT_IN_SET_TURN))
end
function cm.tdfilter(c)
return (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup()) and c:IsSetCard(0x41) and c:IsAbleToDeck()
......
......@@ -22,6 +22,7 @@ function s.initial_effect(c)
e3:SetDescription(aux.Stringid(id,2))
e3:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e3:SetCountLimit(1,id)
e3:SetCondition(s.condition)
e3:SetTarget(s.target)
e3:SetOperation(s.activate)
local e4=Effect.CreateEffect(c)
......@@ -66,6 +67,10 @@ function s.hspval2(e,c)
for tc in aux.Next(lg) do zone=zone|tc:GetColumnZone(LOCATION_MZONE,1-tp) end
return 0,zone
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return (not c:IsLocation(LOCATION_HAND) or Duel.GetTurnPlayer()==tp or c:IsHasEffect(EFFECT_QP_ACT_IN_NTPHAND)) and (not c:IsStatus(STATUS_SET_TURN) or c:IsHasEffect(EFFECT_QP_ACT_IN_SET_TURN))
end
function s.filter(c,e,tp)
return c:IsSetCard(0x108) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
......
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