Commit 4bb6a0ea authored by Tachibana's avatar Tachibana

ybb

parent 88cd63c9
...@@ -4,6 +4,9 @@ local cm=_G["c"..m] ...@@ -4,6 +4,9 @@ local cm=_G["c"..m]
Duel.LoadScript("c12000000.lua") Duel.LoadScript("c12000000.lua")
Sr_shts=Sr_shts or {} Sr_shts=Sr_shts or {}
function Sr_shts.peffect(c) function Sr_shts.peffect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
-- --
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
......
--操符『七色人形回转』 --操符『七色人形回转』
local s,id,o=GetID()
function c19500007.initial_effect(c) function c19500007.initial_effect(c)
-- --
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -16,19 +17,11 @@ function c19500007.initial_effect(c) ...@@ -16,19 +17,11 @@ function c19500007.initial_effect(c)
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_DESTROY+CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,19500007+o)
e2:SetCondition(aux.exccon) e2:SetCondition(aux.exccon)
e2:SetTarget(c19500007.destg) e2:SetTarget(c19500007.destg)
e2:SetOperation(c19500007.desop) e2:SetOperation(c19500007.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
if not c19500007.global_check then
c19500007.global_check=true
c19500007[0]=0
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_TURN_END+PHASE_END)
ge2:SetOperation(c19500007.clear)
Duel.RegisterEffect(ge2,0)
end
end end
function c19500007.clear(e,tp,eg,ep,ev,re,r,rp) function c19500007.clear(e,tp,eg,ep,ev,re,r,rp)
c19500007[0]=0 c19500007[0]=0
...@@ -98,10 +91,9 @@ function c19500007.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -98,10 +91,9 @@ function c19500007.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local loc=LOCATION_ONFIELD+LOCATION_HAND local loc=LOCATION_ONFIELD+LOCATION_HAND
if ft==0 then loc=LOCATION_MZONE end if ft==0 then loc=LOCATION_MZONE end
e:SetLabel(loc) e:SetLabel(loc)
return c19500007[0]==0 and Duel.IsExistingTarget(Card.IsSetCard,tp,loc,0,1,nil,0x3990) end return Duel.IsExistingMatchingCard(Card.IsSetCard,tp,loc,0,1,nil,0x3990) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
c19500007[0]=c19500007[0]+1
end end
function c19500007.desop(e,tp,eg,ep,ev,re,r,rp) function c19500007.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -14,8 +14,7 @@ function c19500033.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -14,8 +14,7 @@ function c19500033.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD,nil)>0 return Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD,nil)>0
end end
function c19500033.target(e,tp,eg,ep,ev,re,r,rp,chk) function c19500033.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,true,false) end
Duel.SetTargetPlayer(tp) Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1) Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
......
...@@ -78,7 +78,7 @@ function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -78,7 +78,7 @@ function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end end
function cm.op2(e,tp,eg,ep,ev,re,r,rp) function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SendtoGrave(tc,REASON_EFFECT)>0 and not (Duel.GetLocationCount(tp,LOCATION_SZONE)>0) then if tc:IsRelateToEffect(e) and Duel.SendtoGrave(tc,REASON_EFFECT)>0 and Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.tgf21),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil,tp,tc:GetCode()) local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.tgf21),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil,tp,tc:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local tc=g:Select(tp,1,1,nil,tp):GetFirst() local tc=g:Select(tp,1,1,nil,tp):GetFirst()
......
...@@ -22,7 +22,6 @@ function cm.initial_effect(c) ...@@ -22,7 +22,6 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_LEAVE_FIELD) e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetCost(cm.co3)
e3:SetTarget(cm.tg3) e3:SetTarget(cm.tg3)
e3:SetOperation(cm.op3) e3:SetOperation(cm.op3)
c:RegisterEffect(e3) c:RegisterEffect(e3)
...@@ -35,9 +34,6 @@ function cm.tg1(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -35,9 +34,6 @@ function cm.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tgf1,tp,LOCATION_ONFIELD,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.tgf1,tp,LOCATION_ONFIELD,0,1,nil) end
end end
--e2 --e2
function cm.tgf1(c,tp)
return c:IsCode(33503101) and c:IsFaceup()
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler() local c=e:GetHandler()
if chkc then return chkc:IsControler(1-tp) and chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsAbleToRemove() end if chkc then return chkc:IsControler(1-tp) and chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsAbleToRemove() end
...@@ -57,15 +53,11 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,15 +53,11 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp)
end end
end end
--e3 --e3
function cm.co3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,m)==0 end
Duel.RegisterFlagEffect(tp,m,RESET_CHAIN,0,1)
end
function cm.tgf3(c) function cm.tgf3(c)
return c:IsCode(33503101) and c:IsFaceup() and c:GetFlagEffect(m)==0 return c:IsCode(33503101) and c:IsFaceup() and c:GetFlagEffect(m)==0
end end
function cm.tg3(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.tg3(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and cm.tgf7(chkc) end if chkc then return chkc:IsOnField() and cm.tgf3(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.tgf3,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingTarget(cm.tgf3,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,cm.tgf3,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil) Duel.SelectTarget(tp,cm.tgf3,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
......
...@@ -29,24 +29,19 @@ function c64800116.tgfilter(c) ...@@ -29,24 +29,19 @@ function c64800116.tgfilter(c)
return c:IsSetCard(0x341a) and c:IsAbleToGrave() return c:IsSetCard(0x341a) and c:IsAbleToGrave()
end end
function c64800116.target(e,tp,eg,ep,ev,re,r,rp,chk) function c64800116.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c64800116.tgfilter,tp,LOCATION_HAND,0,1,nil) if chk==0 then return Duel.IsExistingMatchingCard(c64800116.tgfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil) end
and Duel.IsExistingMatchingCard(c64800116.tgfilter,tp,LOCATION_DECK,0,1,nil) end Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK+LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,nil,tp,LOCATION_DECK+LOCATION_HAND) end
function c64800116.fselect(g)
return g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1
and g:FilterCount(Card.IsLocation,nil,LOCATION_DECK)<=1
end end
function c64800116.activate(e,tp,eg,ep,ev,re,r,rp) function c64800116.activate(e,tp,eg,ep,ev,re,r,rp)
local g1=Group.CreateGroup() local g=Duel.GetMatchingGroup(c64800116.tgfilter,tp,LOCATION_HAND+LOCATION_DECK,0,nil)
local g2=Group.CreateGroup() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
if Duel.IsExistingMatchingCard(c64800116.tgfilter,tp,LOCATION_HAND,0,1,nil) then local sg=g:SelectSubGroup(tp,c64800116.fselect,false,1,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) if sg:GetCount()>0 then
g1=Duel.SelectMatchingCard(tp,c64800116.tgfilter,tp,LOCATION_HAND,0,1,1,nil) Duel.SendtoGrave(sg,REASON_EFFECT)
end
if Duel.IsExistingMatchingCard(c64800116.tgfilter,tp,LOCATION_DECK,0,1,nil) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
g2=Duel.SelectMatchingCard(tp,c64800116.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
end
g1:Merge(g2)
if g1:GetCount()>0 then
Duel.SendtoGrave(g1,REASON_EFFECT)
end end
end end
...@@ -55,7 +50,7 @@ function c64800116.spcfilter(c,tp) ...@@ -55,7 +50,7 @@ function c64800116.spcfilter(c,tp)
return c:GetControler()==tp and c:IsSetCard(0x341a) return c:GetControler()==tp and c:IsSetCard(0x341a)
end end
function c64800116.spcon(e,tp,eg,ep,ev,re,r,rp) function c64800116.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c64800116.spcfilter,1,e:GetHandler(),tp) return eg:IsExists(c64800116.spcfilter,1,nil,tp) and not eg:IsContains(e:GetHandler())
end end
function c64800116.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c64800116.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return (Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return (Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
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