Commit c91c4566 authored by 聖園ミカ's avatar 聖園ミカ 🐟

byd

parent 81e13a93
No preview for this file type
...@@ -19,8 +19,8 @@ end ...@@ -19,8 +19,8 @@ end
function s.eqcon(e,tp,eg,ep,ev,re,r,rp) function s.eqcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetEquipCount()>0 return e:GetHandler():GetEquipCount()>0
end end
function s.defilter(c,tc) function s.defilter(c,tc,tp)
return c:IsLocation(LOCATION_SZONE) and c:IsType(TYPE_EQUIP) return tc==c:GetEquipTarget() and Duel.IsExistingMatchingCard(s.eqfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,c,tc,c:GetCode(),tp)
end end
function s.eqfilter(c,tc,code,tp) function s.eqfilter(c,tc,code,tp)
return Hnk.eqfilter(c,tc,tp) and not c:IsCode(code) return Hnk.eqfilter(c,tc,tp) and not c:IsCode(code)
...@@ -29,9 +29,9 @@ function s.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -29,9 +29,9 @@ function s.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() end if chkc then return chkc:IsOnField() end
local c=e:GetHandler() local c=e:GetHandler()
local eqg=c:GetEquipGroup() local eqg=c:GetEquipGroup()
if chk==0 then return eqg:FilterCount(s.defilter,nil)>0 end if chk==0 then return eqg:FilterCount(s.defilter,nil,c,tp)>0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,s.defilter,tp,LOCATION_SZONE,LOCATION_SZONE,1,1,nil,c) local g=Duel.SelectTarget(tp,s.defilter,tp,LOCATION_SZONE,LOCATION_SZONE,1,1,nil,c,tp)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,tp,LOCATION_SZONE) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,tp,LOCATION_SZONE)
end end
function s.eqop(e,tp,eg,ep,ev,re,r,rp) function s.eqop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -18,8 +18,8 @@ end ...@@ -18,8 +18,8 @@ end
function s.eqcon(e,tp,eg,ep,ev,re,r,rp) function s.eqcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp and (re:IsActiveType(TYPE_MONSTER) or re:GetHandler():IsType(TYPE_SPELL)) return rp==1-tp and (re:IsActiveType(TYPE_MONSTER) or re:GetHandler():IsType(TYPE_SPELL))
end end
function s.defilter(c) function s.defilter(c,tc,tp)
return c:IsSetCard(0x3ca0) return c:IsSetCard(0x3ca0) and Duel.IsExistingMatchingCard(s.eqfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,c,tc,c:GetCode(),tp)
end end
function s.eqfilter(c,tc,code,tp) function s.eqfilter(c,tc,code,tp)
return Hnk.eqfilter(c,tc,tp) and not c:IsCode(code) return Hnk.eqfilter(c,tc,tp) and not c:IsCode(code)
...@@ -27,19 +27,19 @@ end ...@@ -27,19 +27,19 @@ end
function s.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function s.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and chkc:IsSetCard(0x3ca0) end if chkc then return chkc:IsOnField() and chkc:IsSetCard(0x3ca0) end
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.IsExistingTarget(s.defilter,tp,LOCATION_ONFIELD,0,1,c) end if chk==0 then return Duel.IsExistingTarget(s.defilter,tp,LOCATION_ONFIELD,0,1,c,c,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,s.defilter,tp,LOCATION_ONFIELD,0,1,1,c) local g=Duel.SelectTarget(tp,s.defilter,tp,LOCATION_ONFIELD,0,1,1,c,c,tp)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,tp,LOCATION_ONFIELD) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,tp,LOCATION_ONFIELD)
end end
function s.eqop(e,tp,eg,ep,ev,re,r,rp) function s.eqop(e,tp,eg,ep,ev,re,r,rp)
local tc =Duel.GetFirstTarget() local tc =Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) then if tc and tc:IsRelateToEffect(e) then
local code=tc:GetCode() local code=tc:GetCode()
if Duel.Destroy(tc,REASON_EFFECT)~=0 then
local c=e:GetHandler() local c=e:GetHandler()
if Duel.Destroy(tc,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(s.eqfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,c,code,tp) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectMatchingCard(tp,s.eqfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,c,code,tp) local g=Duel.SelectMatchingCard(tp,s.eqfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,c,c,code,tp)
local tc2=g:GetFirst() local tc2=g:GetFirst()
Duel.Equip(tp,tc2,c) Duel.Equip(tp,tc2,c)
end end
......
...@@ -106,7 +106,7 @@ function s.sptg2(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -106,7 +106,7 @@ function s.sptg2(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,1)
end end
function s.spop2(e,tp,eg,ep,ev,re,r,rp) function s.spop2(e,tp,eg,ep,ev,re,r,rp)
if not Duel.GetMZoneCount(tp)>0 then return end if Duel.GetMZoneCount(tp)<=0 then return end
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,false,false,POS_FACEUP)~=0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,false,false,POS_FACEUP)~=0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
......
...@@ -56,8 +56,7 @@ function c60152009.splimit(e,c,sump,sumtype,sumpos,targetp,se) ...@@ -56,8 +56,7 @@ function c60152009.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsLocation(LOCATION_EXTRA) return c:IsLocation(LOCATION_EXTRA)
end end
function c60152009.spfilter2(c) function c60152009.spfilter2(c)
return ((c:IsSetCard(0x6b25) and c:IsType(TYPE_MONSTER)) return c:IsAttribute(ATTRIBUTE_FIRE) and c:IsType(TYPE_MONSTER) and c:IsReleasable()
or (c:IsType(TYPE_TOKEN) and c:IsAttribute(ATTRIBUTE_FIRE))) and c:IsReleasable()
end end
function c60152009.spcon2(e,c) function c60152009.spcon2(e,c)
if c==nil then return true end if c==nil then return true end
...@@ -130,25 +129,22 @@ function c60152009.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -130,25 +129,22 @@ function c60152009.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c60152009.dfilter(c) function c60152009.dfilter(c)
return c:IsAttribute(ATTRIBUTE_FIRE) and c:IsReleasableByEffect() return c:IsAttribute(ATTRIBUTE_FIRE)
end end
function c60152009.destg(e,tp,eg,ep,ev,re,r,rp,chk) function c60152009.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c60152009.dfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,1,nil) local b=Duel.GetMatchingGroupCount(c60152009.spfilter2,tp,LOCATION_HAND+LOCATION_ONFIELD,0,e:GetHandler())
and Duel.IsExistingMatchingCard(Card.IsDestructable,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c60152009.spfilter2,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil)
local g=Duel.GetMatchingGroup(Card.IsDestructable,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil) and Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end end
function c60152009.desop(e,tp,eg,ep,ev,re,r,rp) function c60152009.desop(e,tp,eg,ep,ev,re,r,rp)
local ct1=Duel.GetMatchingGroupCount(Card.IsDestructable,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil) local ct1=Duel.GetMatchingGroupCount(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) local rg=Duel.SelectMatchingCard(tp,c60152009.spfilter2,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,ct1,nil)
local rg=Duel.SelectMatchingCard(tp,c60152009.dfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,1,ct1,nil)
if rg:GetCount()>0 then
local ct2=Duel.Release(rg,REASON_EFFECT) local ct2=Duel.Release(rg,REASON_EFFECT)
if ct2==0 then return end if ct2==0 then return end
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dg=Duel.SelectMatchingCard(tp,Card.IsDestructable,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,ct2,ct2,nil) local dg=Duel.SelectMatchingCard(tp,aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,ct2,ct2,nil)
Duel.HintSelection(dg) Duel.HintSelection(dg)
Duel.Destroy(dg,REASON_EFFECT) Duel.Destroy(dg,REASON_EFFECT)
end
end end
\ No newline at end of file
...@@ -53,8 +53,9 @@ function c60152011.cfilter(c) ...@@ -53,8 +53,9 @@ function c60152011.cfilter(c)
end end
function c60152011.spcon(e,c) function c60152011.spcon(e,c)
if c==nil then return true end if c==nil then return true end
return Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>-3 local tp=c:GetControler()
and Duel.CheckReleaseGroup(REASON_COST,c:GetControler(),c60152011.cfilter,3,nil) local mg=Duel.GetMatchingGroup(c60152011.cfilter,tp,LOCATION_MZONE,0,nil)
return mg:CheckSubGroup(aux.mzctcheck,3,3,tp)
end end
function c60152011.spop(e,tp,eg,ep,ev,re,r,rp,c) function c60152011.spop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.SelectReleaseGroup(REASON_COST,c:GetControler(),c60152011.cfilter,3,3,nil) local g=Duel.SelectReleaseGroup(REASON_COST,c:GetControler(),c60152011.cfilter,3,3,nil)
......
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