Commit 996391e3 authored by POLYMER's avatar POLYMER

fix

parent 5c83efa1
...@@ -144,8 +144,8 @@ function c130006042.drop(e,tp,eg,ep,ev,re,r,rp) ...@@ -144,8 +144,8 @@ function c130006042.drop(e,tp,eg,ep,ev,re,r,rp)
table.insert(codes,code) table.insert(codes,code)
end end
end end
if tg:GetCount()>0 then
local tgg=Duel.GetMatchingGroup(c130006042.thfilter3,tp,LOCATION_GRAVE+LOCATION_DECK,0,nil,codes) local tgg=Duel.GetMatchingGroup(c130006042.thfilter3,tp,LOCATION_GRAVE+LOCATION_DECK,0,nil,codes)
if tgg:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=tgg:SelectSubGroup(tp,c130006042.gcheck,false,2,2,e,tp) local sg=tgg:SelectSubGroup(tp,c130006042.gcheck,false,2,2,e,tp)
if sg:GetCount()>0 then if sg:GetCount()>0 then
......
...@@ -9,7 +9,7 @@ function cm.initial_effect(c) ...@@ -9,7 +9,7 @@ function cm.initial_effect(c)
--act limit --act limit
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:SetCode(EVENT_SUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c130006043.limcon) e1:SetCondition(c130006043.limcon)
e1:SetOperation(c130006043.limop) e1:SetOperation(c130006043.limop)
...@@ -140,7 +140,7 @@ end ...@@ -140,7 +140,7 @@ end
end end
function c130006043.limfilter(c,tp) function c130006043.limfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_SYNCHRO) return c:IsSummonPlayer(tp) and c:IsType(TYPE_SYNCHRO)
end end
function c130006043.limcon(e,tp,eg,ep,ev,re,r,rp) function c130006043.limcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c130006043.limfilter,1,nil,tp) return eg:IsExists(c130006043.limfilter,1,nil,tp)
...@@ -149,7 +149,7 @@ function c130006043.limop(e,tp,eg,ep,ev,re,r,rp) ...@@ -149,7 +149,7 @@ function c130006043.limop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentChain()==0 then if Duel.GetCurrentChain()==0 then
Duel.SetChainLimitTillChainEnd(c130006043.chainlm) Duel.SetChainLimitTillChainEnd(c130006043.chainlm)
elseif Duel.GetCurrentChain()==1 then elseif Duel.GetCurrentChain()==1 then
e:GetHandler():RegisterFlagEffect(130006043,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD,0,1)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
...@@ -162,17 +162,15 @@ function c130006043.limop(e,tp,eg,ep,ev,re,r,rp) ...@@ -162,17 +162,15 @@ function c130006043.limop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c130006043.resetop(e,tp,eg,ep,ev,re,r,rp) function c130006043.resetop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():ResetFlagEffect(130006043) e:GetHandler():ResetFlagEffect(id)
e:Reset() e:Reset()
end end
function c130006043.limop2(e,tp,eg,ep,ev,re,r,rp) function c130006043.limop2(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():GetOverlayCount()>0 and e:GetHandler():GetFlagEffect(130006043)~=0 then if e:GetHandler():GetFlagEffect(id)~=0 then
Duel.SetChainLimitTillChainEnd(c130006043.chainlm) Duel.SetChainLimitTillChainEnd(c130006043.chainlm)
end end
e:GetHandler():ResetFlagEffect(130006043) e:GetHandler():ResetFlagEffect(id)
end end
function c130006043.chainlm(e,rp,tp) function c130006043.chainlm(e,rp,tp)
return tp==rp return tp==rp
end end
\ No newline at end of file
...@@ -9,7 +9,7 @@ function cm.initial_effect(c) ...@@ -9,7 +9,7 @@ function cm.initial_effect(c)
--act limit --act limit
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:SetCode(EVENT_SUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c130006044.limcon) e1:SetCondition(c130006044.limcon)
e1:SetOperation(c130006044.limop) e1:SetOperation(c130006044.limop)
...@@ -129,7 +129,7 @@ function c130006044.lcheck(g) ...@@ -129,7 +129,7 @@ function c130006044.lcheck(g)
return g:GetClassCount(Card.GetLinkRace)==g:GetCount() return g:GetClassCount(Card.GetLinkRace)==g:GetCount()
end end
function c130006044.limfilter(c,tp) function c130006044.limfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_LINK) return c:IsSummonPlayer(tp) and c:IsType(TYPE_LINK)
end end
function c130006044.limcon(e,tp,eg,ep,ev,re,r,rp) function c130006044.limcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c130006044.limfilter,1,nil,tp) return eg:IsExists(c130006044.limfilter,1,nil,tp)
...@@ -138,7 +138,7 @@ function c130006044.limop(e,tp,eg,ep,ev,re,r,rp) ...@@ -138,7 +138,7 @@ function c130006044.limop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentChain()==0 then if Duel.GetCurrentChain()==0 then
Duel.SetChainLimitTillChainEnd(c130006044.chainlm) Duel.SetChainLimitTillChainEnd(c130006044.chainlm)
elseif Duel.GetCurrentChain()==1 then elseif Duel.GetCurrentChain()==1 then
e:GetHandler():RegisterFlagEffect(130006044,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD,0,1)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
...@@ -151,15 +151,15 @@ function c130006044.limop(e,tp,eg,ep,ev,re,r,rp) ...@@ -151,15 +151,15 @@ function c130006044.limop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c130006044.resetop(e,tp,eg,ep,ev,re,r,rp) function c130006044.resetop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():ResetFlagEffect(130006044) e:GetHandler():ResetFlagEffect(id)
e:Reset() e:Reset()
end end
function c130006044.limop2(e,tp,eg,ep,ev,re,r,rp) function c130006044.limop2(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():GetOverlayCount()>0 and e:GetHandler():GetFlagEffect(130006044)~=0 then if e:GetHandler():GetFlagEffect(id)~=0 then
Duel.SetChainLimitTillChainEnd(c130006044.chainlm) Duel.SetChainLimitTillChainEnd(c130006044.chainlm)
end end
e:GetHandler():ResetFlagEffect(130006044) e:GetHandler():ResetFlagEffect(id)
end end
function c130006044.chainlm(e,rp,tp) function c130006044.chainlm(e,rp,tp)
return tp==rp return tp==rp
end end
\ No newline at end of file
...@@ -9,7 +9,7 @@ function cm.initial_effect(c) ...@@ -9,7 +9,7 @@ function cm.initial_effect(c)
--act limit --act limit
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:SetCode(EVENT_SUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c130006045.limcon) e1:SetCondition(c130006045.limcon)
e1:SetOperation(c130006045.limop) e1:SetOperation(c130006045.limop)
...@@ -64,13 +64,13 @@ function c130006045.spcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -64,13 +64,13 @@ function c130006045.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c130006045.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c130006045.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,130006045,nil,TYPE_MONSTER+TYPE_EFFECT,2100,2800,7,RACE_AQUA,ATTRIBUTE_WATER) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c130006045.spop(e,tp,eg,ep,ev,re,r,rp) function c130006045.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,false,true,POS_FACEUP) Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end end
...@@ -93,11 +93,10 @@ function c130006045.btop(e,tp,eg,ep,ev,re,r,rp) ...@@ -93,11 +93,10 @@ function c130006045.btop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(sg,nil,REASON_RULE) Duel.SendtoHand(sg,nil,REASON_RULE)
local tg=Duel.GetMatchingGroup(c130006045.mmfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local tg=Duel.GetMatchingGroup(c130006045.mmfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local tc=tg:GetFirst() local tc=tg:GetFirst()
while tc and not tc:IsImmuneToEffect(e) do while tc and not tc:IsImmuneToEffect(e) do
local zone=1<<tc:GetSequence() local zone=1<<tc:GetSequence()
local ttp=tc:GetControler() local ttp=tc:GetControler()
if Duel.MoveToField(tc,tp,ttp,LOCATION_SZONE,POS_FACEUP,true,zone) then if tc:IsImmuneToEffect(e) and Duel.MoveToField(tc,tp,ttp,LOCATION_SZONE,POS_FACEUP,true,zone) then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCode(EFFECT_CHANGE_TYPE) e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -107,13 +106,15 @@ function c130006045.btop(e,tp,eg,ep,ev,re,r,rp) ...@@ -107,13 +106,15 @@ function c130006045.btop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
tc=tg:GetNext() tc=tg:GetNext()
local tgg=Duel.GetMatchingGroup(c130006045.mmfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
Duel.SendtoHand(tgg,nil,REASON_RULE)
end end
end end
function c130006045.ffilter(c,fc,sub,mg,sg) function c130006045.ffilter(c,fc,sub,mg,sg)
return c:IsFusionAttribute(ATTRIBUTE_WATER) and (not sg or not sg:IsExists(Card.IsRace,1,c,c:GetRace())) return c:IsFusionAttribute(ATTRIBUTE_WATER) and (not sg or not sg:IsExists(Card.IsRace,1,c,c:GetRace()))
end end
function c130006045.limfilter(c,tp) function c130006045.limfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_LINK) return c:IsSummonPlayer(tp) and c:IsType(TYPE_FUSION)
end end
function c130006045.limcon(e,tp,eg,ep,ev,re,r,rp) function c130006045.limcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c130006045.limfilter,1,nil,tp) return eg:IsExists(c130006045.limfilter,1,nil,tp)
...@@ -122,7 +123,7 @@ function c130006045.limop(e,tp,eg,ep,ev,re,r,rp) ...@@ -122,7 +123,7 @@ function c130006045.limop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentChain()==0 then if Duel.GetCurrentChain()==0 then
Duel.SetChainLimitTillChainEnd(c130006045.chainlm) Duel.SetChainLimitTillChainEnd(c130006045.chainlm)
elseif Duel.GetCurrentChain()==1 then elseif Duel.GetCurrentChain()==1 then
e:GetHandler():RegisterFlagEffect(130006045,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD,0,1)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
...@@ -135,16 +136,15 @@ function c130006045.limop(e,tp,eg,ep,ev,re,r,rp) ...@@ -135,16 +136,15 @@ function c130006045.limop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c130006045.resetop(e,tp,eg,ep,ev,re,r,rp) function c130006045.resetop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():ResetFlagEffect(130006045) e:GetHandler():ResetFlagEffect(id)
e:Reset() e:Reset()
end end
function c130006045.limop2(e,tp,eg,ep,ev,re,r,rp) function c130006045.limop2(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():GetOverlayCount()>0 and e:GetHandler():GetFlagEffect(130006045)~=0 then if e:GetHandler():GetFlagEffect(id)~=0 then
Duel.SetChainLimitTillChainEnd(c130006045.chainlm) Duel.SetChainLimitTillChainEnd(c130006045.chainlm)
end end
e:GetHandler():ResetFlagEffect(130006045) e:GetHandler():ResetFlagEffect(id)
end end
function c130006045.chainlm(e,rp,tp) function c130006045.chainlm(e,rp,tp)
return tp==rp return tp==rp
end end
\ No newline at end of file
...@@ -99,8 +99,6 @@ function c130006046.geop(e,tp,eg,ep,ev,re,r,rp) ...@@ -99,8 +99,6 @@ function c130006046.geop(e,tp,eg,ep,ev,re,r,rp)
local tc2=g:GetNext() local tc2=g:GetNext()
if tc1 and tc2 and tc1:IsRelateToEffect(e) and tc2:IsRelateToEffect(e) then if tc1 and tc2 and tc1:IsRelateToEffect(e) and tc2:IsRelateToEffect(e) then
tc1:SetCardTarget(tc2) tc1:SetCardTarget(tc2)
tc1:RegisterFlagEffect(130006046,RESET_EVENT+RESETS_STANDARD,0,1,1)
tc2:RegisterFlagEffect(130006046,RESET_EVENT+RESETS_STANDARD,0,1,1)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_ONFIELD) e1:SetRange(LOCATION_ONFIELD)
...@@ -108,6 +106,7 @@ function c130006046.geop(e,tp,eg,ep,ev,re,r,rp) ...@@ -108,6 +106,7 @@ function c130006046.geop(e,tp,eg,ep,ev,re,r,rp)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCondition(c130006046.descon) e1:SetCondition(c130006046.descon)
e1:SetOperation(c130006046.desop) e1:SetOperation(c130006046.desop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc1:RegisterEffect(e1) tc1:RegisterEffect(e1)
tc2:RegisterEffect(e1) tc2:RegisterEffect(e1)
end end
...@@ -116,7 +115,7 @@ function c130006046.descon(e,tp,eg,ep,ev,re,r,rp) ...@@ -116,7 +115,7 @@ function c130006046.descon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tg=c:GetCardTarget() local tg=c:GetCardTarget()
local gc=Group.__band(eg,tg) local gc=Group.__band(eg,tg)
return gc:GetCount()>0 and c:GetFlagEffect(130006046)>0 return gc:GetCount()>0
end end
function c130006046.desop(e,tp,eg,ep,ev,re,r,rp) function c130006046.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -3,5 +3,101 @@ local m=130006047 ...@@ -3,5 +3,101 @@ local m=130006047
local cm=_G["c"..m] local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c,130006046) aux.AddCodeList(c,130006046)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c130006047.sptg)
e1:SetOperation(c130006047.spop)
c:RegisterEffect(e1)
--ge
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_MOVE)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCondition(c130006047.gecon)
e2:SetTarget(c130006047.getg)
e2:SetOperation(c130006047.geop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAINING)
e3:SetCondition(c130006047.tecon)
e3:SetOperation(c130006047.teop)
Duel.RegisterEffect(e3,tp)
end end
function c130006047.tecon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
local tc=g:GetFirst()
e:SetLabelObject(tc)
return tc and eg:GetFirst()==c and tc:IsFaceup() and tc:IsLocation(LOCATION_MZONE)
end
function c130006047.teop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=e:GetLabelObject()
Duel.Hint(HINT_CARD,0,130006047)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(130006047,1))
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetType(EFFECT_TYPE_QUICK_F)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_BECOME_TARGET)
e1:SetCondition(c130006047.eecon)
e1:SetOperation(c130006047.eeop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
end
function c130006047.eecon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsContains(e:GetHandler())
end
function c130006047.eeop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_CARD,0,130006047)
--imm
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e1:SetTarget(c130006047.etarget)
e1:SetValue(c130006047.efilter)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
function c130006047.etarget(e,c)
return aux.IsCodeListed(c,130006046)
end
function c130006047.efilter(e,te,c)
return te:GetOwner()~=c and te:GetOwner()~=e:GetOwner()
end
function c130006047.gesfilter(c,col)
return col==aux.GetColumn(c)
end
function c130006047.gecon(e,tp,eg,ep,ev,re,r,rp)
local col=aux.GetColumn(e:GetHandler())
return col and eg:IsExists(c130006047.gesfilter,1,e:GetHandler(),col) and e:GetHandler():IsStatus(STATUS_EFFECT_ENABLED)
end
function c130006047.getg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g1=Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
end
function c130006047.geop(e,tp,eg,ep,ev,re,r,rp)
end
function c130006047.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) end
if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
end
function c130006047.spop(e,tp,eg,ep,ev,re,r,rp)
end
...@@ -70,7 +70,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -70,7 +70,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp return Duel.GetTurnPlayer()==1-tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -70,7 +70,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -70,7 +70,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp return Duel.GetTurnPlayer()==1-tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp return Duel.GetTurnPlayer()==1-tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,7 +71,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp return Duel.GetTurnPlayer()==1-tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -114,7 +114,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -114,7 +114,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -114,7 +114,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -114,7 +114,7 @@ function cm.repcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp return Duel.GetTurnPlayer()==1-tp
end end
function cm.repfilter(c,tp) function cm.repfilter(c,tp)
return not c:IsReason(REASON_REPLACE) return c:IsOnField() and not c:IsReason(REASON_REPLACE)
end end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -12,8 +12,8 @@ function cm.initial_effect(c) ...@@ -12,8 +12,8 @@ function cm.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY) e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetCode(EVENT_FREE_CHAIN) --e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_SZONE) e1:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1,m) e1:SetCountLimit(1,m)
e1:SetTarget(cm.settg) e1:SetTarget(cm.settg)
......
...@@ -19,6 +19,7 @@ function cm.initial_effect(c) ...@@ -19,6 +19,7 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_RECOVER) e2:SetCode(EVENT_RECOVER)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,22348249+EFFECT_COUNT_CODE_DUEL) e2:SetCountLimit(1,22348249+EFFECT_COUNT_CODE_DUEL)
e2:SetCondition(c22348249.spcon) e2:SetCondition(c22348249.spcon)
e2:SetTarget(c22348249.sptg) e2:SetTarget(c22348249.sptg)
......
...@@ -3,7 +3,7 @@ local cm=_G["c"..m] ...@@ -3,7 +3,7 @@ local cm=_G["c"..m]
cm.name="悚牢巨擘" cm.name="悚牢巨擘"
function cm.initial_effect(c) function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddSynchroMixProcedure(c,cm.matfilter,nil,nil,aux.NonTuner(nil),1,99) aux.AddSynchroMixProcedure(c,cm.matfilter,nil,nil,cm.matfilter2,1,99)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
...@@ -29,6 +29,9 @@ end ...@@ -29,6 +29,9 @@ end
function cm.matfilter(c,syncard) function cm.matfilter(c,syncard)
return c:IsTuner(syncard) or c:IsRace(RACE_FISH) return c:IsTuner(syncard) or c:IsRace(RACE_FISH)
end end
function cm.matfilter2(c,syncard)
return c:IsNotTuner(syncard) and c:IsRace(RACE_FISH)
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)
if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,1) end if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,1) end
Duel.DiscardDeck(tp,1,REASON_COST) Duel.DiscardDeck(tp,1,REASON_COST)
......
...@@ -49,7 +49,7 @@ function s.tdop(opt) ...@@ -49,7 +49,7 @@ function s.tdop(opt)
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_HAND,nil,tp) local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_HAND,nil,tp)
local rg=g:RandomSelect(tp,1) local rg=g:RandomSelect(tp,1)
local rc=rg:GetFirst() local rc=rg:GetFirst()
Duel.Remove(rc,POS_FACEDOWN,REASON_EFFECT) Duel.Remove(rc,POS_FACEUP,REASON_EFFECT)
rc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD,0,1) rc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD,0,1)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......
...@@ -382,7 +382,7 @@ function cm.sumop(e,tp,eg,ep,ev,re,r,rp,c,minc) ...@@ -382,7 +382,7 @@ function cm.sumop(e,tp,eg,ep,ev,re,r,rp,c,minc)
if minc and mi<minc then mi=minc end if minc and mi<minc then mi=minc end
local g=Group.__add(Duel.GetTributeGroup(c),Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_DECK,0,nil,m)) local g=Group.__add(Duel.GetTributeGroup(c),Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_DECK,0,nil,m))
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local sg=g:SelectSubGroup(tp,cm.fselect,true,mi,ma,c,tp) local sg=g:SelectSubGroup(tp,cm.fselect,false,mi,ma,c,tp)
c:SetMaterial(sg) c:SetMaterial(sg)
if sg:IsExists(Card.IsLocation,1,nil,LOCATION_DECK) then Duel.RegisterFlagEffect(tp,m+2500,RESET_PHASE+PHASE_END,0,1) end if sg:IsExists(Card.IsLocation,1,nil,LOCATION_DECK) then Duel.RegisterFlagEffect(tp,m+2500,RESET_PHASE+PHASE_END,0,1) end
Duel.SendtoGrave(sg,REASON_RELEASE+REASON_SUMMON+REASON_MATERIAL) Duel.SendtoGrave(sg,REASON_RELEASE+REASON_SUMMON+REASON_MATERIAL)
......
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