Commit 4b5729bc authored by POLYMER's avatar POLYMER

fix

parent 680e45a2
This diff is collapsed.
......@@ -148,7 +148,7 @@ function cm.initial_effect(c)
--Duel.SetFlagEffectLabel(sp,m,ct+1)
cm[sp]=cm[sp]+1
local tg=ng:RandomSelect(sp,1)
Duel.ConfirmCards(sp,tg)
if tg:GetFirst():IsLocation(LOCATION_DECK+LOCATION_EXTRA) then Duel.ConfirmCards(sp,tg) end
return tg
else
return _Select(g,sp,min,max,nc)
......
......@@ -50,24 +50,30 @@ function cm.initial_effect(c)
end
end
function cm.repfilter(c,tp)
return (not c:IsLocation(LOCATION_OVERLAY) and not c:IsType(TYPE_SPELL+TYPE_TRAP) and not (c:IsControler(tp) and c:IsLocation(LOCATION_SZONE) and c:GetSequence()<5)) and c:GetDestination()==LOCATION_GRAVE
return (not c:IsLocation(LOCATION_OVERLAY) and not c:IsType(TYPE_SPELL+TYPE_TRAP) and not (c:IsControler(tp) and c:IsLocation(LOCATION_SZONE) and c:GetSequence()<5)) and c:GetDestination()==LOCATION_GRAVE and not c:IsForbidden()
end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local count=eg:FilterCount(cm.repfilter,e:GetHandler(),tp)
return count>0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>=count
return count>0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0
end
local g=eg:Filter(cm.repfilter,e:GetHandler(),tp)
if g:FilterCount(Card.IsLocation,nil,LOCATION_ONFIELD+LOCATION_GRAVE)==#g then
if g:FilterCount(Card.IsOnField,nil)==#g then
Duel.HintSelection(g)
else
Duel.ConfirmCards(tp,g)
end
if Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
local container=e:GetLabelObject()
container:Clear()
local res=false
for tc in aux.Next(g) do
if Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and Duel.SelectEffectYesNo(tp,tc,aux.Stringid(m,5)) then
res=true
--[[if Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
local container=e:GetLabelObject()
container:Clear()
local tc=g:GetFirst()
while tc do
while tc do--]]
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCode(EFFECT_CHANGE_TYPE)
......@@ -86,12 +92,10 @@ function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
--tc:RegisterEffect(e2,true)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,4))
tc=g:GetNext()
container:AddCard(tc)
end
container:Merge(g)
return true
end
return false
return res
end
function cm.repval(e,c)
return e:GetLabelObject():IsContains(c)
......
......@@ -9,6 +9,7 @@ function cm.initial_effect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetTarget(c22348163.sptg)
......@@ -32,61 +33,26 @@ function cm.initial_effect(c)
c:RegisterEffect(e3)
end
function c22348163.sprfilter(c)
return true
end
function c22348163.sprfilter1(c)
return c:IsCode(22348157) and (c:IsFaceup() or c:IsLocation(LOCATION_HAND))
function c22348163.gcheck(g,e,tp)
return g:IsExists(Card.IsCode,1,nil,22348157)
and Duel.GetMZoneCount(tp,g)>0
end
function c22348163.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return not e:GetHandler():IsStatus(STATUS_CHAINING) and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
and
(
(Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(c22348163.sprfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,2,nil) and Duel.IsExistingMatchingCard(c22348163.sprfilter1,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil))
or
(Duel.GetLocationCount(tp,LOCATION_MZONE)<1 and Duel.IsExistingMatchingCard(c22348163.sprfilter,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(c22348163.sprfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,2,nil) and Duel.IsExistingMatchingCard(c22348163.sprfilter1,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil))
or
(Duel.GetLocationCount(tp,LOCATION_MZONE)<1 and Duel.IsExistingMatchingCard(c22348163.sprfilter1,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(c22348163.sprfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,2,nil))
) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,2,0,0)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_HAND+LOCATION_ONFIELD,0,nil)
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and g:CheckSubGroup(c22348163.gcheck,2,2,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,2,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c22348163.spop(e,tp,eg,ep,ev,re,r,rp,c)
local c=e:GetHandler()
local aaa=Duel.SelectMatchingCard(tp,c22348163.sprfilter1,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
if not aaa then return end
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_HAND+LOCATION_ONFIELD,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
local g1=Duel.SelectMatchingCard(tp,c22348163.sprfilter1,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
local g2=Duel.SelectMatchingCard(tp,c22348163.sprfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,g1)
local g=Group.__add(g1,g2)
if #g>0 and Duel.Destroy(g,REASON_EFFECT)==2 and (c:IsLocation(LOCATION_HAND) or c:IsLocation(LOCATION_GRAVE)) then
local sg=g:SelectSubGroup(tp,c22348163.gcheck,false,2,2,e,tp)
if #sg>0 and Duel.Destroy(sg,REASON_EFFECT)==2 and (c:IsLocation(LOCATION_HAND) or c:IsLocation(LOCATION_GRAVE)) then
local tg=Duel.GetOperatedGroup()
if c:IsRelateToEffect(e) or Group.IsContains(tg,c) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
elseif Duel.IsExistingMatchingCard(c22348163.sprfilter1,tp,LOCATION_MZONE,0,1,nil) then
local g1=Duel.SelectMatchingCard(tp,c22348163.sprfilter1,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
if not g1:GetFirst():IsLocation(LOCATION_MZONE) then
local g2=Duel.SelectMatchingCard(tp,c22348163.sprfilter,tp,LOCATION_MZONE,0,1,1,g1)
local g=Group.__add(g1,g2)
if #g>0 and Duel.Destroy(g,REASON_EFFECT)==2 and (c:IsLocation(LOCATION_HAND) or c:IsLocation(LOCATION_GRAVE)) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
else
local g2=Duel.SelectMatchingCard(tp,c22348163.sprfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,g1)
local g=Group.__add(g1,g2)
if #g>0 and Duel.Destroy(g,REASON_EFFECT)==2 and (c:IsLocation(LOCATION_HAND) or c:IsLocation(LOCATION_GRAVE)) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
elseif Duel.IsExistingMatchingCard(c22348163.sprfilter,tp,LOCATION_MZONE,0,1,nil) then
local g1=Duel.SelectMatchingCard(tp,c22348163.sprfilter1,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
local g2=Duel.SelectMatchingCard(tp,c22348163.sprfilter,tp,LOCATION_MZONE,0,1,1,g1)
local g=Group.__add(g1,g2)
if #g>0 and Duel.Destroy(g,REASON_EFFECT)==2 and (c:IsLocation(LOCATION_HAND) or c:IsLocation(LOCATION_GRAVE)) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
end
function c22348163.spfilter(c,tp)
......
......@@ -72,13 +72,14 @@ function cm.dfilter(c)
return c:IsFaceup() and c:IsCode(40010230)
end
function cm.descon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,40009560)==0 and not Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_MZONE,0,1,nil) then return false end
if Duel.GetFlagEffect(tp,m)>0 then return e:GetHandler():GetFlagEffect(m+1)<2
else return e:GetHandler():GetFlagEffect(m+1)<1 end
return Duel.GetFlagEffect(tp,40009560)>0 or Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_MZONE,0,1,nil)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(1-tp) and chkc:IsOnField() and aux.NegateAnyFilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,nil) end
e:GetHandler():RegisterFlagEffect(m+1,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectTarget(tp,aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0)
......@@ -110,7 +111,6 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e3)
end
end
e:GetHandler():RegisterFlagEffect(m+1,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
......
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rscf.DefineCard(53724004)
local m=53724004
local cm=_G["c"..m]
cm.name="迫真空手武神 AKYS"
function cm.initial_effect(c)
c:EnableReviveLimit()
......
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