Commit ced97e17 authored by Nemo Ma's avatar Nemo Ma

151228 wd

parent 334080bf
...@@ -41,6 +41,21 @@ ...@@ -41,6 +41,21 @@
130002004 0 130002004 0
130002005 0 130002005 0
#WILD, I say WILD, WAHAHA #WILD, I say WILD, WAHAHA
17339110 0
17339120 0
17331930 0
7427502 0
7427504 0
7427506 0
7427508 0
7427510 0
7427512 0
7427522 0
7427524 0
7427532 0
7427534 0
7427536 0
74610550 0
17339020 0 17339020 0
17339100 0 17339100 0
62501101 0 62501101 0
...@@ -2859,6 +2874,38 @@ ...@@ -2859,6 +2874,38 @@
95101217 0 95101217 0
95101218 0 95101218 0
95101219 0 95101219 0
#「仙舟翾翔」系列 - MerlinTC
60010225 0
60010226 0
60010227 0
60010228 0
60010229 0
60010230 0
60010231 0
60010232 0
60010233 0
60010234 0
60010235 0
60012001 0
60012002 0
60012003 0
60012004 0
60012005 0
60012006 0
60012007 0
60012008 0
60012009 0
60012010 0
60012011 0
60012012 0
60012013 0
60012014 0
60012015 0
60012016 0
60012017 0
60012018 0
60012019 0
60012020 0
#Tears are now in Japari Park Again! #Tears are now in Japari Park Again!
572850 1 572850 1
4928565 0 4928565 0
...@@ -2875,6 +2922,14 @@ ...@@ -2875,6 +2922,14 @@
60362066 0 60362066 0
74920585 0 74920585 0
77103950 1 77103950 1
#251228
13020100 0 --精灵胶囊
13020070 0 --诅咒玩偶
12847273 0 --黄泉津之巳剑
13020050 1 --武器大师 天天
71290010 0
71290016 0
71290018 0
#251214 #251214
10200106 1 10200106 1
65133124 1 65133124 1
......
No preview for this file type
expansions/pics/17338190.jpg

43.6 KB | W: | H:

expansions/pics/17338190.jpg

44 KB | W: | H:

expansions/pics/17338190.jpg
expansions/pics/17338190.jpg
expansions/pics/17338190.jpg
expansions/pics/17338190.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/17338950.jpg

37.8 KB | W: | H:

expansions/pics/17338950.jpg

37.7 KB | W: | H:

expansions/pics/17338950.jpg
expansions/pics/17338950.jpg
expansions/pics/17338950.jpg
expansions/pics/17338950.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/17339060.jpg

44.1 KB | W: | H:

expansions/pics/17339060.jpg

35.6 KB | W: | H:

expansions/pics/17339060.jpg
expansions/pics/17339060.jpg
expansions/pics/17339060.jpg
expansions/pics/17339060.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/17339070.jpg

102 KB | W: | H:

expansions/pics/17339070.jpg

102 KB | W: | H:

expansions/pics/17339070.jpg
expansions/pics/17339070.jpg
expansions/pics/17339070.jpg
expansions/pics/17339070.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/17339080.jpg

43.7 KB | W: | H:

expansions/pics/17339080.jpg

43.5 KB | W: | H:

expansions/pics/17339080.jpg
expansions/pics/17339080.jpg
expansions/pics/17339080.jpg
expansions/pics/17339080.jpg
  • 2-up
  • Swipe
  • Onion skin
