Commit eec6cf1c authored by Nemo Ma's avatar Nemo Ma

fix

parent 1bdd8788
...@@ -190,15 +190,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -190,15 +190,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabelObject(te2) e:SetLabelObject(te2)
te:SetType(26) te:SetType(26)
c:RegisterEffect(te2,true) c:RegisterEffect(te2,true)
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(te2) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
...@@ -206,7 +206,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -206,7 +206,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler() local rc=re:GetHandler()
local te2=e:GetLabelObject()
if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then
rc:SetStatus(STATUS_EFFECT_ENABLED,true) rc:SetStatus(STATUS_EFFECT_ENABLED,true)
end end
......
...@@ -174,15 +174,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -174,15 +174,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabelObject(te2) e:SetLabelObject(te2)
te:SetType(26) te:SetType(26)
c:RegisterEffect(te2,true) c:RegisterEffect(te2,true)
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(te2) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
...@@ -190,7 +190,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -190,7 +190,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler() local rc=re:GetHandler()
local te2=e:GetLabelObject()
if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then
rc:SetStatus(STATUS_EFFECT_ENABLED,true) rc:SetStatus(STATUS_EFFECT_ENABLED,true)
end end
......
...@@ -136,15 +136,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -136,15 +136,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabelObject(te2) e:SetLabelObject(te2)
te:SetType(26) te:SetType(26)
c:RegisterEffect(te2,true) c:RegisterEffect(te2,true)
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(te2) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
...@@ -152,7 +152,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -152,7 +152,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler() local rc=re:GetHandler()
local te2=e:GetLabelObject()
if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then
rc:SetStatus(STATUS_EFFECT_ENABLED,true) rc:SetStatus(STATUS_EFFECT_ENABLED,true)
end end
......
...@@ -142,15 +142,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -142,15 +142,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabelObject(te2) e:SetLabelObject(te2)
te:SetType(26) te:SetType(26)
c:RegisterEffect(te2,true) c:RegisterEffect(te2,true)
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(te2) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
...@@ -158,7 +158,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -158,7 +158,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler() local rc=re:GetHandler()
local te2=e:GetLabelObject()
if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then
rc:SetStatus(STATUS_EFFECT_ENABLED,true) rc:SetStatus(STATUS_EFFECT_ENABLED,true)
end end
......
...@@ -15,10 +15,9 @@ function cm.initial_effect(c) ...@@ -15,10 +15,9 @@ function cm.initial_effect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND) e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetRange(LOCATION_EXTRA) e1:SetRange(LOCATION_EXTRA)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_DESTROYED)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH) --e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetHintTiming(TIMING_DESTROY)
e1:SetCondition(cm.condition) e1:SetCondition(cm.condition)
e1:SetCost(cm.cost) e1:SetCost(cm.cost)
e1:SetTarget(cm.target) e1:SetTarget(cm.target)
...@@ -53,7 +52,7 @@ function cm.initial_effect(c) ...@@ -53,7 +52,7 @@ function cm.initial_effect(c)
ge1:SetCode(EVENT_DESTROYED) ge1:SetCode(EVENT_DESTROYED)
ge1:SetCondition(cm.regcon) ge1:SetCondition(cm.regcon)
ge1:SetOperation(cm.regop) ge1:SetOperation(cm.regop)
Duel.RegisterEffect(ge1,0) --Duel.RegisterEffect(ge1,0)
end end
end end
local KOISHI_CHECK=false local KOISHI_CHECK=false
...@@ -81,12 +80,14 @@ function cm.regop(e,tp,eg,ep,ev,re,r,rp) ...@@ -81,12 +80,14 @@ function cm.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.RaiseEvent(eg,EVENT_CUSTOM+m,re,r,rp,ep,e:GetLabel()) Duel.RaiseEvent(eg,EVENT_CUSTOM+m,re,r,rp,ep,e:GetLabel())
e:Reset() e:Reset()
end) end)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,0) Duel.RegisterEffect(e1,0)
end end
end end
function cm.condition(e,tp,eg,ep,ev,re,r,rp) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local chk,eg,ep,ev=Duel.CheckEvent(EVENT_CUSTOM+m,true) --local chk,eg,ep,ev=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return chk and (ev==tp or ev==PLAYER_ALL) --return chk and (ev==tp or ev==PLAYER_ALL)
return eg:IsExists(cm.cfilter,1,nil,tp)
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -140,6 +141,7 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -140,6 +141,7 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetReleaseGroup(tp):Filter(cm.rfilter,nil) local g=Duel.GetReleaseGroup(tp):Filter(cm.rfilter,nil)
local sg=g:SelectSubGroup(tp,cm.fselect,false,2,2,tp,c) local sg=g:SelectSubGroup(tp,cm.fselect,false,2,2,tp,c)
Duel.Release(sg,REASON_COST) Duel.Release(sg,REASON_COST)
Duel.BreakEffect()
Duel.MoveToField(c,tp,tp,LOCATION_MZONE,POS_FACEUP,false) Duel.MoveToField(c,tp,tp,LOCATION_MZONE,POS_FACEUP,false)
c:CreateEffectRelation(te) c:CreateEffectRelation(te)
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
...@@ -152,15 +154,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -152,15 +154,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabelObject(te2) e:SetLabelObject(te2)
te:SetType(26) te:SetType(26)
c:RegisterEffect(te2,true) c:RegisterEffect(te2,true)
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(te2) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
...@@ -168,25 +170,12 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -168,25 +170,12 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler() local rc=re:GetHandler()
local te2=e:GetLabelObject()
if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then
rc:SetStatus(STATUS_EFFECT_ENABLED,true) rc:SetStatus(STATUS_EFFECT_ENABLED,true)
rc:SetStatus(STATUS_LEAVE_CONFIRMED,false)
end end
if e:GetCode()==EVENT_CHAIN_NEGATED and rc:IsRelateToEffect(re) then if e:GetCode()==EVENT_CHAIN_NEGATED and rc:IsRelateToEffect(re) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true) rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
rc:CancelToGrave(false)
if KOISHI_CHECK then
rc:SetCardData(CARDDATA_TYPE,TYPE_MONSTER+TYPE_EFFECT)
local e2=Effect.CreateEffect(rc)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_MOVE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(function(e)
rc:SetCardData(CARDDATA_TYPE,TYPE_MONSTER+TYPE_EFFECT+TYPE_PENDULUM)
e:Reset()
end)
rc:RegisterEffect(e2)
end
end end
re:Reset() re:Reset()
end end
......
...@@ -7,6 +7,8 @@ function cm.initial_effect(c) ...@@ -7,6 +7,8 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_DRAW_PHASE) e1:SetHintTiming(TIMING_DRAW_PHASE)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate) e1:SetOperation(cm.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk --atk
...@@ -31,22 +33,41 @@ function cm.initial_effect(c) ...@@ -31,22 +33,41 @@ function cm.initial_effect(c)
e3:SetTarget(cm.destg) e3:SetTarget(cm.destg)
e3:SetOperation(cm.desop) e3:SetOperation(cm.desop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--remain field --act in hand
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e4:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e4:SetCode(EFFECT_REMAIN_FIELD) e4:SetCondition(cm.hand)
--c:RegisterEffect(e4) c:RegisterEffect(e4)
--act in hand
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e5:SetCondition(cm.hand)
c:RegisterEffect(e5)
end end
function cm.hand(e,tp,eg,ep,ev,re,r,rp) function cm.hand(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentChain()==0 return Duel.GetCurrentChain()==0
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local c=e:GetHandler()
local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_REMAIN_FIELD)
e1:SetProperty(EFFECT_FLAG_OATH+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_CHAIN)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_DISABLED)
e2:SetOperation(cm.tgop)
e2:SetLabel(cid)
e2:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e2,tp)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
local cid=Duel.GetChainInfo(ev,CHAININFO_CHAIN_ID)
if cid~=e:GetLabel() then return end
if e:GetOwner():IsRelateToChain(ev) then
e:GetOwner():CancelToGrave(false)
end
end
function cm.thfilter(c) function cm.thfilter(c)
return c:IsSetCard(0x5977) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() return c:IsSetCard(0x5977) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end end
...@@ -99,8 +120,10 @@ function cm.descon(e,tp,eg,ep,ev,re,r,rp) ...@@ -99,8 +120,10 @@ function cm.descon(e,tp,eg,ep,ev,re,r,rp)
return re:IsActiveType(TYPE_TRAP) and re:IsHasType(EFFECT_TYPE_ACTIVATE) and e:GetHandler():GetSequence()==5 return re:IsActiveType(TYPE_TRAP) and re:IsHasType(EFFECT_TYPE_ACTIVATE) and e:GetHandler():GetSequence()==5
end end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsOnField() end if chkc then return chkc:IsOnField() end
if chk==0 then return Duel.IsExistingTarget(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingTarget(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) and c:GetFlagEffect(m)==0 end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil) local g=Duel.SelectTarget(tp,nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
......
...@@ -61,14 +61,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,14 +61,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,false) Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,false)
e:GetHandler():CreateEffectRelation(te) e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler() local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -41,14 +41,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -41,14 +41,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
Duel.MoveToField(e:GetHandler(),tp,tp,LOCATION_SZONE,POS_FACEUP,false) Duel.MoveToField(e:GetHandler(),tp,tp,LOCATION_SZONE,POS_FACEUP,false)
e:GetHandler():CreateEffectRelation(te) e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler() local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -58,10 +58,10 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -58,10 +58,10 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(e) e1:SetLabel(ev)
e1:SetCondition(cm.rscon) e1:SetCondition(cm.rscon)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
...@@ -76,7 +76,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -76,7 +76,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.rscon(e,tp,eg,ep,ev,re,r,rp) function cm.rscon(e,tp,eg,ep,ev,re,r,rp)
return re==e:GetLabelObject() return ev==e:GetLabel()
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
re:SetOperation(cm.activate) re:SetOperation(cm.activate)
......
...@@ -66,7 +66,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -66,7 +66,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(e) e1:SetLabel(ev)
e1:SetCondition(cm.rscon) e1:SetCondition(cm.rscon)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
...@@ -84,7 +84,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -84,7 +84,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if op then op(e,tp,eg,ep,ev,re,r,rp) end if op then op(e,tp,eg,ep,ev,re,r,rp) end
end end
function cm.rscon(e,tp,eg,ep,ev,re,r,rp) function cm.rscon(e,tp,eg,ep,ev,re,r,rp)
return re==e:GetLabelObject() return ev==e:GetLabel()
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
re:SetOperation(cm.activate) re:SetOperation(cm.activate)
......
...@@ -56,7 +56,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -56,7 +56,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(e) e1:SetLabel(ev)
e1:SetCondition(cm.rscon) e1:SetCondition(cm.rscon)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
...@@ -74,7 +74,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -74,7 +74,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.rscon(e,tp,eg,ep,ev,re,r,rp) function cm.rscon(e,tp,eg,ep,ev,re,r,rp)
return re==e:GetLabelObject() return ev==e:GetLabel()
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
re:SetOperation(cm.activate) re:SetOperation(cm.activate)
......
...@@ -55,7 +55,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -55,7 +55,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(e) e1:SetLabel(ev)
e1:SetCondition(cm.rscon) e1:SetCondition(cm.rscon)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
...@@ -77,7 +77,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -77,7 +77,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.rscon(e,tp,eg,ep,ev,re,r,rp) function cm.rscon(e,tp,eg,ep,ev,re,r,rp)
return re==e:GetLabelObject() return ev==e:GetLabel()
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
re:SetOperation(cm.activate) re:SetOperation(cm.activate)
......
...@@ -48,7 +48,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -48,7 +48,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(e) e1:SetLabel(ev)
e1:SetCondition(cm.rscon) e1:SetCondition(cm.rscon)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
...@@ -108,7 +108,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -108,7 +108,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
end end
function cm.rscon(e,tp,eg,ep,ev,re,r,rp) function cm.rscon(e,tp,eg,ep,ev,re,r,rp)
return re==e:GetLabelObject() return ev==e:GetLabel()
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
re:SetOperation(cm.activate) re:SetOperation(cm.activate)
......
...@@ -85,7 +85,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -85,7 +85,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(e) e1:SetLabel(ev)
e1:SetCondition(cm.rscon) e1:SetCondition(cm.rscon)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
...@@ -148,7 +148,7 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -148,7 +148,7 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
e:Reset() e:Reset()
end end
function cm.rscon(e,tp,eg,ep,ev,re,r,rp) function cm.rscon(e,tp,eg,ep,ev,re,r,rp)
return re==e:GetLabelObject() return ev==e:GetLabel()
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
re:SetOperation(cm.activate) re:SetOperation(cm.activate)
......
...@@ -164,14 +164,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -164,14 +164,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():RegisterFlagEffect(m+1,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(m+1,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
tc:CreateEffectRelation(te) tc:CreateEffectRelation(te)
local c=e:GetHandler() local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -57,15 +57,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,15 +57,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabelObject(te2) e:SetLabelObject(te2)
te:SetType(26) te:SetType(26)
c:RegisterEffect(te2,true) c:RegisterEffect(te2,true)
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(te2) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
...@@ -73,7 +73,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -73,7 +73,6 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler() local rc=re:GetHandler()
local te2=e:GetLabelObject()
if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then if e:GetCode()==EVENT_CHAIN_SOLVED and rc:IsRelateToEffect(re) then
rc:SetStatus(STATUS_EFFECT_ENABLED,true) rc:SetStatus(STATUS_EFFECT_ENABLED,true)
end end
......
--斩机双同态 --斩机双同态
--21.08.08 --21.08.08
local m=11451606 local cm,m=GetID()
local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -64,7 +63,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -64,7 +63,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabelObject(e) e1:SetLabel(ev)
e1:SetCondition(cm.rscon) e1:SetCondition(cm.rscon)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
...@@ -74,7 +73,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -74,7 +73,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
end end
function cm.rscon(e,tp,eg,ep,ev,re,r,rp) function cm.rscon(e,tp,eg,ep,ev,re,r,rp)
return re==e:GetLabelObject() return ev==e:GetLabel()
end end
function cm.rsop(e,tp,eg,ep,ev,re,r,rp) function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
re:SetProperty(0) re:SetProperty(0)
......
...@@ -82,14 +82,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -82,14 +82,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject() local te=e:GetLabelObject()
e:GetHandler():CreateEffectRelation(te) e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler() local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject() local te=e:GetLabelObject()
e:GetHandler():CreateEffectRelation(te) e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler() local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject() local te=e:GetLabelObject()
e:GetHandler():CreateEffectRelation(te) e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler() local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject() local te=e:GetLabelObject()
e:GetHandler():CreateEffectRelation(te) e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler() local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject() local te=e:GetLabelObject()
e:GetHandler():CreateEffectRelation(te) e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler() local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -83,14 +83,15 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject() local te=e:GetLabelObject()
e:GetHandler():CreateEffectRelation(te) e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler() local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop) e1:SetOperation(cm.rsop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -172,6 +172,26 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -172,6 +172,26 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if sg1:IsContains(tc) and (sg3==nil or not sg3:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then if sg1:IsContains(tc) and (sg3==nil or not sg3:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then
local mat1=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf) local mat1=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf)
tc:SetMaterial(mat1) tc:SetMaterial(mat1)
for matc in aux.Next(mat1) do
matc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1)
end
local _GetReason=Card.GetReason
local _GetReasonCard=Card.GetReasonCard
Card.GetReason=function(c) if c:GetFlagEffect(m)>0 then return 0x40008 else return _GetReason(c) end end
Card.GetReasonCard=function(c) if c:GetFlagEffect(m)>0 then return tc else return _GetReasonCard(c) end end
--[[if c:GetFlagEffect(m)>0 then
local _,fusc=_GetReasonCard(c)
if fusc then
fusc:AddCard(tc)
else
local fusc=Group.FromCards(tc)
fusc:KeepAlive()
end
return tc,fusc
else return _GetReasonCard(c) end end
Set.equal=function(a,b)
local typea,typeb=aux.GetValueType(a),aux.GetValueType(b)
if typea=="Group" and typeb=="Card" then return a:IsContains(b) else return _equal(a,b) end end--]]
Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
else else
local mat=Duel.SelectFusionMaterial(tp,tc,mg4,nil,chkf) local mat=Duel.SelectFusionMaterial(tp,tc,mg4,nil,chkf)
......
--烬羽的悲响·珞克莉尔 --烬羽的悲响·珞克莉尔
local m=11451748 local cm,m=GetID()
local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
--link summon --link summon
c:EnableReviveLimit() c:EnableReviveLimit()
...@@ -43,6 +42,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -43,6 +42,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetLabelObject(g) e1:SetLabelObject(g)
e1:SetCondition(cm.retcon) e1:SetCondition(cm.retcon)
e1:SetOperation(cm.retop) e1:SetOperation(cm.retop)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED) e2:SetCode(EVENT_CHAIN_NEGATED)
......
...@@ -128,7 +128,7 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -128,7 +128,7 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end) e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return re==te end)
e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp) c:SetEntityCode(m,false) end) e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp) c:SetEntityCode(m,false) Duel.ShuffleHand(tp) end)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end 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