Commit 6e8587c4 authored by Huangnan's avatar Huangnan

fix

parent 5ad3dfae
Pipeline #42406 failed with stages
in 4 minutes and 37 seconds
......@@ -25,7 +25,7 @@ function c11602190.initial_effect(c)
e2:SetOperation(c11602190.tdop)
c:RegisterEffect(e2)
end
function c11602190.cfilter(c,e)
function c11602190.cfilter(c,e,tp)
return c:IsFaceupEx() and c:IsType(TYPE_LINK) and c:IsAbleToExtra() and c:IsSetCard(0x9548)
and c:IsCanBeEffectTarget(e)
and c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_MZONE)
......@@ -33,10 +33,10 @@ function c11602190.cfilter(c,e)
end
function c11602190.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return eg:IsContains(chkc) end
if chk==0 then return eg:IsExists(c11602190.cfilter,1,nil,e)
if chk==0 then return eg:IsExists(c11602190.cfilter,1,nil,e,tp)
and e:GetHandler():IsAbleToHand() end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=eg:FilterSelect(tp,c11602190.cfilter,1,1,nil,e)
local g=eg:FilterSelect(tp,c11602190.cfilter,1,1,nil,e,tp)
Duel.SetTargetCard(g)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
......
......@@ -43,8 +43,7 @@ function c11602195.chk(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
while tc do
if c11602195.chkfilter(tc) then
Duel.RegisterFlagEffect(tp,11602195,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(1-tp,11602195,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(tc:GetControler(),11602195,RESET_PHASE+PHASE_END,0,1)
end
tc=eg:GetNext()
end
......
......@@ -85,9 +85,10 @@ function c11602260.destg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c11602260.desop(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(nil,tp,0,LOCATION_ONFIELD,nil)
local st=math.min(ct,3)
if ct<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c11602260.tgfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,ct,nil)
local g=Duel.SelectMatchingCard(tp,c11602260.tgfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,st,nil)
if g:GetCount()>0 and Duel.SendtoGrave(g,0x40)>0 then
local rg=Duel.GetOperatedGroup():Filter(Card.IsLocation,nil,0x10)
if #rg<1 then return end
......
......@@ -46,7 +46,7 @@ end
function c11602300.target(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=Duel.GetFlagEffect(tp,11602285)
if chk==0 then
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<ct-1 then return false end
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<ct-1 or ct<2 then return false end
local g=Duel.GetDecktopGroup(tp,ct-1)
local result=g:FilterCount(Card.IsAbleToHand,nil)>0
return result
......
......@@ -86,7 +86,7 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
c:RegisterFlagEffect(id,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,2))
end
return Duel.GetLocationCount(tp,0x04)>0 and Duel.GetFlagEffect(tp,id)==0
and Duel.IsExistingMatchingCard(s.spfi1ter,tp,0x02,0,1,e:GetHandler(),e,tp)
and Duel.IsExistingMatchingCard(s.spfi1ter,tp,0x02,0,1,nil,e,tp)
end
Duel.RegisterFlagEffect(tp,id,RESET_CHAIN,EFFECT_FLAG_OATH,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,0x02)
......
......@@ -88,6 +88,8 @@ function s.initial_effect(c)
if not s.global_flag then
s.global_flag=true
s[0]=false
s[1]=false
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_SPSUMMON_SUCCESS)
......@@ -106,16 +108,20 @@ function s.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tc:GetSummonPlayer(),id,0,0,0,tc:GetCode())
end
end
local set={Duel.GetFlagEffectLabel(tp,id)}
if Duel.GetFlagEffect(tp,id)~=0 and (#set)>=6 then
--适用全部效果
local e10=Effect.CreateEffect(e:GetHandler())
e10:SetDescription(aux.Stringid(id,3))
e10:SetType(EFFECT_TYPE_FIELD)
e10:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT+EFFECT_CANNOT_DISABLE)
e10:SetCode(1200201)
e10:SetTargetRange(1,0)
Duel.RegisterEffect(e10,tp)
for p=0,1 do
local set={Duel.GetFlagEffectLabel(p,id)}
if not s[p] and Duel.GetFlagEffect(p,id)~=0 and (#set)>=6 then
s[p]=true
--适用全部效果
local e10=Effect.CreateEffect(e:GetHandler())
e10:SetDescription(aux.Stringid(id,3))
e10:SetType(EFFECT_TYPE_FIELD)
e10:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT+EFFECT_CANNOT_DISABLE)
e10:SetCode(1200201)
e10:SetTargetRange(1,0)
Duel.RegisterEffect(e10,p)
Duel.Hint(24,p,aux.Stringid(id,3))
end
end
end
......@@ -165,8 +171,8 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
function s.imcon(e,tp)
return e:GetHandler():GetSequence()>4 and s.supercon(tp)
function s.imcon(e)
return e:GetHandler():GetSequence()>4 and s.supercon(e:GetHandlerPlayer())
end
function s.studycon(c,tp)
return c:GetSequence()>4 and s.supercon(tp)
......
......@@ -65,13 +65,13 @@ function s.spfilter(c,e,tp)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.spfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,true,POS_FACEUP)
end
......
--花之仙女·梦前菜菜
local m=37585030
local cm=_G["c"..m]
Duel.LoadScript("c81000000.lua")
function cm.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
......
......@@ -89,7 +89,7 @@ end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_ONFIELD)
and bit.band(c:GetPreviousSummonType(),SUMMON_TYPE_FUSION)==SUMMON_TYPE_FUSION
and bit.band(c:GetSummonType(),SUMMON_TYPE_FUSION)==SUMMON_TYPE_FUSION
end
function s.desfilter(c)
return c:IsFaceup() and c:IsCode(OME_ID) and c:IsDestructable()
......
......@@ -72,7 +72,7 @@ function s.fishfilter(c)
return c:IsRace(RACE_FISH) and ((c:IsLocation(LOCATION_MZONE) and c:IsFaceup()) or c:IsLocation(LOCATION_GRAVE))
end
function s.desfilter(c,atk)
return c:IsAttackBelow(atk)
return c:IsAttackBelow(atk) and c:IsFaceup()
end
function s.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
local chkf=tp
......
......@@ -59,16 +59,24 @@ end
function s.spcon_move(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(s.omefilter,1,nil,tp)
end
function s.desfilter(c)
return c:IsFaceup() and c:GetAttack()>=0
return c:IsFaceup() and c:GetAttack()>=0
end
function s.gcheck(g)
return g:GetSum(Card.GetAttack)>=2100
local sum=g:GetSum(Card.GetAttack)
if sum<2100 then return false end
return not g:IsExists(function(c) return sum-c:GetAttack()>=2100 end, 1, nil)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(s.desfilter,tp,0,LOCATION_MZONE,nil)
if chk==0 then
return g:GetCount()>0 and g:CheckSubGroup(s.gcheck,1,#g)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......@@ -76,11 +84,14 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,1-tp,LOCATION_MZONE)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(s.desfilter,tp,0,LOCATION_MZONE,nil)
if g:GetCount()>0 and g:CheckSubGroup(s.gcheck,1,#g) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dg=g:SelectSubGroup(tp,s.gcheck,false,1,#g)
if dg and dg:GetCount()>0 then
Duel.HintSelection(dg)
......
......@@ -94,9 +94,9 @@ function s.ogcon(e,tp,eg,ep,ev,re,r,rp)
end
function s.ogtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and aux.NegateAnyFilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
if chk==0 then return Duel.IsExistingTarget(aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectTarget(tp,aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
local g=Duel.SelectTarget(tp,aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0)
end
function s.ogop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -33,7 +33,7 @@ function s.xyzfilter(c,e,tp)
end
function s.mtfilter(c,e)
return c:IsSetCard(0xcca6) and c:IsType(TYPE_MONSTER)
and c:IsCanOverlay() and not (e and c:IsImmuneToEffect(e))
and not (e and c:IsImmuneToEffect(e))
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
......
......@@ -31,7 +31,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Group.CreateGroup()
Duel.ChangeTargetCard(ev,g)
Duel.ChangeChainOperation(ev,aux.NULL)
if re:GetHandler():IsRelateToEffect(re) and re:GetHandler():IsLocation(LOCATION_ONFIELD) then
if re:GetHandler():IsRelateToEffect(re) and re:IsLocation(LOCATION_ONFIELD) then
Duel.SendtoGrave(re:GetHandler(),REASON_RULE)
end
end
......@@ -53,19 +53,23 @@ end
function s.tdfilter(c)
return c:IsSetCard(0xcca6) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToDeck()
end
function s.tdfilter2(c,e)
return c:IsSetCard(0xcca6) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToDeck() and c:IsCanBeEffectTarget(e)
end
function s.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
if chk==0 then return Duel.IsExistingMatchingCard(s.tdfilter,tp,LOCATION_GRAVE,0,1,e:GetHandler()) end
local maxct=Duel.GetMatchingGroupCount(s.tdfilter,tp,LOCATION_GRAVE,0,e:GetHandler())
local rg=Duel.GetMatchingGroup(s.tdfilter2,tp,LOCATION_GRAVE,0,e:GetHandler(),e)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local tg=Duel.SelectTarget(tp,s.tdfilter,tp,LOCATION_GRAVE,0,1,maxct,e:GetHandler())
local tg=rg:Select(tp,1,#rg,e:GetHandler())
Duel.SetTargetCard(tg)
Duel.SetOperationInfo(0,CATEGORY_TODECK,tg,#tg,0,0)
end
function s.rmfilter(c)
return c:IsFaceupEx() and c:IsAbleToRemove()
end
function s.tdop(e,tp,eg,ep,ev,re,r,rp)
local tg=Duel.GetChainInfo(CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
local tg=Duel.GetTargetsRelateToChain()
if #tg>0 then
local ct=Duel.SendtoDeck(tg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
if ct>0 and Duel.IsExistingMatchingCard(s.rmfilter,tp,0,LOCATION_GRAVE+LOCATION_EXTRA,1,nil) then
......
......@@ -87,7 +87,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINTMSG_SELECT,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
local tc=sg:GetFirst()
if Duel.SpecialSummon(sg,SUMMON_TYPE_XYZ,tp,tp,false,false,POS_FACEUP) then
if Duel.SpecialSummon(tc,SUMMON_TYPE_XYZ,tp,tp,false,false,POS_FACEUP) then
tc:CompleteProcedure()
Duel.Hint(HINTMSG_SELECT,tp,HINTMSG_XMATERIAL)
local oc=g1:Select(tp,1,1,nil):GetFirst()
if oc:IsCanOverlay() then
......
......@@ -95,8 +95,8 @@ end
function cm.filter2(c)
return c:IsCanOverlay()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.filter1),tp,LOCATION_GRAVE,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_GRAVE,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment