Commit df33ef84 authored by VanillaSalt's avatar VanillaSalt

fix

parent e9861e43
...@@ -52,7 +52,7 @@ function c13035077.destg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -52,7 +52,7 @@ function c13035077.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,e:GetHandler()) if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,e:GetHandler())
and Duel.IsExistingMatchingCard(c13035077.thfilter,tp,LOCATION_DECK,0,1,nil) end and Duel.IsExistingMatchingCard(c13035077.thfilter,tp,LOCATION_DECK,0,1,nil) end
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_HAND+LOCATION_ONFIELD,0,e:GetHandler()) local g=Duel.GetMatchingGroup(nil,tp,LOCATION_HAND+LOCATION_ONFIELD,0,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,tp,LOCATION_HAND+LOCATION_ONFIELD) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function c13035077.desop(e,tp,eg,ep,ev,re,r,rp) function c13035077.desop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -14,5 +14,7 @@ function c3366982.filter(c) ...@@ -14,5 +14,7 @@ function c3366982.filter(c)
return c:IsFaceup() and c:IsAttribute(0xf8) return c:IsFaceup() and c:IsAttribute(0xf8)
end end
function c3366982.dircon(e) function c3366982.dircon(e)
return not Duel.IsExistingMatchingCard(c3366982.filter,e:GetHandlerPlayer(),0,LOCATION_MZONE,1,nil) local tp=e:GetHandlerPlayer()
return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_MZONE,1,nil)
and not Duel.IsExistingMatchingCard(c3366982.filter,tp,0,LOCATION_MZONE,1,nil)
end end
...@@ -101,6 +101,7 @@ function c39373426.cntg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -101,6 +101,7 @@ function c39373426.cntg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end end
function c39373426.cnop(e,tp,eg,ep,ev,re,r,rp) function c39373426.cnop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.GetControl(tc,tp,PHASE_END,1) then if tc:IsRelateToEffect(e) and Duel.GetControl(tc,tp,PHASE_END,1) then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
......
...@@ -23,9 +23,7 @@ function c5026221.initial_effect(c) ...@@ -23,9 +23,7 @@ function c5026221.initial_effect(c)
end end
function c5026221.target1(e,tp,eg,ep,ev,re,r,rp,chk) function c5026221.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local tn=Duel.GetTurnPlayer() if c5026221.condition(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
if ((tn==tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2)) or (tn~=tp and (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)))
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c5026221.filter,tp,LOCATION_HAND,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c5026221.filter,tp,LOCATION_HAND,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,94) then and Duel.SelectYesNo(tp,94) then
...@@ -39,14 +37,14 @@ function c5026221.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -39,14 +37,14 @@ function c5026221.condition(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then if Duel.GetTurnPlayer()==tp then
return ph==PHASE_MAIN1 or ph==PHASE_MAIN2 return ph==PHASE_MAIN1 or ph==PHASE_MAIN2
else else
return ph==PHASE_BATTLE return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end end
end end
function c5026221.filter(c,e,tp) function c5026221.filter(c,e,tp)
return c:IsSetCard(0x9c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x9c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c5026221.target2(e,tp,eg,ep,ev,re,r,rp,chk) function c5026221.target2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetFlagEffect(5026221)==0 if chk==0 then return e:GetHandler():GetFlagEffect(5026221)==0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c5026221.filter,tp,LOCATION_HAND,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(c5026221.filter,tp,LOCATION_HAND,0,1,nil,e,tp) end
e:GetHandler():RegisterFlagEffect(5026221,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(5026221,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
......
...@@ -29,8 +29,8 @@ function c53701457.initial_effect(c) ...@@ -29,8 +29,8 @@ function c53701457.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
c53701457.xyz_number=28 c53701457.xyz_number=28
function c53701457.dircon(e,tp,eg,ep,ev,re,r,rp) function c53701457.dircon(e)
return Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)<=1 return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_MZONE,0)<=1
end end
function c53701457.rdcon(e,tp,eg,ep,ev,re,r,rp) function c53701457.rdcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -25,9 +25,9 @@ function c60349525.indval(e,c) ...@@ -25,9 +25,9 @@ function c60349525.indval(e,c)
return c:IsLevelBelow(e:GetHandler():GetLevel()) return c:IsLevelBelow(e:GetHandler():GetLevel())
end end
function c60349525.condition(e,tp,eg,ep,ev,re,r,rp) function c60349525.condition(e,tp,eg,ep,ev,re,r,rp)
if tp==rp or eg:GetCount()~=1 then return false end if eg:GetCount()~=1 then return false end
local c=eg:GetFirst() local tc=eg:GetFirst()
return c:GetLevel()>0 and c:IsAttackAbove(c:GetLevel()*200) return tc~=e:GetHandler() and tc:IsFaceup() and tc:GetLevel()>0 and tc:GetSummonPlayer()==1-tp
end end
function c60349525.target(e,tp,eg,ep,ev,re,r,rp,chk) function c60349525.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
......
...@@ -14,6 +14,7 @@ function c62473983.initial_effect(c) ...@@ -14,6 +14,7 @@ function c62473983.initial_effect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SUMMON_SUCCESS) e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCondition(c62473983.spcon) e2:SetCondition(c62473983.spcon)
e2:SetTarget(c62473983.sptg) e2:SetTarget(c62473983.sptg)
e2:SetOperation(c62473983.spop) e2:SetOperation(c62473983.spop)
......
...@@ -82,12 +82,12 @@ function c72709014.spfilter(c,e,tp,code) ...@@ -82,12 +82,12 @@ function c72709014.spfilter(c,e,tp,code)
and c:IsCanBeSpecialSummoned(e,0,tp,true,false) and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
end end
function c72709014.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c72709014.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>-1 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and Duel.IsExistingMatchingCard(c72709014.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp,e:GetHandler():GetEquipTarget():GetCode()) end and Duel.IsExistingMatchingCard(c72709014.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp,e:GetHandler():GetEquipTarget():GetCode()) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK)
end end
function c72709014.spop(e,tp,eg,ep,ev,re,r,rp) function c72709014.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c72709014.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp,e:GetLabel()) local g=Duel.SelectMatchingCard(tp,c72709014.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp,e:GetLabel())
if g:GetCount()~=0 then if g:GetCount()~=0 then
......
...@@ -14,7 +14,7 @@ function c74416026.filter(c,tp) ...@@ -14,7 +14,7 @@ function c74416026.filter(c,tp)
return c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsSetCard(0xad) return c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsSetCard(0xad)
end end
function c74416026.condition(e,tp,eg,ep,ev,re,r,rp) function c74416026.condition(e,tp,eg,ep,ev,re,r,rp)
if not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end if rp==tp or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS) local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
return g and g:IsExists(c74416026.filter,1,nil,tp) return g and g:IsExists(c74416026.filter,1,nil,tp)
and Duel.IsChainNegatable(ev) and (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.IsChainNegatable(ev) and (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE))
......
...@@ -624,11 +624,14 @@ function Auxiliary.FOperationMixRep(insf,sub,fun1,minc,maxc,...) ...@@ -624,11 +624,14 @@ function Auxiliary.FOperationMixRep(insf,sub,fun1,minc,maxc,...)
if gc then sg:AddCard(gc) end if gc then sg:AddCard(gc) end
while sg:GetCount()<maxc+#funs do while sg:GetCount()<maxc+#funs do
local cg=mg:Filter(Auxiliary.FSelectMixRep,sg,tp,mg,sg,c,sub,chkf,fun1,minc,maxc,table.unpack(funs)) local cg=mg:Filter(Auxiliary.FSelectMixRep,sg,tp,mg,sg,c,sub,chkf,fun1,minc,maxc,table.unpack(funs))
if cg:GetCount()==0 if cg:GetCount()==0 then break end
or (Auxiliary.FCheckMixRepGoal(tp,sg,c,sub,chkf,fun1,minc,maxc,table.unpack(funs)) local minct=1
and not Duel.SelectYesNo(tp,210)) then break end if Auxiliary.FCheckMixRepGoal(tp,sg,c,sub,chkf,fun1,minc,maxc,table.unpack(funs)) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local g=cg:Select(tp,1,1,nil) local g=cg:Select(tp,minct,1,nil)
if g:GetCount()==0 then break end
sg:Merge(g) sg:Merge(g)
end end
Duel.SetFusionMaterial(sg) Duel.SetFusionMaterial(sg)
...@@ -1205,9 +1208,13 @@ function Auxiliary.LinkOperation(f,minc,maxc) ...@@ -1205,9 +1208,13 @@ function Auxiliary.LinkOperation(f,minc,maxc)
local sg=Group.CreateGroup() local sg=Group.CreateGroup()
for i=0,maxc-1 do for i=0,maxc-1 do
local cg=mg:Filter(Auxiliary.LCheckRecursive,sg,tp,sg,mg,c,i,minc,maxc) local cg=mg:Filter(Auxiliary.LCheckRecursive,sg,tp,sg,mg,c,i,minc,maxc)
if cg:GetCount()==0 if cg:GetCount()==0 then break end
or (Auxiliary.LCheckGoal(tp,sg,c,minc,i) and not Duel.SelectYesNo(tp,210)) then break end local minct=1
local g=cg:Select(tp,1,1,nil) if Auxiliary.LCheckGoal(tp,sg,c,minc,i) then
minct=0
end
local g=cg:Select(tp,minct,1,nil)
if g:GetCount()==0 then break end
sg:Merge(g) sg:Merge(g)
end end
c:SetMaterial(sg) c:SetMaterial(sg)
......
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