Commit 4bb6a0ea authored by Tachibana's avatar Tachibana

ybb

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