Commit 5137772c authored by Huangnan's avatar Huangnan

fix

parent 32dd21f0
Pipeline #41067 failed with stages
in 10 minutes and 21 seconds
...@@ -21,7 +21,7 @@ function cm.filter(c,e,tp,m) ...@@ -21,7 +21,7 @@ function cm.filter(c,e,tp,m)
elseif c:IsType(TYPE_XYZ) then elseif c:IsType(TYPE_XYZ) then
b=SUMMON_TYPE_XYZ b=SUMMON_TYPE_XYZ
elseif c:IsType(TYPE_RITUAL) then elseif c:IsType(TYPE_RITUAL) then
b=TYPE_RITUAL b=SUMMON_TYPE_RITUAL
if not c:IsLocation(LOCATION_HAND+LOCATION_DECK) then if not c:IsLocation(LOCATION_HAND+LOCATION_DECK) then
return false return false
end end
...@@ -29,7 +29,7 @@ function cm.filter(c,e,tp,m) ...@@ -29,7 +29,7 @@ function cm.filter(c,e,tp,m)
return false return false
end end
local num=c:GetLevel()+c:GetRank() local num=c:GetLevel()+c:GetRank()
return c:IsCanBeSpecialSummoned(e,b,tp,false,true) and (c:IsLevelAbove(1) or c:IsRankAbove(1)) and m:CheckWithSumEqual(cm.sumfun,num,1,m:GetCount()) and ((c:IsLocation(LOCATION_DECK) and Duel.GetMZoneCount(tp)>0) return c:IsCanBeSpecialSummoned(e,b,tp,false,true) and (c:IsLevelAbove(1) or c:IsRankAbove(1)) and m:CheckWithSumEqual(cm.sumfun,num,1,m:GetCount()) and ((c:IsLocation(LOCATION_DECK+LOCATION_HAND) and Duel.GetMZoneCount(tp)>0)
or (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)) or (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0))
end end
function cm.sumfun(c) function cm.sumfun(c)
......
--星间列车 启航号角 --星间列车 启航号角
local s,id,o=GetID()
function s.initial_effect(c) function s.initial_effect(c)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
...@@ -48,7 +48,8 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -48,7 +48,8 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetOperatedGroup() local g=Duel.GetOperatedGroup()
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
local tc=g:GetFirst() local tc=g:GetFirst()
if Duel.GetLocationCount(tp,LOCATION_SZONE)>0 if tc:IsType(TYPE_CONTINUOUS) and tc:IsType(TYPE_TRAP)
and Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and not tc:IsForbidden() and tc:CheckUniqueOnField(tp) and not tc:IsForbidden() and tc:CheckUniqueOnField(tp)
and Duel.SelectYesNo(tp,aux.Stringid(id,3)) then and Duel.SelectYesNo(tp,aux.Stringid(id,3)) then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
......
...@@ -29,7 +29,7 @@ function s.initial_effect(c) ...@@ -29,7 +29,7 @@ function s.initial_effect(c)
e3:SetCategory(CATEGORY_DRAW) e3:SetCategory(CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_PHASE+PHASE_END) e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetRange(LOCATION_SZONE) e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,id+o*10000) e3:SetCountLimit(1,id+o*10000)
e3:SetTarget(s.drtg) e3:SetTarget(s.drtg)
e3:SetOperation(s.drop) e3:SetOperation(s.drop)
......
...@@ -145,6 +145,7 @@ end ...@@ -145,6 +145,7 @@ end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local c=e:GetHandler() local c=e:GetHandler()
if not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
local mg=Duel.GetMatchingGroup(s.mfilter,tp,LOCATION_ONFIELD,0,nil,c:GetLevel(),tp) local mg=Duel.GetMatchingGroup(s.mfilter,tp,LOCATION_ONFIELD,0,nil,c:GetLevel(),tp)
if c.mat_filter then if c.mat_filter then
mg=mg:Filter(c.mat_filter,c,tp) mg=mg:Filter(c.mat_filter,c,tp)
......
...@@ -123,6 +123,7 @@ end ...@@ -123,6 +123,7 @@ end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local c=e:GetHandler() local c=e:GetHandler()
if not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
local mg=Duel.GetMatchingGroup(s.mfilter,tp,LOCATION_ONFIELD,0,nil,c:GetLevel(),tp) local mg=Duel.GetMatchingGroup(s.mfilter,tp,LOCATION_ONFIELD,0,nil,c:GetLevel(),tp)
if c.mat_filter then if c.mat_filter then
mg=mg:Filter(c.mat_filter,c,tp) mg=mg:Filter(c.mat_filter,c,tp)
......
...@@ -94,13 +94,13 @@ end ...@@ -94,13 +94,13 @@ end
function s.target3(e,tp,eg,ep,ev,re,r,rp,chk) function s.target3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_REMOVE,eg,1,0,0)
if re:GetHandler():IsAbleToRemove() and re:GetHandler():IsRelateToEffect(re) and re:GetLocation()==LOCATION_GRAVE then if re:GetHandler():IsAbleToRemove() and re:GetHandler():IsRelateToEffect(re) and re:IsLocation(LOCATION_GRAVE) then
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
end end
end end
function s.operation3(e,tp,eg,ep,ev,re,r,rp) function s.operation3(e,tp,eg,ep,ev,re,r,rp)
if re:GetLocation()==LOCATION_GRAVE and Duel.Remove(re:GetHandler(),POS_FACEUP,REASON_EFFECT)>0 and re:GetHandler():IsRelateToEffect(re) then if re:IsLocation(LOCATION_GRAVE) and Duel.Remove(re:GetHandler(),POS_FACEUP,REASON_EFFECT)>0 and re:GetHandler():IsRelateToEffect(re) then
Duel.NegateActivation(ev) Duel.NegateActivation(ev)
end end
end end
......
...@@ -44,6 +44,11 @@ function c61200007.initial_effect(c) ...@@ -44,6 +44,11 @@ function c61200007.initial_effect(c)
e3:SetTarget(s.tg3) e3:SetTarget(s.tg3)
e3:SetOperation(s.op3) e3:SetOperation(s.op3)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--魔陷发动
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_ACTIVATE)
e4:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e4)
end end
function s.f1(c) function s.f1(c)
......
...@@ -63,7 +63,7 @@ function s.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,7 +63,7 @@ function s.op1(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.f1,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,s.f1,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc and Duel.SSet(tp,tc)~=0 and g:GetCount()>0 then if tc and Duel.SSet(tp,tc)~=0 and g:GetCount()>0 then
local e1=Effect.CreateEffect() local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1)) e1:SetDescription(aux.Stringid(id,1))
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN) e1:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
......
...@@ -154,7 +154,8 @@ function s.tg4(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -154,7 +154,8 @@ function s.tg4(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return g:GetCount()>0 end if chk==0 then return g:GetCount()>0 end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DISABLE,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,0,0)
if c:GetEquipTarget():IsCode(61200201,61200202,61200203) then local sc=c:GetEquipTarget()
if sc:IsCode(61200201,61200202,61200203) then
Duel.SetChainLimit(aux.FALSE) Duel.SetChainLimit(aux.FALSE)
end end
end end
......
...@@ -99,6 +99,7 @@ function s.con3(e,tp,eg,ep,ev,re,r,rp) ...@@ -99,6 +99,7 @@ function s.con3(e,tp,eg,ep,ev,re,r,rp)
end end
function s.tg3(e,tp,eg,ep,ev,re,r,rp,chk) function s.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then if chk==0 then
return c:IsDestructable() return c:IsDestructable()
end end
...@@ -127,8 +128,7 @@ function s.tg4(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -127,8 +128,7 @@ function s.tg4(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end end
function s.op4(e,tp,eg,ep,ev,re,r,rp) function s.op4(e,tp,eg,ep,ev,re,r,rp)
local g=GetDecktopGroup(tp,2) local g=Duel.GetDecktopGroup(tp,2)
Duel.DisableShuffleCheck()
Duel.Remove(g,POS_FACEUP,REASON_EFFECT) Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end end
......
...@@ -5,10 +5,8 @@ function s.initial_effect(c) ...@@ -5,10 +5,8 @@ function s.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0)) e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_HANDES+CATEGORY_TODECK) e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_HANDES+CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_GRAVE+LOCATION_REMOVED) e1:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetCountLimit(1,id) e1:SetCountLimit(1,id)
e1:SetCondition(s.con1) e1:SetCondition(s.con1)
e1:SetTarget(s.tg1) e1:SetTarget(s.tg1)
...@@ -62,8 +60,7 @@ function s.f5(c) ...@@ -62,8 +60,7 @@ function s.f5(c)
end end
function s.con1(e,tp,eg,ep,ev,re,r,rp) function s.con1(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetTurnPlayer() return Duel.IsExistingMatchingCard(s.f1,tp,LOCATION_ONFIELD,0,1,nil)
return ph==tp and Duel.IsExistingMatchingCard(s.f1,tp,LOCATION_ONFIELD,0,1,nil)
end end
function s.tg1(e,tp,eg,ep,ev,re,r,rp,chk) function s.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -22,7 +22,6 @@ function c61200309.initial_effect(c) ...@@ -22,7 +22,6 @@ function c61200309.initial_effect(c)
e2:SetTarget(s.tg2) e2:SetTarget(s.tg2)
e2:SetOperation(s.op2) e2:SetOperation(s.op2)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function s.f1(c) function s.f1(c)
...@@ -93,7 +92,7 @@ function s.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -93,7 +92,7 @@ function s.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Remove(c,POS_FACEDOWN,REASON_EFFECT) Duel.Remove(c,POS_FACEDOWN,REASON_EFFECT)
end end
end end
tc:GetNext() tc=g2:GetNext()
end end
i=i+1 i=i+1
end 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