...@@ -114,7 +114,7 @@ function s.ctop(e,tp,eg,ep,ev,re,r,rp) ...@@ -114,7 +114,7 @@ function s.ctop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
end end
function s.ctfilter(c) function s.ctfilter(c,e,tp)
return c:GetOriginalType()&TYPE_MONSTER>0 and c:GetType()&TYPE_CONTINUOUS+TYPE_TRAP==TYPE_CONTINUOUS+TYPE_TRAP return c:GetOriginalType()&TYPE_MONSTER>0 and c:GetType()&TYPE_CONTINUOUS+TYPE_TRAP==TYPE_CONTINUOUS+TYPE_TRAP
and c:IsFaceup() and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceup() and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
......
...@@ -95,7 +95,7 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -95,7 +95,7 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.spfilter),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.spfilter),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc then
Duel.SpecialSummon(tc,0,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end end
end end
function s.setcon(e,tp,eg,ep,ev,re,r,rp) function s.setcon(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -58,7 +58,6 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -58,7 +58,6 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.ConfirmCards(1-tp,c) Duel.ConfirmCards(1-tp,c)
-- 特殊召唤部分
if Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) then if Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -71,7 +70,6 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,7 +70,6 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end end
-- 检索部分(修改为1张卡)
local g=Duel.GetMatchingGroup(s.opfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(s.opfilter,tp,LOCATION_DECK,0,nil)
if #g>0 then if #g>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
......
--思绪 银幕再叙
local s,id,o=GetID()
function s.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND+LOCATION_SZONE)
e1:SetCountLimit(1,id)
e1:SetCondition(s.condition)
e1:SetCost(s.cost)
e1:SetTarget(s.target)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
--tohand
local e2=Effect.CreateEffect(c)
e2:SetDescription(1190)
e2:SetCategory(CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_GRAVE)
e2:SetCondition(s.excon)
e2:SetCountLimit(1,id+1)
e2:SetTarget(s.thtg)
e2:SetOperation(s.thop)
c:RegisterEffect(e2)
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_EXTRA,0)==0
end
function s.cfilter(c)
return c:IsSetCard(0x6f52) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToRemoveAsCost()
and c:CheckActivateEffect(false,true,false)~=nil
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(1)
return true
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
if e:GetLabel()==0 then return false end
e:SetLabel(0)
return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil)
end
e:SetLabel(0)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
local te,ceg,cep,cev,cre,cr,crp=g:GetFirst():CheckActivateEffect(false,true,true)
Duel.Remove(g,POS_FACEUP,REASON_COST)
e:SetProperty(te:GetProperty())
local tg=te:GetTarget()
if tg then tg(e,tp,ceg,cep,cev,cre,cr,crp,1) end
te:SetLabelObject(e:GetLabelObject())
e:SetLabelObject(te)
Duel.ClearOperationInfo(0)
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
if not te then return end
e:SetLabelObject(te:GetLabelObject())
local op=te:GetOperation()
if op then op(e,tp,eg,ep,ev,re,r,rp) end
local e7=Effect.CreateEffect(e:GetHandler())
e7:SetType(EFFECT_TYPE_FIELD)
e7:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e7:SetCode(EFFECT_CANNOT_ACTIVATE)
e7:SetTargetRange(1,0)
e7:SetValue(s.aclimit)
Duel.RegisterEffect(e7,tp)
end
function s.aclimit(e,re,tp)
return not re:GetHandler():IsSetCard(0x6f52)
end
function s.sdfilter(c)
return c:IsFacedown() or not c:IsSetCard(0x6f52)
end
function s.excon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(s.sdfilter,tp,LOCATION_MZONE,0,1,nil)
and Duel.GetFieldGroupCount(tp,LOCATION_EXTRA,0)==0 and Duel.GetTurnPlayer()==1-tp
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,e:GetHandler())
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(1,0)
e1:SetValue(s.aclimit)
Duel.RegisterEffect(e1,tp)
end
\ No newline at end of file
--思绪 无需多言
local s,id,o=GetID()
function s.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,id)
e1:SetCondition(s.condition)
e1:SetTarget(s.target)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
--act in set turn
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,2))
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e2:SetCondition(s.actcon)
c:RegisterEffect(e2)
--tohand
local e3=Effect.CreateEffect(c)
e3:SetDescription(1190)
e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_GRAVE)
e3:SetCondition(s.excon)
e3:SetCountLimit(1,id+1)
e3:SetTarget(s.thtg)
e3:SetOperation(s.thop)
c:RegisterEffect(e3)
end
function s.sdfilter(c)
return c:IsFacedown() or not c:IsSetCard(0x6f52)
end
function s.actcon(e)
return not Duel.IsExistingMatchingCard(s.sdfilter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil)
and Duel.GetTurnPlayer()==e:GetHandlerPlayer()
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_EXTRA,0)==0
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
if e:GetHandler():IsLocation(LOCATION_SZONE) and e:IsHasType(EFFECT_TYPE_ACTIVATE) then
e:SetLabel(1)
else
e:SetLabel(0)
end
return true
end
if e:GetLabel()==1 then
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,0,tp,LOCATION_GRAVE)
end
end
function s.thfilter(c)
return c:IsSetCard(0x6f52) and c:IsAbleToHand()
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING)
e1:SetOperation(s.chainop)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
if e:GetLabel()==1 and Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_GRAVE,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tg=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
if #tg>0 then
Duel.SendtoHand(tg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tg)
end
end
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD)
e7:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e7:SetCode(EFFECT_CANNOT_ACTIVATE)
e7:SetTargetRange(1,0)
e7:SetValue(s.aclimit)
Duel.RegisterEffect(e7,tp)
end
function s.chainop(e,tp,eg,ep,ev,re,r,rp)
if re:GetHandler():IsSetCard(0x6f52) and ep==tp then
Duel.SetChainLimit(s.chainlm)
end
end
function s.chainlm(e,rp,tp)
return tp==rp
end
function s.aclimit(e,re,tp)
return not re:GetHandler():IsSetCard(0x6f52)
end
function s.excon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(s.sdfilter,tp,LOCATION_MZONE,0,1,nil)
and Duel.GetFieldGroupCount(tp,LOCATION_EXTRA,0)==0 and Duel.GetTurnPlayer()==tp
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,e:GetHandler())
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(1,0)
e1:SetValue(s.aclimit)
Duel.RegisterEffect(e1,tp)
end
\ No newline at end of file
--思绪 戏仿相欢
local s,id,o=GetID()
function s.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_REMOVE+CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN+CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,id)
e1:SetCondition(s.condition)
e1:SetTarget(s.target)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
--act in set turn
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,2))
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e2:SetCondition(s.actcon)
c:RegisterEffect(e2)
--tohand
local e3=Effect.CreateEffect(c)
e3:SetDescription(1190)
e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_GRAVE)
e3:SetCondition(s.excon)
e3:SetCountLimit(1,id+1)
e3:SetTarget(s.thtg)
e3:SetOperation(s.thop)
c:RegisterEffect(e3)
end
function s.sdfilter(c)
return c:IsFacedown() or not c:IsSetCard(0x6f52)
end
function s.actcon(e)
return not Duel.IsExistingMatchingCard(s.sdfilter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil)
and Duel.GetTurnPlayer()==e:GetHandlerPlayer()
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_EXTRA,0)==0
end
function s.rmfilter(c)
return c:IsSetCard(0x6f52) and c:IsType(TYPE_MONSTER) and c:IsAbleToRemove()
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
if e:GetHandler():IsLocation(LOCATION_SZONE) and e:IsHasType(EFFECT_TYPE_ACTIVATE) then
e:SetLabel(1)
else
e:SetLabel(0)
end
return Duel.IsExistingMatchingCard(s.rmfilter,tp,LOCATION_DECK+LOCATION_EXTRA+LOCATION_GRAVE,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_DECK+LOCATION_EXTRA+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_TOKEN)
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local rg=Duel.SelectMatchingCard(tp,s.rmfilter,tp,LOCATION_DECK+LOCATION_EXTRA+LOCATION_GRAVE,0,1,1,nil)
if #rg==0 then return end
local tc=rg:GetFirst()
local code=tc:GetCode()
if Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)>0 then
local token=Duel.CreateToken(tp,code)
if token and Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP) then
Duel.SpecialSummonComplete()
if e:GetLabel()==1 and Duel.IsPlayerCanDraw(tp,1)
and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
end
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD)
e7:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e7:SetCode(EFFECT_CANNOT_ACTIVATE)
e7:SetTargetRange(1,0)
e7:SetValue(s.aclimit)
Duel.RegisterEffect(e7,tp)
end
function s.aclimit(e,re,tp)
return not re:GetHandler():IsSetCard(0x6f52)
end
function s.excon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(s.sdfilter,tp,LOCATION_MZONE,0,1,nil)
and Duel.GetFieldGroupCount(tp,LOCATION_EXTRA,0)==0 and Duel.GetTurnPlayer()==tp
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,e:GetHandler())
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(1,0)
e1:SetValue(s.aclimit)
Duel.RegisterEffect(e1,tp)
end
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
--超级地球人 幻影侠
local s,id,o=GetID()
function s.initial_effect(c)
--fusion summon
aux.AddFusionProcFunRep(c,s.matfilter,5,true)
c:EnableReviveLimit()
aux.AddContactFusionProcedure(c,s.cfilter,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE+LOCATION_REMOVED,0,s.sprop(c)):SetValue(SUMMON_VALUE_SELF)
--spsummon condition
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(s.splimit)
c:RegisterEffect(e0)
--todeck
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(52068432,1))
e3:SetCategory(CATEGORY_REMOVE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetCondition(s.tdcon)
e3:SetTarget(s.tdtg)
e3:SetOperation(s.tdop)
c:RegisterEffect(e3)
end
function s.matfilter(c)
return c:IsFusionSetCard(0xdce) and c:IsFusionType(TYPE_MONSTER)
end
function s.cfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToDeckOrExtraAsCost()
end
function s.splimit(e,se,sp,st)
return not e:GetHandler():IsLocation(LOCATION_EXTRA)
end
function s.sprop(c)
return function(g)
local loc=0
for tc in aux.Next(g) do
local tc_loc=tc:GetLocation()
loc=loc|tc_loc
end
--
local cg=g:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
Duel.ConfirmCards(1-c:GetControler(),cg)
end
local hg=g:Filter(Card.IsLocation,nil,LOCATION_GRAVE+LOCATION_REMOVED)
if hg:GetCount()>0 then
Duel.HintSelection(hg)
end
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_COST)
--spsummon condition
c:RegisterFlagEffect(id,RESET_EVENT+0xff0000,0,1,loc)
end
end
function s.tdcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_SPECIAL+SUMMON_VALUE_SELF
end
function s.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local loc=c:GetFlagEffectLabel(id)
if chk==0 then return (bit.band(loc,LOCATION_HAND)==0 or Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_HAND,1,nil))
and (bit.band(loc,LOCATION_MZONE)==0 or Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,1,nil))
and (bit.band(loc,LOCATION_GRAVE)==0 or Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_GRAVE,1,nil))
and (bit.band(loc,LOCATION_REMOVED)==0 or Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_REMOVED,1,nil)) end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,0,LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_HAND+LOCATION_REMOVED)
end
function s.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local loc=c:GetFlagEffectLabel(id)
local g1=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_HAND,nil)
local g2=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,nil)
local g3=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_GRAVE,nil)
local g4=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_REMOVED,nil)
if (bit.band(loc,LOCATION_HAND)==0 or g1:GetCount()>0)
and (bit.band(loc,LOCATION_MZONE)==0 or g2:GetCount()>0)
and (bit.band(loc,LOCATION_GRAVE)==0 or g3:GetCount()>0)
and (bit.band(loc,LOCATION_REMOVED)==0 or g4:GetCount()>0)
then
local sg1=Group.CreateGroup()
local sg2=Group.CreateGroup()
local sg3=Group.CreateGroup()
local sg4=Group.CreateGroup()
if bit.band(loc,LOCATION_HAND)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
sg1=g1:RandomSelect(tp,1)
end
if bit.band(loc,LOCATION_MZONE)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
sg2=g2:Select(tp,1,1,nil)
end
if bit.band(loc,LOCATION_GRAVE)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
sg3=g3:Select(tp,1,1,nil)
end
if bit.band(loc,LOCATION_REMOVED)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
sg4=g4:Select(tp,1,1,nil)
end
sg1:Merge(sg2)
sg1:Merge(sg3)
sg1:Merge(sg4)
Duel.HintSelection(sg1)
Duel.SendtoDeck(sg1,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
local s,id,o=GetID()
function s.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_DRAW+CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,id)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e1:SetCost(s.cost)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--Summon/Spsummon (Draw 4)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(s.sumcon)
e1:SetOperation(s.regop4)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
local e1b=e1:Clone()
e1b:SetCode(EVENT_SUMMON_SUCCESS)
Duel.RegisterEffect(e1b,tp)
--Activation (Draw 3)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAINING)
e2:SetCondition(s.actcon)
e2:SetOperation(s.regop3)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
--Set (Draw 3)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_SSET)
e3:SetCondition(s.setcon)
e3:SetOperation(s.regop3)
e3:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e3,tp)
local e3b=e3:Clone()
e3b:SetCode(EVENT_MSET)
Duel.RegisterEffect(e3b,tp)
--To Grave in Main Phase (Draw 1)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_TO_GRAVE)
e4:SetCondition(s.tgcon)
e4:SetOperation(s.regop1)
e4:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e4,tp)
--Unified Settlement
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_CHAIN_SOLVED)
e5:SetOperation(s.solveop)
e5:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e5,tp)
--End Phase Balance
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_PHASE+PHASE_END)
e6:SetCountLimit(1)
e6:SetOperation(s.edop)
e6:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e6,tp)
end
function s.sumcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsSummonPlayer,1,nil,1-tp)
end
function s.actcon(e,tp,eg,ep,ev,re,r,rp)
return rp~=tp
end
function s.setcon(e,tp,eg,ep,ev,re,r,rp)
return rp~=tp
end
function s.tgcon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return (ph==PHASE_MAIN1 or ph==PHASE_MAIN2) and eg:IsExists(Card.IsPreviousControler,1,nil,1-tp)
end
function s.regop4(e,tp,eg,ep,ev,re,r,rp)
for i=1,4 do Duel.RegisterFlagEffect(tp,id,RESET_CHAIN,0,1) end
if not Duel.IsChainSolving() then s.solveop(e,tp,eg,ep,ev,re,r,rp) end
end
function s.regop3(e,tp,eg,ep,ev,re,r,rp)
for i=1,3 do Duel.RegisterFlagEffect(tp,id,RESET_CHAIN,0,1) end
if not Duel.IsChainSolving() then s.solveop(e,tp,eg,ep,ev,re,r,rp) end
end
function s.regop1(e,tp,eg,ep,ev,re,r,rp)
local ct=eg:FilterCount(Card.IsPreviousControler,nil,1-tp)
for i=1,ct do Duel.RegisterFlagEffect(tp,id,RESET_CHAIN,0,1) end
if not Duel.IsChainSolving() then s.solveop(e,tp,eg,ep,ev,re,r,rp) end
end
function s.solveop(e,tp,eg,ep,ev,re,r,rp)
local n=Duel.GetFlagEffect(tp,id)
if n>0 then
Duel.ResetFlagEffect(tp,id)
Duel.Draw(1-tp,n,REASON_EFFECT)
end
end
function s.edop(e,tp,eg,ep,ev,re,r,rp)
local h1=Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
local f1=Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)
local h2=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)
local threshold=h1+f1+10
if h2>threshold then
local d=h2-threshold
local g=Duel.GetFieldGroup(tp,0,LOCATION_HAND):RandomSelect(1-tp,d)
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end
\ No newline at end of file
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