Commit ac2fe2cd authored by POLYMER's avatar POLYMER

fix

parent 46de1ff2
......@@ -239,7 +239,7 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
else
local loc=te:GetHandler():GetLocation()
if te:GetHandler():IsFaceup() and te:GetHandler():IsOnField() then loc=te:GetHandler():GetPreviousLocation() end
ce:SetDescription(aux.Stringid(m,1))
ce:SetDescription(aux.Stringid(11451034,1))
ce:SetRange(loc|LOCATION_SZONE|LOCATION_HAND)
local g=Duel.GetMatchingGroup(function(c) return cm.mfilter(c) and c:IsType(TYPE_SPELL+TYPE_TRAP+TYPE_PENDULUM) end,0,0xff,0xff,nil)
local og=Duel.GetOverlayGroup(0,1,1):Filter(function(c) return cm.mfilter(c) and c:IsType(TYPE_SPELL+TYPE_TRAP+TYPE_PENDULUM) end,nil)
......@@ -303,7 +303,7 @@ function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.spcost(e,c,tp)
local g=Duel.GetMatchingGroup(cm.sfilter,tp,0xff,0xff,nil,tp)
local g=Duel.GetMatchingGroup(cm.sfilter,tp,0xff,0xff,e:GetHandler(),tp)
return #g>0
end
function cm.sptg(e,te,tp)
......
......@@ -27,7 +27,7 @@ function cm.initial_effect(c)
if c:IsHasEffect(m) then
return
elseif c:GetOriginalCode()==m then
if not cm.spcost(nil,nil,tp) then return end
if not cm.spcost(nil,nil,tp,c) then return end
cm.spcop(nil,tp,nil,nil,nil,nil,nil,nil,c)
end
return _MoveToField(c,tp,...)
......@@ -37,7 +37,7 @@ function cm.initial_effect(c)
if c:IsHasEffect(m) then
return
elseif c:GetOriginalCode()==m then
if not cm.spcost(nil,nil,tp) then return end
if not cm.spcost(nil,nil,tp,c) then return end
cm.spcop(nil,tp,nil,nil,nil,nil,nil,nil,c)
end
return _ReturnToField(c,...)
......@@ -46,7 +46,7 @@ function cm.initial_effect(c)
if c:IsHasEffect(m) then
return
elseif c:GetOriginalCode()==m then
if not cm.spcost(nil,nil,tp) then return end
if not cm.spcost(nil,nil,tp,c) then return end
cm.spcop(nil,tp,nil,nil,nil,nil,nil,nil,c)
end
return _Equip(tp,c,mc,...)
......@@ -299,8 +299,9 @@ function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
function cm.spcost(e,c,tp)
local g=Duel.GetMatchingGroup(cm.sfilter,tp,0xf3,0xf3,nil,tp)
function cm.spcost(e,c,tp,sc)
local c=sc or e:GetHandler()
local g=Duel.GetMatchingGroup(cm.sfilter,tp,0xf3,0xf3,c,tp)
return #g>0
end
function cm.sptg(e,c,tp)
......
......@@ -36,7 +36,7 @@ function cm.initial_effect(c)
if c:IsHasEffect(m) then
return
elseif c:GetOriginalCode()==m then
if not cm.spcost(nil,nil,tp) then return end
if not cm.spcost(nil,nil,tp,c) then return end
cm.spcop(nil,tp,nil,nil,nil,nil,nil,nil,c)
end
return _MoveToField(c,tp,...)
......@@ -46,7 +46,7 @@ function cm.initial_effect(c)
if c:IsHasEffect(m) then
return
elseif c:GetOriginalCode()==m then
if not cm.spcost(nil,nil,tp) then return end
if not cm.spcost(nil,nil,tp,c) then return end
cm.spcop(nil,tp,nil,nil,nil,nil,nil,nil,c)
end
return _ReturnToField(c,...)
......@@ -55,7 +55,7 @@ function cm.initial_effect(c)
if c:IsHasEffect(m) then
return
elseif c:GetOriginalCode()==m then
if not cm.spcost(nil,nil,tp) then return end
if not cm.spcost(nil,nil,tp,c) then return end
cm.spcop(nil,tp,nil,nil,nil,nil,nil,nil,c)
end
return _Equip(tp,c,mc,...)
......@@ -308,8 +308,9 @@ function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
function cm.spcost(e,c,tp)
local g=Duel.GetMatchingGroup(cm.sfilter,tp,LOCATION_EXTRA,LOCATION_EXTRA,nil,tp)
function cm.spcost(e,c,tp,sc)
local c=sc or e:GetHandler()
local g=Duel.GetMatchingGroup(cm.sfilter,tp,LOCATION_EXTRA,LOCATION_EXTRA,c,tp)
return #g>0
end
function cm.sptg(e,c,tp)
......@@ -365,10 +366,10 @@ function cm.spcop(e,tp,eg,ep,ev,re,r,rp,c)
sc:RegisterEffect(e1,true)
end
function cm.filter1(c)
return c:IsLocation(LOCATION_EXTRA) and (c:IsHasEffect(m) or (c:GetOriginalCode()==m and not cm.spcost(nil,nil,c:GetControler())))
return c:IsLocation(LOCATION_EXTRA) and (c:IsHasEffect(m) or (c:GetOriginalCode()==m and not cm.spcost(nil,nil,c:GetControler(),c)))
end
function cm.filter2(c)
return c:IsLocation(LOCATION_EXTRA) and (c:GetOriginalCode()==m and cm.spcost(nil,nil,c:GetControler()))
return c:IsLocation(LOCATION_EXTRA) and (c:GetOriginalCode()==m and cm.spcost(nil,nil,c:GetControler(),c))
end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......
......@@ -3,6 +3,13 @@ local cm,m=GetID()
function cm.initial_effect(c)
--activate
aux.EnablePendulumAttribute(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetCode(EFFECT_INDESTRUCTABLE)
e1:SetValue(1)
e1:SetCondition(function(e) return not cm.spcost(e,nil,e:GetHandlerPlayer()) end)
c:RegisterEffect(e1)
if not cm.global_check then
--replace
local e3=Effect.CreateEffect(c)
......@@ -227,7 +234,7 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
else
local loc=te:GetHandler():GetLocation()
if te:GetHandler():IsFaceup() and te:GetHandler():IsOnField() then loc=te:GetHandler():GetPreviousLocation() end
ce:SetDescription(aux.Stringid(m,1))
ce:SetDescription(aux.Stringid(11451034,1))
ce:SetRange(loc|LOCATION_SZONE|LOCATION_HAND)
local g=Duel.GetMatchingGroup(function(c) return cm.mfilter(c) and c:IsType(TYPE_SPELL+TYPE_TRAP+TYPE_PENDULUM) end,0,0xff,0xff,nil)
local og=Duel.GetOverlayGroup(0,1,1):Filter(function(c) return cm.mfilter(c) and c:IsType(TYPE_SPELL+TYPE_TRAP+TYPE_PENDULUM) end,nil)
......@@ -290,8 +297,9 @@ function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
function cm.spcost(e,c,tp)
local g=Duel.GetMatchingGroup(cm.sfilter,tp,0xff,0xff,nil,tp)
function cm.spcost(e,c,tp,sc)
local c=sc or e:GetHandler()
local g=Duel.GetMatchingGroup(cm.sfilter,tp,0xff,0xff,c,tp)
return #g>0
end
function cm.sptg(e,c,tp)
......@@ -312,27 +320,23 @@ function cm.spcop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_OPSELECTED,1-tp,aux.Stringid(m,2))
if not sc:IsOnField() then Duel.ConfirmCards(1-tp,Group.FromCards(sc)) end
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_CLIENT_HINT)
e1:SetCode(EFFECT_INDESTRUCTABLE)
e1:SetValue(1)
e1:SetCondition(function(e) if not cm.sfilter(sc,tp) then e:SetProperty(0) e:SetLabel(100) end return e:GetLabel()==0 end)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
sc:RegisterEffect(e1,true)
end
function cm.filter1(c)
return (c:IsHasEffect(m) or (c:GetOriginalCode()==m and not cm.spcost(nil,nil,c:GetControler())))
end
function cm.filter2(c)
return (c:GetOriginalCode()==m and cm.spcost(nil,nil,c:GetControler()))
return c:IsReason(REASON_DESTROY) and (c:GetOriginalCode()==m and cm.spcost(nil,nil,c:GetControler(),c))
end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local tp=c:GetControler()
local g1=eg:Filter(cm.filter1,nil)
local g2=eg:Filter(cm.filter2,nil)
if chk==0 then return #g1>0 or #g2>0 end
for tc in aux.Next(g1) do tc:RegisterFlagEffect(m,RESET_CHAIN,0,1) Duel.ConfirmCards(1-tp,tc) end
if chk==0 then return #g2>0 end
for tc in aux.Next(g2) do cm.spcop(nil,tp,nil,nil,nil,nil,nil,nil,c) end
return true
end
\ No newline at end of file
......@@ -44,7 +44,7 @@ function cm.retg(e,tp,eg,ep,ev,re,r,rp,chk)
for i=1,7 do t[i]=i+2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_NUMBER)
e:SetLabel(Duel.AnnounceNumber(tp,table.unpack(t)))
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,0,1)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(11451911,0))
Duel.SetOperationInfo(0,CATEGORY_REMOVE,e:GetHandler(),0,0,0)
end
function cm.reop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -46,7 +46,7 @@ function cm.retg(e,tp,eg,ep,ev,re,r,rp,chk)
for i=1,7 do t[i]=i+2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_NUMBER)
e:SetLabel(Duel.AnnounceNumber(tp,table.unpack(t)))
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,0,1)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(11451911,0))
Duel.SetOperationInfo(0,CATEGORY_REMOVE,e:GetHandler(),0,0,0)
end
function cm.reop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -46,7 +46,7 @@ function cm.retg(e,tp,eg,ep,ev,re,r,rp,chk)
for i=1,7 do t[i]=i+2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_NUMBER)
e:SetLabel(Duel.AnnounceNumber(tp,table.unpack(t)))
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,0,1)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(11451911,0))
Duel.SetOperationInfo(0,CATEGORY_REMOVE,e:GetHandler(),0,0,0)
end
function cm.reop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -47,7 +47,7 @@ function cm.retg(e,tp,eg,ep,ev,re,r,rp,chk)
for i=1,7 do t[i]=i+2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_NUMBER)
e:SetLabel(Duel.AnnounceNumber(tp,table.unpack(t)))
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,0,1)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(11451911,0))
Duel.SetOperationInfo(0,CATEGORY_REMOVE,e:GetHandler(),0,0,0)
end
function cm.reop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -47,7 +47,7 @@ function cm.retg(e,tp,eg,ep,ev,re,r,rp,chk)
for i=1,7 do t[i]=i+2 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_NUMBER)
e:SetLabel(Duel.AnnounceNumber(tp,table.unpack(t)))
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,0,1)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0x56e0000+RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(11451911,0))
Duel.SetOperationInfo(0,CATEGORY_REMOVE,e:GetHandler(),0,0,0)
end
function cm.reop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -30,9 +30,12 @@ function c28362718.cost(e,tp,eg,ep,ev,re,r,rp,chk)
else
Duel.PayLPCost(tp,2000)
end
Debug.Message(b1)
Debug.Message(b2)
Debug.Message(b3)
end
function c28362718.thfilter(c)
return c:IsSetCard(0x285) and c:IsType(TYPE_SPELL+TYPE_TRAP) and (c:IsAbleToHand() or c:IsSSetable())
return c:IsSetCard(0x285) and not c:IsCode(28362718) and c:IsType(TYPE_SPELL+TYPE_TRAP) and (c:IsAbleToHand() or c:IsSSetable())
end
function c28362718.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(c28362718.thfilter,tp,LOCATION_DECK,0,1,nil) end
......
--璞玉雕琢之月神
function c9910070.initial_effect(c)
--fusion material
c:EnableReviveLimit()
aux.AddFusionProcFun2(c,aux.FilterBoolFunction(Card.IsFusionAttribute,ATTRIBUTE_LIGHT),aux.FilterBoolFunction(Card.IsFusionAttribute,ATTRIBUTE_DARK),true)
--spsummon condition
local e1=Effect.CreateEffect(c)
......
--闪蝶幻乐手 极强音
function c9911465.initial_effect(c)
--fusion summon
c:EnableReviveLimit()
aux.AddFusionProcFun2(c,aux.FilterBoolFunction(Card.IsFusionSetCard,0x3952),aux.FilterBoolFunction(Card.IsFusionAttribute,ATTRIBUTE_LIGHT+ATTRIBUTE_DARK),true)
--spsummon condition
local e1=Effect.CreateEffect(c)
......
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