Commit 75efd24b authored by VanillaSalt's avatar VanillaSalt

fix

parent 0a0ff3f5
......@@ -38,10 +38,12 @@ end
function c10389142.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 or not Duel.IsPlayerCanSpecialSummonMonster(tp,10389143,0,0x4011,2000,0,6,RACE_MACHINE,ATTRIBUTE_WIND) then return end
local fid=e:GetHandler():GetFieldID()
local g=Group.CreateGroup()
for i=1,ft do
local token=Duel.CreateToken(tp,10389143)
Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP)
token:RegisterFlagEffect(10389142,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1,fid)
g:AddCard(token)
end
Duel.SpecialSummonComplete()
......@@ -49,15 +51,28 @@ function c10389142.spop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(g)
e1:SetCondition(c10389142.descon)
e1:SetOperation(c10389142.desop)
Duel.RegisterEffect(e1,tp)
end
function c10389142.desfilter(c,fid)
return c:GetFlagEffectLabel(10389142)==fid
end
function c10389142.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c10389142.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
return false
else return true end
end
function c10389142.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(Card.IsLocation,nil,LOCATION_MZONE)
local tg=g:Filter(c10389142.desfilter,nil,e:GetLabel())
g:DeleteGroup()
Duel.Destroy(tg,REASON_EFFECT)
end
......@@ -46,12 +46,16 @@ function c11136371.plop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetCondition(c11136371.descon)
e1:SetOperation(c11136371.desop)
Duel.RegisterEffect(e1,tp)
end
function c11136371.desfilter(c)
return c:IsFaceup() and c:IsSetCard(0x34)
end
function c11136371.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c11136371.desfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function c11136371.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c11136371.desfilter,tp,LOCATION_ONFIELD,0,nil)
Duel.Destroy(g,REASON_EFFECT)
......
......@@ -9,7 +9,7 @@ function c14644902.initial_effect(c)
e1:SetOperation(c14644902.operation)
c:RegisterEffect(e1)
end
function c14644902.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
function c14644902.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
......@@ -31,6 +31,7 @@ function c14644902.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCondition(c14644902.descon)
e1:SetOperation(c14644902.desop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e1:SetCountLimit(1)
......@@ -38,8 +39,9 @@ function c14644902.operation(e,tp,eg,ep,ev,re,r,rp)
end
end
end
function c14644902.descon(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsHasEffect(66235877)
end
function c14644902.desop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsHasEffect(66235877) then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
......@@ -27,30 +27,40 @@ function c14878871.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetMatchingGroup(c14878871.filter,tp,LOCATION_DECK,0,nil,e,tp)
if g:GetCount()>=2 then
local fid=e:GetHandler():GetFieldID()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,2,2,nil)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
local tc=sg:GetFirst()
tc:RegisterFlagEffect(14878871,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(14878871,RESET_EVENT+0x1fe0000,0,1,fid)
tc=sg:GetNext()
tc:RegisterFlagEffect(14878871,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(14878871,RESET_EVENT+0x1fe0000,0,1,fid)
sg:KeepAlive()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(sg)
e1:SetCondition(c14878871.descon)
e1:SetOperation(c14878871.desop)
Duel.RegisterEffect(e1,tp)
end
end
function c14878871.desfilter(c)
return c:GetFlagEffect(14878871)>0
function c14878871.desfilter(c,fid)
return c:GetFlagEffectLabel(14878871)==fid
end
function c14878871.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c14878871.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c14878871.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c14878871.desfilter,nil)
g:DeleteGroup()
local tg=g:Filter(c14878871.desfilter,nil,e:GetLabel())
Duel.Destroy(tg,REASON_EFFECT)
end
......@@ -39,6 +39,7 @@ function c15286412.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetCondition(c15286412.retcon)
e1:SetOperation(c15286412.retop)
e1:SetLabel(2)
e1:SetLabelObject(e:GetLabelObject())
......@@ -46,8 +47,10 @@ function c15286412.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e1,tp)
end
end
function c15286412.retcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c15286412.retop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
local ct=e:GetLabel()
ct=ct-1
e:SetLabel(ct)
......
......@@ -51,6 +51,7 @@ function c1764972.spop1(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(c1764972.sfilter,nil,e,tp)
if g:GetCount()==0 or g:GetCount()>ft then return false end
local c=e:GetHandler()
local fid=c:GetFieldID()
local tc=g:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
......@@ -64,7 +65,7 @@ function c1764972.spop1(e,tp,eg,ep,ev,re,r,rp)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e2,true)
tc:RegisterFlagEffect(1764972,RESET_EVENT+0x1fe0000,0,0)
tc:RegisterFlagEffect(1764972,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1,fid)
tc=g:GetNext()
end
Duel.SpecialSummonComplete()
......@@ -72,18 +73,28 @@ function c1764972.spop1(e,tp,eg,ep,ev,re,r,rp)
local de=Effect.CreateEffect(c)
de:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
de:SetCode(EVENT_PHASE+PHASE_END)
de:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
de:SetCountLimit(1)
de:SetReset(RESET_PHASE+PHASE_END)
de:SetLabel(fid)
de:SetLabelObject(g)
de:SetCondition(c1764972.descon)
de:SetOperation(c1764972.desop)
Duel.RegisterEffect(de,tp)
end
function c1764972.desfilter(c)
return c:GetFlagEffect(1764972)~=0
function c1764972.desfilter(c,fid)
return c:GetFlagEffectLabel(1764972)==fid
end
function c1764972.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c1764972.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
return false
else return true end
end
function c1764972.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local dg=g:Filter(c1764972.desfilter,nil)
local dg=g:Filter(c1764972.desfilter,nil,e:GetLabel())
g:DeleteGroup()
Duel.Destroy(dg,REASON_EFFECT)
end
......
......@@ -22,7 +22,7 @@ function c17874674.initial_effect(c)
--cancel target
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetCode(EVENT_TURN_END)
e3:SetRange(LOCATION_SZONE)
e3:SetCountLimit(1)
e3:SetCondition(c17874674.condition)
......
......@@ -19,6 +19,7 @@ function c18634367.initial_effect(c)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetRange(LOCATION_SZONE)
e3:SetCountLimit(1)
e3:SetCondition(c18634367.mtcon)
e3:SetOperation(c18634367.mtop)
c:RegisterEffect(e3)
--spsummon
......@@ -35,8 +36,10 @@ function c18634367.initial_effect(c)
e4:SetOperation(c18634367.spop)
c:RegisterEffect(e4)
end
function c18634367.mtcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c18634367.mtop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
if Duel.GetLP(tp)>=1000 then
Duel.PayLPCost(tp,1000)
else
......
......@@ -47,6 +47,7 @@ function c21007444.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetCondition(c21007444.descon)
e1:SetOperation(c21007444.desop)
e1:SetLabel(fid)
e1:SetLabelObject(sg)
......@@ -56,6 +57,13 @@ end
function c21007444.desfilter(c,fid)
return c:GetFlagEffectLabel(21007444)==fid
end
function c21007444.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c21007444.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
return false
else return true end
end
function c21007444.desop(e,tp,eg,ep,ev,re,r,rp)
local sg=e:GetLabelObject()
local dg=sg:Filter(c21007444.desfilter,nil,e:GetLabel())
......
......@@ -13,7 +13,7 @@ function c23171610.initial_effect(c)
c:RegisterEffect(e1)
end
function c23171610.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()~=PHASE_DAMAGE or not Duel.IsDamageCalculated()
return Duel.GetCurrentPhase()~=PHASE_DAMAGE or not Duel.IsDamageCalculated()
end
function c23171610.filter(c)
return c:IsFaceup() and c:IsRace(RACE_MACHINE)
......@@ -27,6 +27,7 @@ end
function c23171610.activate(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.GetMatchingGroup(c23171610.filter2,tp,LOCATION_MZONE,0,nil,e)
local c=e:GetHandler()
local fid=c:GetFieldID()
local tc=sg:GetFirst()
while tc do
local e1=Effect.CreateEffect(c)
......@@ -35,7 +36,7 @@ function c23171610.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+RESET_END)
e1:SetValue(tc:GetAttack()*2)
tc:RegisterEffect(e1)
tc:RegisterFlagEffect(23171610,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(23171610,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1,fid)
tc=sg:GetNext()
end
sg:KeepAlive()
......@@ -45,16 +46,25 @@ function c23171610.activate(e,tp,eg,ep,ev,re,r,rp)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetCountLimit(1)
e2:SetLabel(fid)
e2:SetLabelObject(sg)
e2:SetCondition(c23171610.descon)
e2:SetOperation(c23171610.desop)
Duel.RegisterEffect(e2,tp)
end
function c23171610.desfilter(c)
return c:GetFlagEffect(23171610)>0
function c23171610.desfilter(c,fid)
return c:GetFlagEffectLabel(23171610)==fid
end
function c23171610.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c23171610.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
return false
else return true end
end
function c23171610.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local dg=g:Filter(c23171610.desfilter,nil)
local dg=g:Filter(c23171610.desfilter,nil,e:GetLabel())
g:DeleteGroup()
Duel.Destroy(dg,REASON_EFFECT)
end
......@@ -39,6 +39,7 @@ function c23681456.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(g)
e1:SetCondition(c23681456.retcon)
e1:SetOperation(c23681456.retop)
Duel.RegisterEffect(e1,tp)
end
......@@ -46,12 +47,16 @@ end
function c23681456.retfilter(c,fid)
return c:GetFlagEffectLabel(23681456)==fid
end
function c23681456.retop(e,tp,eg,ep,ev,re,r,rp)
function c23681456.retcon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c23681456.retfilter,nil,e:GetLabel())
Duel.SendtoDeck(tg,nil,2,REASON_EFFECT)
if not g:IsExists(c23681456.retfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
end
return false
else return true end
end
function c23681456.retop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c23681456.retfilter,nil,e:GetLabel())
Duel.SendtoDeck(tg,nil,2,REASON_EFFECT)
end
......@@ -13,7 +13,7 @@ function c24644634.initial_effect(c)
e1:SetOperation(c24644634.spop)
c:RegisterEffect(e1)
end
function c24644634.spcon(e,tp,eg,ep,ev,re,r,rp,chk)
function c24644634.spcon(e,tp,eg,ep,ev,re,r,rp)
if rp==tp or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
return g and g:IsContains(e:GetHandler())
......@@ -34,38 +34,48 @@ function c24644634.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local g=Duel.GetMatchingGroup(c24644634.filter,tp,LOCATION_DECK,0,nil,e,tp)
if g:GetCount()>=2 then
local fid=e:GetHandler():GetFieldID()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,2,2,nil)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
local tc=sg:GetFirst()
tc:RegisterFlagEffect(24644634,RESET_EVENT+0x1fe0000,0,0)
tc:RegisterFlagEffect(24644634,RESET_EVENT+0x1fe0000,0,0,fid)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e1:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e1)
tc=sg:GetNext()
tc:RegisterFlagEffect(24644634,RESET_EVENT+0x1fe0000,0,0)
tc:RegisterFlagEffect(24644634,RESET_EVENT+0x1fe0000,0,0,fid)
local e2=e1:Clone()
tc:RegisterEffect(e2)
sg:KeepAlive()
local de=Effect.CreateEffect(e:GetHandler())
de:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
de:SetCode(EVENT_PHASE+PHASE_END)
de:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,1)
de:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
de:SetCountLimit(1)
de:SetLabel(fid)
de:SetLabelObject(sg)
de:SetCondition(c24644634.descon)
de:SetOperation(c24644634.desop)
Duel.RegisterEffect(de,tp)
end
end
function c24644634.desfilter(c)
return c:GetFlagEffect(24644634)>0
function c24644634.desfilter(c,fid)
return c:GetFlagEffectLabel(25935625)==fid
end
function c24644634.desop(e,tp,eg,ep,ev,re,r,rp)
function c24644634.descon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
local g=e:GetLabelObject()
local tg=g:Filter(c24644634.desfilter,nil)
g:DeleteGroup()
if not g:IsExists(c24644634.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c24644634.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c24644634.desfilter,nil,e:GetLabel())
Duel.Destroy(tg,REASON_EFFECT)
end
......@@ -80,7 +80,7 @@ function c25935625.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=g1:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
tc:RegisterFlagEffect(25935625,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1,fid)
tc:RegisterFlagEffect(25935625,RESET_EVENT+0x1fe0000,0,1,fid)
tc=g1:GetNext()
end
Duel.SpecialSummonComplete()
......@@ -89,10 +89,10 @@ function c25935625.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(g1)
e1:SetCondition(c25935625.rmcon)
e1:SetOperation(c25935625.rmop)
Duel.RegisterEffect(e1,tp)
end
......@@ -100,9 +100,16 @@ end
function c25935625.rmfilter(c,fid)
return c:GetFlagEffectLabel(25935625)==fid
end
function c25935625.rmcon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c25935625.rmfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c25935625.rmop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c25935625.rmfilter,nil,e:GetLabel())
g:DeleteGroup()
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
end
......@@ -44,6 +44,7 @@ function c27174286.op(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(g)
e1:SetCondition(c27174286.rmcon)
e1:SetOperation(c27174286.rmop)
Duel.RegisterEffect(e1,tp)
end
......@@ -51,12 +52,16 @@ end
function c27174286.rmfilter(c,fid)
return c:GetFlagEffectLabel(27174286)==fid
end
function c27174286.rmop(e,tp,eg,ep,ev,re,r,rp)
function c27174286.rmcon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c27174286.rmfilter,nil,e:GetLabel())
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
if not g:IsExists(c27174286.rmfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
end
return false
else return true end
end
function c27174286.rmop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c27174286.rmfilter,nil,e:GetLabel())
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
end
......@@ -66,17 +66,19 @@ function c27971137.spop(e,tp,eg,ep,ev,re,r,rp)
de:SetOperation(c27971137.desop)
if Duel.GetTurnPlayer()==tp and Duel.GetCurrentPhase()==PHASE_END then
de:SetLabel(Duel.GetTurnCount())
else de:SetLabel(0) end
de:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,2)
else
de:SetLabel(0)
de:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN)
end
Duel.RegisterEffect(de,tp)
end
end
function c27971137.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and Duel.GetTurnCount()~=e:GetLabel()
local tc=e:GetLabelObject()
return Duel.GetTurnPlayer()==tp and Duel.GetTurnCount()~=e:GetLabel() and tc:GetFlagEffect(27971137)~=0
end
function c27971137.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetFlagEffect(27971137)>0 then
Duel.Destroy(tc,REASON_EFFECT)
end
e:Reset()
Duel.Destroy(tc,REASON_EFFECT)
end
......@@ -45,7 +45,7 @@ function c30398342.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local res,teg,tep,tev,tre,tr,trp=Duel.CheckEvent(EVENT_DESTROYED,true)
if Duel.GetCurrentPhase()==PHASE_DAMAGE
or (teg:IsExists(c30398342.cfilter,1,nil,tp)
or (res and teg:IsExists(c30398342.cfilter,1,nil,tp)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c30398342.filter,tp,LOCATION_DECK,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,aux.Stringid(30398342,1))) then
......
......@@ -34,7 +34,7 @@ function c3146695.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCode(EVENT_PHASE_START+PHASE_END)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetCountLimit(1)
e2:SetLabelObject(g)
......
......@@ -34,12 +34,14 @@ function c3167573.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetRange(LOCATION_MZONE)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+RESET_END+RESET_SELF_TURN)
e1:SetCountLimit(1)
e1:SetCondition(c3167573.descon)
e1:SetOperation(c3167573.desop)
c:RegisterEffect(e1)
end
end
function c3167573.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c3167573.desop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
......@@ -38,6 +38,7 @@ function c32298781.activate(e,tp,eg,ep,ev,re,r,rp)
de:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
de:SetCode(EVENT_PHASE+PHASE_END)
de:SetCountLimit(1)
de:SetCondition(c32298781.descon)
de:SetOperation(c32298781.desop)
de:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(de,tp)
......@@ -45,6 +46,9 @@ end
function c32298781.dfilter(c)
return c:IsFaceup() and c:IsType(TYPE_NORMAL) and c:GetLevel()==1
end
function c32298781.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c32298781.dfilter,tp,LOCATION_MZONE,0,1,nil)
end
function c32298781.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c32298781.dfilter,tp,LOCATION_MZONE,0,nil)
Duel.Destroy(g,REASON_EFFECT)
......
......@@ -16,6 +16,7 @@ function c32907538.initial_effect(c)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetCondition(c32907538.mtcon)
e2:SetOperation(c32907538.mtop)
c:RegisterEffect(e2)
end
......@@ -50,8 +51,10 @@ end
function c32907538.rcon(e)
return e:GetOwner():IsHasCardTarget(e:GetHandler())
end
function c32907538.mtcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c32907538.mtop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
if Duel.GetLP(tp)>500 and Duel.SelectYesNo(tp,aux.Stringid(32907538,0)) then
Duel.PayLPCost(tp,500)
else
......
......@@ -12,6 +12,7 @@ function c33900648.initial_effect(c)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(1)
e2:SetCondition(c33900648.mtcon)
e2:SetOperation(c33900648.mtop)
c:RegisterEffect(e2)
--adjust
......@@ -96,8 +97,10 @@ function c33900648.initial_effect(c)
e11:SetCondition(c33900648.windcon2)
c:RegisterEffect(e11)
end
function c33900648.mtcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c33900648.mtop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
if Duel.GetLP(tp)>500 and Duel.SelectYesNo(tp,aux.Stringid(33900648,0)) then
Duel.PayLPCost(tp,500)
else
......
......@@ -76,11 +76,10 @@ function c34680482.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
function c34680482.tdcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnCount()~=e:GetLabel() and Duel.GetTurnPlayer()==tp
local tc=e:GetLabelObject()
return Duel.GetTurnCount()~=e:GetLabel() and Duel.GetTurnPlayer()==tp and tc:GetFlagEffectLabel(34680482)==e:GetLabel()
end
function c34680482.tdop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetFlagEffectLabel(34680482)==e:GetLabel() then
Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)
end
Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)
end
......@@ -27,6 +27,7 @@ function c34707034.operation(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()==0 then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<g:GetCount() then return end
local c=e:GetHandler()
local fid=c:GetFieldID()
local tc=g:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_DEFENCE)
......@@ -45,7 +46,7 @@ function c34707034.operation(e,tp,eg,ep,ev,re,r,rp)
e3:SetCode(EFFECT_DISABLE_EFFECT)
e3:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e3)
tc:RegisterFlagEffect(34707034,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(34707034,RESET_EVENT+0x1fe0000,0,1,fid)
tc=g:GetNext()
end
Duel.SpecialSummonComplete()
......@@ -53,18 +54,27 @@ function c34707034.operation(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(g)
e1:SetCondition(c34707034.descon)
e1:SetOperation(c34707034.desop)
Duel.RegisterEffect(e1,tp)
end
function c34707034.desfilter(c)
return c:GetFlagEffect(34707034)>0
function c34707034.desfilter(c,fid)
return c:GetFlagEffectLabel(34707034)==fid
end
function c34707034.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c34707034.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c34707034.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c34707034.desfilter,nil)
g:DeleteGroup()
local tg=g:Filter(c34707034.desfilter,nil,e:GetLabel())
Duel.Destroy(tg,REASON_EFFECT)
end
......@@ -28,13 +28,15 @@ function c35480699.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetOperation(c35480699.flip)
e1:SetCondition(c35480699.flipcon)
e1:SetOperation(c35480699.flipop)
Duel.RegisterEffect(e1,tp)
end
function c35480699.flip(e,tp,eg,ep,ev,re,r,rp)
function c35480699.flipcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(Card.IsFacedown,tp,0,LOCATION_MZONE,1,nil)
end
function c35480699.flipop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsFacedown,tp,0,LOCATION_MZONE,nil)
if g:GetCount()>0 then
Duel.ChangePosition(g,POS_FACEUP_DEFENCE)
Duel.Draw(1-tp,g:GetCount(),REASON_EFFECT)
end
local ct=Duel.ChangePosition(g,POS_FACEUP_DEFENCE)
Duel.Draw(1-tp,ct,REASON_EFFECT)
end
......@@ -36,7 +36,7 @@ function c38468214.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_SET_CONTROL)
e1:SetValue(tp)
e1:SetReset(RESET_EVENT+0x1fc0000)
e1:SetCondition(c38468214.con)
e1:SetCondition(c38468214.ctcon)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......@@ -45,6 +45,7 @@ function c38468214.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetCountLimit(1)
e2:SetLabel(tp)
e2:SetReset(RESET_EVENT+0x1fe0000)
e2:SetCondition(c38468214.rmctcon)
e2:SetOperation(c38468214.rmctop)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
......@@ -55,14 +56,15 @@ function c38468214.operation(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e3)
end
end
function c38468214.con(e)
function c38468214.ctcon(e)
local c=e:GetOwner()
return c:IsHasCardTarget(e:GetHandler()) and not c:IsDisabled()
end
function c38468214.rmctcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==e:GetLabel()
end
function c38468214.rmctop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==e:GetLabel() then
e:GetHandler():RemoveCounter(tp,0xe,1,REASON_EFFECT)
end
e:GetHandler():RemoveCounter(tp,0xe,1,REASON_EFFECT)
end
function c38468214.descon(e)
return e:GetHandler():GetCounter(0xe)==0
......
......@@ -27,15 +27,17 @@ function c39440937.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetOperation(c39440937.todeck)
e1:SetCondition(c39440937.tdcon)
e1:SetOperation(c39440937.tdop)
Duel.RegisterEffect(e1,tp)
end
function c39440937.filter2(c)
return c:IsFaceup() and c:IsType(TYPE_SYNCHRO)
function c39440937.tdfilter(c)
return c:IsFaceup() and c:IsType(TYPE_SYNCHRO) and c:IsAbleToExtra()
end
function c39440937.todeck(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c39440937.filter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
if g:GetCount()>0 then
Duel.SendtoDeck(g,nil,0,REASON_EFFECT)
end
function c39440937.tdcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c39440937.tdfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
end
function c39440937.tdop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c39440937.tdfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
Duel.SendtoDeck(g,nil,0,REASON_EFFECT)
end
......@@ -37,6 +37,7 @@ function c40240595.eqop(e,tp,eg,ep,ev,re,r,rp)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetRange(LOCATION_SZONE)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCondition(c40240595.checkcon)
e2:SetOperation(c40240595.checkop)
e2:SetCountLimit(1)
e2:SetLabel(0)
......@@ -57,8 +58,10 @@ function c40240595.eqop(e,tp,eg,ep,ev,re,r,rp)
c:RegisterEffect(e4)
end
end
function c40240595.checkcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c40240595.checkop(e,tp,eg,ep,ev,re,r,rp)
if tp~=Duel.GetTurnPlayer() then return end
local c=e:GetHandler()
local ct=e:GetLabel()
ct=ct+1
......
......@@ -11,7 +11,7 @@ function c41098335.initial_effect(c)
--atk clear
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCode(EVENT_TURN_END)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetOperation(c41098335.retop)
......
......@@ -5,7 +5,7 @@ function c46480475.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_DRAW_PHASE)
e1:SetTarget(c46480475.tg)
e1:SetTarget(c46480475.target)
c:RegisterEffect(e1)
--disable spsummon
local e2=Effect.CreateEffect(c)
......@@ -20,7 +20,7 @@ end
function c46480475.splimit(e,c,tp,sumtp,sumpos)
return bit.band(sumtp,SUMMON_TYPE_SYNCHRO)==SUMMON_TYPE_SYNCHRO
end
function c46480475.tg(e,tp,eg,ep,ev,re,r,rp,chk)
function c46480475.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......@@ -29,12 +29,15 @@ function c46480475.tg(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetLabel(3)
e1:SetCountLimit(1)
e1:SetCondition(c46480475.tgcon)
e1:SetOperation(c46480475.tgop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END+RESET_SELF_TURN,3)
e:GetHandler():RegisterEffect(e1)
end
function c46480475.tgcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c46480475.tgop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
local ct=e:GetLabel()
ct=ct-1
e:SetLabel(ct)
......
......@@ -45,6 +45,7 @@ function c46925518.fdop(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetCondition(c46925518.condition)
e1:SetOperation(c46925518.operation)
e1:SetReset(RESET_PHASE+RESET_END)
Duel.RegisterEffect(e1,tp)
......@@ -55,6 +56,9 @@ end
function c46925518.spfilter(c,e,tp,lv)
return c:IsSetCard(0x8d) and c:IsLevelBelow(lv) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEDOWN)
end
function c46925518.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c46925518.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
end
function c46925518.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c46925518.filter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
if g:GetCount()==0 then return end
......
......@@ -103,8 +103,8 @@ function c50485594.spop(e,tp,eg,ep,ev,re,r,rp)
local tc2=sg2:GetFirst()
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEUP)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEUP)
tc1:RegisterFlagEffect(50485594,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1,fid)
tc2:RegisterFlagEffect(50485594,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1,fid)
tc1:RegisterFlagEffect(50485594,RESET_EVENT+0x1fe0000,0,1,fid)
tc2:RegisterFlagEffect(50485594,RESET_EVENT+0x1fe0000,0,1,fid)
Duel.SpecialSummonComplete()
sg1:Merge(sg2)
sg1:KeepAlive()
......@@ -112,10 +112,10 @@ function c50485594.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(sg1)
e1:SetCondition(c50485594.descon)
e1:SetOperation(c50485594.desop)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
......@@ -137,9 +137,16 @@ end
function c50485594.desfilter(c,fid)
return c:GetFlagEffectLabel(50485594)==fid
end
function c50485594.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c50485594.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c50485594.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c50485594.desfilter,nil,e:GetLabel())
g:DeleteGroup()
Duel.Destroy(tg,REASON_EFFECT)
end
......@@ -40,6 +40,7 @@ function c51405049.activate(e,tp,eg,ep,ev,re,r,rp)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCountLimit(1)
e2:SetCondition(c51405049.damcon)
e2:SetOperation(c51405049.damop)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetLabelObject(e1)
......@@ -53,8 +54,9 @@ function c51405049.regop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(0)
end
end
function c51405049.damcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetLabelObject():GetLabel()~=0
end
function c51405049.damop(e,tp,eg,ep,ev,re,r,rp)
if e:GetLabelObject():GetLabel()~=0 then
Duel.Damage(tp,2000,REASON_EFFECT)
end
Duel.Damage(tp,2000,REASON_EFFECT)
end
......@@ -34,6 +34,7 @@ function c52140003.target(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetRange(LOCATION_SZONE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetCondition(c52140003.tgcon)
e1:SetOperation(c52140003.tgop)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
......@@ -57,8 +58,10 @@ function c52140003.damop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Damage(p,d,REASON_EFFECT)
end
function c52140003.tgcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c52140003.tgop(e,tp,eg,ep,ev,re,r,rp)
if tp~=Duel.GetTurnPlayer() then return end
local c=e:GetHandler()
local ct=c:GetTurnCounter()
c:SetTurnCounter(ct+1)
......
......@@ -12,6 +12,7 @@ function c53039326.initial_effect(c)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(1)
e2:SetCondition(c53039326.mtcon)
e2:SetOperation(c53039326.mtop)
c:RegisterEffect(e2)
--search
......@@ -35,8 +36,10 @@ end
function c53039326.cfilter(c)
return c:IsCode(36623431) and not c:IsPublic()
end
function c53039326.mtcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c53039326.mtop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
local g=Duel.GetMatchingGroup(c53039326.cfilter,tp,LOCATION_HAND,0,nil)
local sel=1
if g:GetCount()~=0 then
......
......@@ -49,14 +49,15 @@ function c56240989.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c56240989.filter,tp,LOCATION_DECK,0,nil,e,tp)
local dg=g:Filter(c56240989.filter2,nil,g)
if dg:GetCount()>=1 then
local fid=c:GetFieldID()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=dg:Select(tp,1,1,nil)
local tc1=sg:GetFirst()
local tc2=dg:Filter(Card.IsCode,tc1,tc1:GetCode()):GetFirst()
Duel.SpecialSummonStep(tc1,154,tp,tp,false,false,POS_FACEUP)
Duel.SpecialSummonStep(tc2,154,tp,tp,false,false,POS_FACEUP)
tc1:RegisterFlagEffect(56240989,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc2:RegisterFlagEffect(56240989,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc1:RegisterFlagEffect(56240989,RESET_EVENT+0x1fe0000,0,1,fid)
tc2:RegisterFlagEffect(56240989,RESET_EVENT+0x1fe0000,0,1,fid)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
......@@ -77,19 +78,27 @@ function c56240989.spop(e,tp,eg,ep,ev,re,r,rp)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_PHASE+PHASE_END)
e5:SetReset(RESET_PHASE+PHASE_END)
e5:SetCountLimit(1)
e5:SetLabel(fid)
e5:SetLabelObject(sg)
e5:SetCondition(c56240989.rmcon)
e5:SetOperation(c56240989.rmop)
Duel.RegisterEffect(e5,tp)
end
end
function c56240989.rmfilter(c)
return c:GetFlagEffect(56240989)>0
function c56240989.rmfilter(c,fid)
return c:GetFlagEffectLabel(56240989)==fid
end
function c56240989.rmcon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c56240989.rmfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c56240989.rmop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c56240989.rmfilter,nil)
g:DeleteGroup()
local tg=g:Filter(c56240989.rmfilter,nil,e:GetLabel())
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
end
......@@ -38,6 +38,7 @@ function c5703682.activate(e,tp,eg,ep,ev,re,r,rp)
de:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
de:SetCode(EVENT_PHASE+PHASE_END)
de:SetCountLimit(1)
de:SetCondition(c5703682.descon)
de:SetOperation(c5703682.desop)
de:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(de,tp)
......@@ -45,6 +46,9 @@ end
function c5703682.dfilter(c)
return c:IsFaceup() and c:IsType(TYPE_NORMAL) and c:GetLevel()==2
end
function c5703682.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c5703682.dfilter,tp,LOCATION_MZONE,0,1,nil)
end
function c5703682.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c5703682.dfilter,tp,LOCATION_MZONE,0,nil)
Duel.Destroy(g,REASON_EFFECT)
......
......@@ -49,6 +49,7 @@ function c57355219.activate1(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,2)
e1:SetLabelObject(tc)
e1:SetCountLimit(1)
e1:SetCondition(c57355219.retcon)
e1:SetOperation(c57355219.retop)
tc:SetTurnCounter(0)
Duel.RegisterEffect(e1,tp)
......@@ -75,17 +76,19 @@ function c57355219.activate2(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,2)
e1:SetLabelObject(tc)
e1:SetCountLimit(1)
e1:SetCondition(c57355219.retcon)
e1:SetOperation(c57355219.retop)
tc:SetTurnCounter(0)
Duel.RegisterEffect(e1,tp)
end
function c57355219.retcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c57355219.retop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then
local c=e:GetLabelObject()
local ct=c:GetTurnCounter()
c:SetTurnCounter(ct+1)
if ct==1 then
Duel.ReturnToField(c,POS_FACEUP_ATTACK)
end
local c=e:GetLabelObject()
local ct=c:GetTurnCounter()
c:SetTurnCounter(ct+1)
if ct==1 then
Duel.ReturnToField(c,POS_FACEUP_ATTACK)
end
end
......@@ -36,10 +36,11 @@ end
function c57836546.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if g:GetCount()~=2 or Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local fid=e:GetHandler():GetFieldID()
local tc=g:GetFirst()
while tc do
if Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then
tc:RegisterFlagEffect(57836546,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(57836546,RESET_EVENT+0x1fe0000,0,1,fid)
end
tc=g:GetNext()
end
......@@ -48,19 +49,28 @@ function c57836546.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCountLimit(1)
e1:SetCondition(c57836546.descon)
e1:SetOperation(c57836546.desop)
e1:SetLabel(fid)
e1:SetLabelObject(g)
Duel.RegisterEffect(e1,tp)
end
function c57836546.desfilter(c)
return c:GetFlagEffect(57836546)>0
function c57836546.desfilter(c,fid)
return c:GetFlagEffectLabel(57836546)==fid
end
function c57836546.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c57836546.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c57836546.desop(e,tp,eg,ep,ev,re,r,rp)
local sg=e:GetLabelObject()
local dg=sg:Filter(c57836546.desfilter,nil)
sg:DeleteGroup()
local dg=sg:Filter(c57836546.desfilter,nil,e:GetLabel())
if dg:GetCount()>0 then
Duel.Destroy(dg,REASON_EFFECT)
end
......
--
--苦渋の転生
function c57902193.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......@@ -33,8 +33,7 @@ function c57902193.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
function c57902193.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
if e:GetHandler():IsLocation(LOCATION_HAND) then
if Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,e:GetHandler())
end
end
......@@ -24,6 +24,7 @@ function c59593925.initial_effect(c)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetCountLimit(1)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(c59593925.sdescon)
e3:SetOperation(c59593925.sdesop)
c:RegisterEffect(e3)
end
......@@ -51,8 +52,10 @@ function c59593925.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(tc,REASON_EFFECT)
end
end
function c59593925.sdescon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c59593925.sdesop(e,tp,eg,ep,ev,re,r,rp)
if tp~=Duel.GetTurnPlayer() then return end
local c=e:GetHandler()
local ct=c:GetTurnCounter()
ct=ct+1
......
......@@ -40,9 +40,10 @@ function c60202749.target(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetCondition(c60202749.sdescon)
e1:SetOperation(c60202749.sdesop)
if Duel.GetCurrentPhase()==PHASE_END and Duel.GetTurnPlayer()~=tp then
e1:SetLabel(1)
e1:SetLabel(Duel.GetTurnCount())
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,2)
else
e1:SetLabel(0)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
end
e:GetHandler():RegisterEffect(e1)
......@@ -71,14 +72,10 @@ function c60202749.rcon(e)
return e:GetOwner():IsHasCardTarget(e:GetHandler())
end
function c60202749.sdescon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
return Duel.GetTurnPlayer()~=tp and Duel.GetTurnCount()~=e:GetLabel()
end
function c60202749.sdesop(e,tp,eg,ep,ev,re,r,rp)
if e:GetLabel()==0 then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
else
e:SetLabel(0)
end
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
function c60202749.aclimit(e,re,tp)
return re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:IsActiveType(TYPE_SPELL)
......
......@@ -28,12 +28,15 @@ function c61258740.target(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetRange(LOCATION_SZONE)
e1:SetCondition(c61258740.tgcon)
e1:SetOperation(c61258740.tgop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,3)
e:GetHandler():RegisterEffect(e1)
end
function c61258740.tgcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
end
function c61258740.tgop(e,tp,eg,ep,ev,re,r,rp)
if tp==Duel.GetTurnPlayer() then return end
local c=e:GetHandler()
local ct=c:GetTurnCounter()
ct=ct+1
......
......@@ -12,6 +12,7 @@ function c61650133.initial_effect(c)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(1)
e2:SetCondition(c61650133.mtcon)
e2:SetOperation(c61650133.mtop)
c:RegisterEffect(e2)
--remove
......@@ -25,8 +26,10 @@ function c61650133.initial_effect(c)
e3:SetOperation(c61650133.rmop)
c:RegisterEffect(e3)
end
function c61650133.mtcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c61650133.mtop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
if Duel.GetLP(tp)>500 and Duel.SelectYesNo(tp,aux.Stringid(61650133,0)) then
Duel.PayLPCost(tp,500)
else
......
......@@ -31,7 +31,8 @@ function c61705417.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetOperation(c61705417.tograve)
e1:SetCondition(c61705417.tgcon)
e1:SetOperation(c61705417.tgop)
e1:SetLabelObject(tc)
e1:SetReset(RESET_EVENT+0x5c0000+RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
......@@ -51,11 +52,13 @@ function c61705417.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e3,tp)
end
end
function c61705417.tograve(e,tp,eg,ep,ev,re,r,rp)
function c61705417.tgcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetControler()~=tc:GetOwner() and tc:GetFlagEffect(61705417)~=0 then
Duel.SendtoGrave(tc,REASON_EFFECT)
end
return tc:GetControler()~=tc:GetOwner() and tc:GetFlagEffect(61705417)~=0
end
function c61705417.tgop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
Duel.SendtoGrave(tc,REASON_EFFECT)
end
function c61705417.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......
......@@ -38,20 +38,22 @@ end
function c63851864.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c63851864.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c63851864.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c63851864.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,c,1,0,0)
--destroy
local e1=Effect.CreateEffect(e:GetHandler())
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetRange(LOCATION_SZONE)
e1:SetCondition(c63851864.descon)
e1:SetOperation(c63851864.desop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,5)
e:GetHandler():SetTurnCounter(0)
e:GetHandler():RegisterEffect(e1)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END+RESET_SELF_TURN,3)
c:SetTurnCounter(0)
c:RegisterEffect(e1)
end
function c63851864.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -60,8 +62,10 @@ function c63851864.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Equip(tp,c,tc)
end
end
function c63851864.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c63851864.desop(e,tp,eg,ep,ev,re,r,rp)
if tp~=Duel.GetTurnPlayer() then return end
local c=e:GetHandler()
local ct=c:GetTurnCounter()
ct=ct+1
......
......@@ -163,6 +163,7 @@ function c64496451.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(sg)
e1:SetCondition(c64496451.descon)
e1:SetOperation(c64496451.desop)
Duel.RegisterEffect(e1,tp)
end
......@@ -170,14 +171,18 @@ end
function c64496451.desfilter(c,fid)
return c:GetFlagEffectLabel(64496451)==fid
end
function c64496451.desop(e,tp,eg,ep,ev,re,r,rp)
function c64496451.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c64496451.desfilter,nil,e:GetLabel())
Duel.Destroy(tg,REASON_EFFECT)
if not g:IsExists(c64496451.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
end
return false
else return true end
end
function c64496451.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c64496451.desfilter,nil,e:GetLabel())
Duel.Destroy(tg,REASON_EFFECT)
end
function c64496451.valcheck(e,c)
local g=c:GetMaterial()
......
......@@ -50,6 +50,7 @@ function c66165755.spop(e,tp,eg,ep,ev,re,r,rp)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetCondition(c66165755.rmcon)
e3:SetOperation(c66165755.rmop)
e3:SetReset(RESET_EVENT+0xfe0000)
e3:SetCountLimit(1)
......@@ -57,7 +58,8 @@ function c66165755.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
function c66165755.rmop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_EFFECT)
end
return Duel.GetTurnPlayer()==tp
end
function c66165755.rmop(e,tp,eg,ep,ev,re,r,rp)
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_EFFECT)
end
......@@ -51,14 +51,17 @@ function c68597372.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetOperation(c68597372.flip)
e1:SetCondition(c68597372.flipcon)
e1:SetOperation(c68597372.flipop)
e1:SetLabelObject(tc)
Duel.RegisterEffect(e1,tp)
end
end
function c68597372.flip(e,tp,eg,ep,ev,re,r,rp)
function c68597372.flipcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:IsFacedown() and tc:GetFlagEffect(68597372)~=0 then
Duel.ChangePosition(tc,POS_FACEUP_ATTACK)
end
return tc:IsFacedown() and tc:GetFlagEffect(68597372)~=0
end
function c68597372.flipop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
Duel.ChangePosition(tc,POS_FACEUP_ATTACK)
end
--Obedience Schooled
--魔獣の懐柔
function c72537897.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......@@ -51,11 +51,12 @@ function c72537897.activate(e,tp,eg,ep,ev,re,r,rp)
local sg3=g:Select(tp,1,1,nil)
sg1:Merge(sg2)
sg1:Merge(sg3)
local tc=sg1:GetFirst()
local c=e:GetHandler()
local fid=c:GetFieldID()
local tc=sg1:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
tc:RegisterFlagEffect(72537897,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(72537897,RESET_EVENT+0x1fe0000,0,1,fid)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
......@@ -72,20 +73,29 @@ function c72537897.activate(e,tp,eg,ep,ev,re,r,rp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetReset(RESET_PHASE+PHASE_END)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCountLimit(1)
e3:SetLabel(fid)
e3:SetLabelObject(sg1)
e3:SetCondition(c72537897.descon)
e3:SetOperation(c72537897.desop)
Duel.RegisterEffect(e3,tp)
Duel.SpecialSummonComplete()
end
end
function c72537897.desfilter(c)
return c:GetFlagEffect(72537897)>0
function c72537897.desfilter(c,fid)
return c:GetFlagEffectLabel(72537897)==fid
end
function c72537897.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c72537897.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c72537897.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c72537897.desfilter,nil)
g:DeleteGroup()
local tg=g:Filter(c72537897.desfilter,nil,e:GetLabel())
Duel.Destroy(tg,REASON_EFFECT)
end
......@@ -19,22 +19,22 @@ function c73567374.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c73567374.filter,tp,LOCATION_MZONE,0,nil)
local tc=g:GetFirst()
while tc do
if c73567374.filter(tc) then
tc:EnableDualState()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetOperation(c73567374.flip)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1,true)
end
tc:EnableDualState()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(c73567374.flipcon)
e1:SetOperation(c73567374.flipop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1,true)
tc=g:GetNext()
end
end
function c73567374.flip(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsCanTurnSet() then
Duel.ChangePosition(e:GetHandler(),POS_FACEDOWN_DEFENCE)
end
function c73567374.flipcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsCanTurnSet()
end
function c73567374.flipop(e,tp,eg,ep,ev,re,r,rp)
Duel.ChangePosition(e:GetHandler(),POS_FACEDOWN_DEFENCE)
end
......@@ -40,6 +40,7 @@ function c74845897.op(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(g)
e1:SetCondition(c74845897.rmcon)
e1:SetOperation(c74845897.rmop)
Duel.RegisterEffect(e1,tp)
end
......@@ -47,6 +48,13 @@ end
function c74845897.rmfilter(c,fid)
return c:GetFlagEffectLabel(74845897)==fid
end
function c74845897.rmcon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c74845897.rmfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
return false
else return true end
end
function c74845897.rmop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c74845897.rmfilter,nil,e:GetLabel())
......
......@@ -48,16 +48,19 @@ function c7573135.hspop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabelObject(tc)
e1:SetCondition(c7573135.retcon)
e1:SetOperation(c7573135.retop)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function c7573135.retcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
return tc:GetFlagEffect(7573135)>0
end
function c7573135.retop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetFlagEffect(7573135)>0 then
Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)
end
Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)
end
function c7573135.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetBattledGroupCount()>0
......
......@@ -38,6 +38,7 @@ function c77859858.initial_effect(c)
e6:SetRange(LOCATION_SZONE)
e6:SetCode(EVENT_PHASE+PHASE_END)
e6:SetCountLimit(1)
e6:SetCondition(c77859858.costcon)
e6:SetOperation(c77859858.costop)
c:RegisterEffect(e6)
end
......@@ -64,8 +65,10 @@ function c77859858.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
function c77859858.costcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c77859858.costop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
if Duel.GetLP(tp)>=700 then
Duel.PayLPCost(tp,700)
else
......
......@@ -31,14 +31,16 @@ function c79544790.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCondition(c79544790.descon)
e1:SetOperation(c79544790.desop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,2)
e1:SetCountLimit(1)
tc:RegisterEffect(e1,true)
end
end
function c79544790.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c79544790.desop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
......@@ -68,7 +68,11 @@ function c81587028.spop(e,tp,eg,ep,ev,re,r,rp)
de:SetOperation(c81587028.desop)
if Duel.GetTurnPlayer()==tp and Duel.GetCurrentPhase()==PHASE_END then
de:SetLabel(Duel.GetTurnCount())
else de:SetLabel(0) end
de:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,2)
else
de:SetLabel(0)
de:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN)
end
Duel.RegisterEffect(de,tp)
end
end
......@@ -83,5 +87,4 @@ function c81587028.desop(e,tp,eg,ep,ev,re,r,rp)
local tg=g:Filter(c81587028.desfilter,nil)
g:DeleteGroup()
Duel.Destroy(tg,REASON_EFFECT)
e:Reset()
end
......@@ -52,6 +52,7 @@ function c82760689.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetCondition(c82760689.drcon)
e1:SetOperation(c82760689.drop)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
......@@ -59,8 +60,9 @@ end
function c82760689.filter(c,g)
return g:IsExists(Card.IsCode,1,c,c:GetCode())
end
function c82760689.drcon(e,tp,eg,ep,ev,re,r,rp)
return c82760689[0] or c82760689[1]:IsExists(c82760689.filter,1,nil,c82760689[1])
end
function c82760689.drop(e,tp,eg,ep,ev,re,r,rp)
if c82760689[0] or c82760689[1]:IsExists(c82760689.filter,1,nil,c82760689[1]) then
Duel.Draw(tp,2,REASON_EFFECT)
end
Duel.Draw(tp,2,REASON_EFFECT)
end
......@@ -34,6 +34,7 @@ function c8279188.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetRange(LOCATION_SZONE)
e1:SetCondition(c8279188.descon)
e1:SetOperation(c8279188.desop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,3)
e:GetHandler():RegisterEffect(e1)
......@@ -58,8 +59,10 @@ function c8279188.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateAttack()
end
end
function c8279188.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
end
function c8279188.desop(e,tp,eg,ep,ev,re,r,rp)
if tp==Duel.GetTurnPlayer() then return end
local c=e:GetHandler()
local ct=c:GetTurnCounter()
ct=ct+1
......
......@@ -55,18 +55,23 @@ function c83054225.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(sg)
e1:SetCondition(c83054225.retcon)
e1:SetOperation(c83054225.retop)
Duel.RegisterEffect(e1,tp)
end
function c83054225.retfilter(c,fid)
return c:GetFlagEffectLabel(83054225)==fid
end
function c83054225.retop(e,tp,eg,ep,ev,re,r,rp)
function c83054225.retcon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c83054225.retfilter,nil,e:GetLabel())
Duel.SendtoDeck(tg,nil,2,REASON_EFFECT)
if not g:IsExists(c83054225.retfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
end
return false
else return true end
end
function c83054225.retop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c83054225.retfilter,nil,e:GetLabel())
Duel.SendtoDeck(tg,nil,2,REASON_EFFECT)
end
......@@ -37,12 +37,15 @@ function c84808313.target(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetRange(LOCATION_SZONE)
e1:SetCondition(c84808313.descon)
e1:SetOperation(c84808313.desop)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
end
function c84808313.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
end
function c84808313.desop(e,tp,eg,ep,ev,re,r,rp)
if tp==Duel.GetTurnPlayer() then return end
local c=e:GetHandler()
local ct=c:GetTurnCounter()
ct=ct+1
......
......@@ -61,6 +61,7 @@ function c85138716.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(sg)
e1:SetCondition(c85138716.descon)
e1:SetOperation(c85138716.desop)
Duel.RegisterEffect(e1,tp)
end
......@@ -68,12 +69,16 @@ end
function c85138716.desfilter(c,fid)
return c:GetFlagEffectLabel(85138716)==fid
end
function c85138716.desop(e,tp,eg,ep,ev,re,r,rp)
function c85138716.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c85138716.desfilter,nil,e:GetLabel())
Duel.Destroy(tg,REASON_EFFECT)
if not g:IsExists(c85138716.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
end
return false
else return true end
end
function c85138716.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c85138716.desfilter,nil,e:GetLabel())
Duel.Destroy(tg,REASON_EFFECT)
end
......@@ -51,12 +51,10 @@ function c86742443.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e3,tp)
end
function c86742443.damcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
return Duel.GetTurnPlayer()==tp and e:GetLabel()==0
end
function c86742443.damop(e,tp,eg,ep,ev,re,r,rp)
if e:GetLabel()==0 then
Duel.Damage(1-tp,1000,REASON_EFFECT)
end
Duel.Damage(1-tp,1000,REASON_EFFECT)
end
function c86742443.damop2(e,tp,eg,ep,ev,re,r,rp)
if eg:GetFirst():GetCode()==e:GetLabel() then
......
......@@ -39,13 +39,16 @@ function c87046457.acttg(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetRange(LOCATION_SZONE)
e1:SetCondition(c87046457.descon)
e1:SetOperation(c87046457.desop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END+RESET_SELF_TURN,2)
c:RegisterEffect(e1)
c:SetTurnCounter(0)
end
function c87046457.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c87046457.desop(e,tp,eg,ep,ev,re,r,rp)
if tp~=Duel.GetTurnPlayer() then return end
local c=e:GetHandler()
local ct=c:GetTurnCounter()
ct=ct+1
......
......@@ -34,7 +34,7 @@ function c87902575.initial_effect(c)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_PHASE+PHASE_STANDBY)
e4:SetCode(EVENT_PHASE_START+PHASE_MAIN1)
e4:SetRange(LOCATION_SZONE)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetCountLimit(1)
......
......@@ -25,6 +25,7 @@ function c90075978.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetCondition(c90075978.setcon)
e1:SetOperation(c90075978.setop)
Duel.RegisterEffect(e1,tp)
end
......@@ -35,6 +36,9 @@ function c90075978.spfilter(c,e,tp)
return c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsRace(RACE_REPTILE) and c:GetLevel()>=7
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c90075978.setcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c90075978.sfilter,tp,LOCATION_MZONE,0,1,nil)
end
function c90075978.setop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c90075978.sfilter,tp,LOCATION_MZONE,0,nil)
if g:GetCount()>0 then
......
......@@ -27,14 +27,17 @@ function c91148083.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetCondition(c91148083.rmcon)
e1:SetOperation(c91148083.rmop)
e1:SetLabelObject(tc)
e1:SetReset(RESET_PHASE+PHASE_END+RESET_OPPO_TURN,1)
Duel.RegisterEffect(e1,tp)
end
end
function c91148083.rmcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
end
function c91148083.rmop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then return end
local tc=e:GetLabelObject()
if tc:GetFlagEffect(91148083)==0 then return end
Duel.Destroy(tc,REASON_EFFECT)
......
......@@ -94,6 +94,7 @@ function c93211810.activate(e,tp,eg,ep,ev,re,r,rp)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetCountLimit(1)
e4:SetCondition(c93211810.descon)
e4:SetOperation(c93211810.desop)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
......@@ -105,6 +106,9 @@ end
function c93211810.desfilter(c)
return c:IsFaceup() and c:IsRace(RACE_MACHINE)
end
function c93211810.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c93211810.desfilter,tp,LOCATION_MZONE,0,1,nil)
end
function c93211810.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c93211810.desfilter,tp,LOCATION_MZONE,0,nil)
Duel.Destroy(g,REASON_EFFECT)
......
......@@ -39,14 +39,16 @@ function c9418534.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCondition(c9418534.descon)
e1:SetOperation(c9418534.desop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,2)
e1:SetCountLimit(1)
tc:RegisterEffect(e1)
end
end
function c9418534.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c9418534.desop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
......@@ -40,9 +40,13 @@ function c95507060.activate(e,tp,eg,ep,ev,re,r,rp)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetReset(RESET_PHASE+RESET_END)
e2:SetCountLimit(1)
e2:SetCondition(c95507060.descon)
e2:SetOperation(c95507060.desop)
Duel.RegisterEffect(e2,tp)
end
function c95507060.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c95507060.filter,tp,LOCATION_MZONE,0,1,nil)
end
function c95507060.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c95507060.filter,tp,LOCATION_MZONE,0,nil)
Duel.Destroy(g,REASON_EFFECT)
......
......@@ -53,6 +53,7 @@ function c97173708.activate(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()==0 then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<g:GetCount() then return end
local c=e:GetHandler()
local fid=c:GetFieldID()
local tc=g:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
......@@ -66,7 +67,7 @@ function c97173708.activate(e,tp,eg,ep,ev,re,r,rp)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e2)
tc:RegisterFlagEffect(97173708,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(97173708,RESET_EVENT+0x1fe0000,0,1,fid)
tc=g:GetNext()
end
Duel.SpecialSummonComplete()
......@@ -74,18 +75,27 @@ function c97173708.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(g)
e1:SetCondition(c97173708.descon)
e1:SetOperation(c97173708.desop)
Duel.RegisterEffect(e1,tp)
end
function c97173708.desfilter(c)
return c:GetFlagEffect(97173708)>0
function c97173708.desfilter(c,fid)
return c:GetFlagEffectLabel(97173708)==fid
end
function c97173708.descon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(c97173708.desfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c97173708.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c97173708.desfilter,nil)
g:DeleteGroup()
local tg=g:Filter(c97173708.desfilter,nil,e:GetLabel())
Duel.Destroy(tg,REASON_EFFECT)
end
......@@ -25,6 +25,7 @@ function c99173029.initial_effect(c)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetRange(LOCATION_SZONE)
e4:SetCountLimit(1)
e4:SetCondition(c99173029.mtcon)
e4:SetOperation(c99173029.mtop)
c:RegisterEffect(e4)
end
......@@ -37,8 +38,10 @@ function c99173029.levop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
function c99173029.mtcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function c99173029.mtop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
if Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0 and Duel.SelectYesNo(tp,aux.Stringid(99173029,0)) then
Duel.DiscardHand(tp,nil,1,1,REASON_COST+REASON_DISCARD)
else
......
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