Commit 29dc1ff5 authored by POLYMER's avatar POLYMER

fix

parent a8f0595a
...@@ -2156,26 +2156,6 @@ ...@@ -2156,26 +2156,6 @@
127541563 0 127541563 0
129223325 0 129223325 0
130001000 0 130001000 0
130005101 0
130005102 0
130005103 0
130005104 0
130005105 0
130005106 0
130005107 0
130005108 0
130005109 0
130005110 0
130005111 0
130005112 0
130005113 0
130005114 0
130005115 0
130005116 0
130005117 0
130005118 0
130005119 0
130005120 0
130006013 0 130006013 0
130006014 0 130006014 0
130006015 0 130006015 0
...@@ -5309,26 +5289,6 @@ ...@@ -5309,26 +5289,6 @@
31401002 0 --化生腮鱼石,系列剑指wd环境,按此表ban即可 31401002 0 --化生腮鱼石,系列剑指wd环境,按此表ban即可
31400045 1 --命莲托生,定位是类似死苏的泛用卡 31400045 1 --命莲托生,定位是类似死苏的泛用卡
#wild #wild
130005101 0
130005102 0
130005103 0
130005104 0
130005105 0
130005106 0
130005107 0
130005108 0
130005109 0
130005110 0
130005111 0
130005112 0
130005113 0
130005114 0
130005115 0
130005116 0
130005117 0
130005118 0
130005119 0
130005120 0
30000007 0 30000007 0
31400012 0 31400012 0
65020203 0 65020203 0
...@@ -7593,7 +7553,6 @@ ...@@ -7593,7 +7553,6 @@
77770015 0 77770015 0
90700030 0 90700030 0
90700059 0 90700059 0
130005105 0
88100002 0 88100002 0
#永劫复归 善哉善哉 #永劫复归 善哉善哉
90700056 0 90700056 0
......
No preview for this file type
--唤士的幼龙-嘉儿
if not require and loadfile then
function require(str)
require_list=require_list or {}
if not require_list[str] then
if string.find(str,"%.") then
require_list[str]=loadfile(str)
else
require_list[str]=loadfile(str..".lua")
end
pcall(require_list[str])
return require_list[str]
end
return require_list[str]
end
end
if not pcall(function() require("expansions/script/c130001000") end) then require("script/c130001000") end
local m,cm=rscf.DefineCard(130005101,"DragonCaller")
if rsdc then return end
rsdc = cm
rscf.DefineSet(rsdc,"DragonCaller")
function rsdc.SynchroFun(c,code,att,cate,cost,tg,op,limit)
c:EnableReviveLimit()
aux.AddSynchroProcedure(c,rsdc.IsSet,aux.FilterBoolFunction(Card.IsAttribute,att),1)
local e1=rsef.QO(c,nil,{m,2},nil,"sp",nil,LOCATION_EXTRA,nil,rscost.cost({cm.resfilter,cm.resgcheck},"res",LOCATION_HAND+LOCATION_MZONE,0,2,2),rsop.target3(cm.checkfun,cm.spfilter,"sp"),cm.synop)
e1:SetLabel(att)
local e2=rsef.QO(c,nil,{m,2},{1,code},"sp",nil,LOCATION_GRAVE,nil,rscost.cost(cm.resfilter2,"res",LOCATION_HAND+LOCATION_MZONE),rsop.target(cm.spfilter2,"sp"),cm.synop2)
e2:SetLabel(att)
local e3=rsef.STO(c,EVENT_SPSUMMON_SUCCESS,{code,0},{1,code+100},cate,"de",nil,cost,cm.synsptg(tg,limit),op)
return e1,e2,e3
end
function cm.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false)
end
function cm.spfilter2(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.checkfun(e,tp)
return not e:GetHandler():IsStatus(STATUS_CHAINING)
end
function cm.resfilter(c,e,tp)
return (rsdc.IsSetM(c) or c:IsAttribute(e:GetLabel())) and c:IsReleasable()
end
function cm.resgcheck(g,e,tp)
return Duel.GetLocationCountFromEx(tp,tp,g,e:GetHandler())>0
end
function cm.synop(e,tp)
local c=rscf.GetSelf(e)
if c then rssf.SpecialSummon(c,SUMMON_TYPE_SYNCHRO) c:CompleteProcedure() end
end
function cm.synop2(e,tp)
local c=rscf.GetSelf(e)
if c then rssf.SpecialSummon(c) end
end
function cm.resfilter2(c,e,tp)
return (rsdc.IsSetM(c) or c:IsAttribute(e:GetLabel())) and c:IsReleasable() and Duel.GetMZoneCount(tp,c,tp)>0
end
function cm.synsptg(tg,limit)
return function(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not tg or tg(e,tp,eg,ep,ev,re,r,rp,0) end
if tg then
tg(e,tp,eg,ep,ev,re,r,rp,1)
end
if limit then
Duel.SetChainLimit(cm.chainlimit(e:GetHandler(),limit))
end
end
end
function cm.chainlimit(c,limit)
return function(e,rp,tp)
return tp==rp or not limit(c,e:GetHandler(),e)
end
end
function rsdc.HandActFun(c)
--act in hand
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e1:SetCondition(cm.handcon)
c:RegisterEffect(e1)
return e1
end
function cm.handcon(e)
return Duel.GetMatchingGroupCount(Card.IsType,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,nil,TYPE_SPELL+TYPE_TRAP)==0
end
------------------------------------
function cm.initial_effect(c)
local e1=rsef.SV_ADD(c,"att",ATTRIBUTE_WATER+ATTRIBUTE_FIRE+ATTRIBUTE_WIND)
local e2=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,0},{1,m},"lv","de,tg",nil,nil,rstg.target2(cm.fun,cm.lvfilter,nil,LOCATION_MZONE),cm.lvop)
local e3=rsef.RegisterClone(c,e2,"code",EVENT_SPSUMMON_SUCCESS)
local e4=rsef.STO(c,EVENT_RELEASE,{m,1},{1,m+100},"se,th","de",nil,nil,rsop.target(cm.thfilter,"th",LOCATION_DECK),cm.thop)
end
function cm.thfilter(c)
return rsdc.IsSetM(c) and not c:IsCode(m) and c:IsAbleToHand()
end
function cm.thop(e,tp)
rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
function cm.lvfilter(c)
return not c:IsCode(m) and c:IsFaceup() and c:IsAttribute(ATTRIBUTE_EARTH+ATTRIBUTE_WATER+ATTRIBUTE_FIRE+ATTRIBUTE_WIND) and c:IsLevelAbove(1)
end
function cm.fun(g,e,tp)
local lv=g:GetFirst():GetLevel()
e:SetLabel(Duel.AnnounceLevel(tp,1,7,lv))
end
function cm.lvop(e,tp)
local tc=rscf.GetTargetCard(Card.IsFaceup)
local lv=e:GetLabel()
if not tc then return end
rsef.SV_CHANGE({e:GetHandler(),tc},"lv",lv,nil,rsreset.est_pend)
end
\ No newline at end of file
--唤士的观测者-尤拉
if not require and loadfile then
function require(str)
require_list=require_list or {}
if not require_list[str] then
if string.find(str,"%.") then
require_list[str]=loadfile(str)
else
require_list[str]=loadfile(str..".lua")
end
pcall(require_list[str])
return require_list[str]
end
return require_list[str]
end
end
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005102,"DragonCaller")
function cm.initial_effect(c)
local e1=rsef.SV_CANNOT_BE_TARGET(c,"effect",aux.tgoval)
local e2=rsef.QO(c,nil,{m,0},{1,m},"sp",nil,LOCATION_HAND,nil,rscost.cost(Card.IsDiscardable,"dish",LOCATION_HAND,0,1,1,c),rsop.target({rscf.spfilter2(),"sp"},{cm.spfilter,"sp",LOCATION_DECK }),cm.spop)
local e3=rsef.STO(c,EVENT_RELEASE,{m,1},{1,m+100},"sp","tg,de",nil,nil,rstg.target(rscf.spfilter2(rsdc.IsSetM),"sp",LOCATION_GRAVE),cm.spop2)
end
function cm.spfilter(c,e,tp)
return Duel.GetLocationCount(tp,LOCATION_MZONE)>=2 and rsdc.IsSetM(c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.spop(e,tp)
local c=rscf.GetSelf(e)
if c and rssf.SpecialSummon(c)>0 then
rsop.SelectOC(nil,true)
rsop.SelectSpecialSummon(tp,rscf.spfilter2(rsdc.IsSetM),tp,LOCATION_DECK,0,1,1,nil,{},e,tp)
end
end
function cm.spop2(e,tp)
local tc=rscf.GetTargetCard()
if tc then rssf.SpecialSummon(tc) end
end
--唤士的引导者-安达
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005103,"DragonCaller")
function cm.initial_effect(c)
local e1=rsef.QO(c,nil,{m,0},{1,m},"sp",nil,LOCATION_GRAVE,nil,rscost.cost(cm.resfilter,"res",LOCATION_HAND),rsop.target(rscf.spfilter2(),"sp"),cm.spop)
local e3=rsef.STO(c,EVENT_RELEASE,{m,1},{1,m+100},"th","tg,de",nil,nil,rstg.target(cm.thfilter,"th",LOCATION_GRAVE),cm.thop)
end
function cm.resfilter(c)
return c:IsReleasable() and c:IsType(TYPE_MONSTER) and (rsdc.IsSetM(c) or not c:IsAttribute(ATTRIBUTE_WIND))
end
function cm.spop(e,tp)
local c=rscf.GetSelf(e)
if c then rssf.SpecialSummon(c) end
end
function cm.thfilter(c)
return rsdc.IsSetM(c) and c:IsAbleToHand()
end
function cm.thop(e,tp)
local tc=rscf.GetTargetCard()
if tc then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
\ No newline at end of file
--唤士的传承者-狎西
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005104,"DragonCaller")
function cm.initial_effect(c)
local e1=rsef.QO(c,nil,{m,0},{1,m},"sp",nil,LOCATION_HAND,nil,rscost.cost(Card.IsReleasable,"res",LOCATION_HAND,0,1,1,c),rsop.target(rscf.spfilter2(),"sp"),cm.spop)
local e2=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,1},{1,m+100},"se,th","de",nil,nil,rsop.target(cm.thfilter,"th",LOCATION_DECK),cm.thop)
local e3=rsef.RegisterClone(c,e2,"code",EVENT_SPSUMMON_SUCCESS)
local e4=rsef.SC(c,EVENT_RELEASE,nil,nil,"cd",nil,cm.regop)
local e5=rsef.FTO(c,EVENT_PHASE+PHASE_END,{m,2},1,"dr",nil,LOCATION_GRAVE+LOCATION_REMOVED,cm.drcon,nil,cm.drtg,cm.drop)
if cm.switch then return end
cm.switch = true
local ge1=rsef.FC({c,0},EVENT_RELEASE)
ge1:SetOperation(cm.drctop)
end
function cm.drcon(e,tp)
return e:GetHandler():GetFlagEffect(m)>0
end
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
local dct=Duel.GetFlagEffect(tp,m)
if chk==0 then return Duel.IsPlayerCanDraw(tp,dct) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(dct)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,dct)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,Duel.GetFlagEffect(tp,m),REASON_EFFECT)
end
function cm.drctop(e,tp,eg)
for tc in aux.Next(eg) do
if rsdc.IsSetM(tc) then
Duel.RegisterFlagEffect(tc:GetReasonPlayer(),m,rsreset.pend,0,1)
end
end
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:RegisterFlagEffect(m,rsreset.est_pend,0,1)
end
function cm.spop(e,tp)
local c=rscf.GetSelf(e)
if c then rssf.SpecialSummon(c) end
end
function cm.thfilter(c)
return rsdc.IsSetST(c) and c:IsAbleToHand()
end
function cm.thop(e,tp)
rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
\ No newline at end of file
--龙唤士 达克尔
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005105,"DragonCaller")
function cm.initial_effect(c)
local e1=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,0},{1,m},"se,th","de",nil,nil,rsop.target(cm.thfilter,"th",LOCATION_DECK),cm.thop)
local e2=rsef.RegisterClone(c,e1,"code",EVENT_SPSUMMON_SUCCESS)
local e3=rsef.QO(c,nil,{m,1},nil,"dr",nil,rsloc.hg,cm.con,rscost.cost(Card.IsAbleToRemoveAsCost,"rm"),nil,cm.drop)
local e4=rsef.QO(c,nil,{m,2},nil,nil,nil,rsloc.hg,cm.con,rscost.cost(Card.IsAbleToRemoveAsCost,"rm"),nil,cm.limitop)
local e5=rsef.RegisterClone(c,e4,"desc",{m,3},"op",cm.rmop)
local e6=rsef.RegisterClone(c,e4,"desc",{m,4},"op",cm.crmop)
local e7=rsef.RegisterClone(c,e4,"desc",{m,5},"op",cm.setop)
local e8=rsef.I(c,{m,6},nil,"sp",nil,LOCATION_REMOVED,nil,rscost.cost({cm.tcfilter,aux.dncheck},"te",LOCATION_GRAVE,0,4,4),rsop.target(rscf.spfilter2(),"sp"),cm.spop)
if cm.switch then return end
cm.switch = true
local ge1=rsef.FC({c,0},EVENT_SPSUMMON_SUCCESS)
ge1:SetOperation(cm.sregop)
end
function cm.tcfilter(c)
return rsdc.IsSet(c) and c:IsAbleToExtraAsCost() and c:IsType(TYPE_SYNCHRO)
end
function cm.spop(e,tp)
local c=rscf.GetSelf(e)
if c then rssf.SpecialSummon(c) end
end
function cm.setop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_MSET)
e1:SetTargetRange(0,1)
e1:SetTarget(aux.TRUE)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_SSET)
Duel.RegisterEffect(e2,tp)
local e3=e1:Clone()
e3:SetCode(EFFECT_CANNOT_TURN_SET)
Duel.RegisterEffect(e3,tp)
local e4=e1:Clone()
e4:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e4:SetTarget(cm.sumlimit)
Duel.RegisterEffect(e4,tp)
end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return bit.band(sumpos,POS_FACEDOWN)>0
end
function cm.crmop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_REMOVE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,1)
e1:SetValue(1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_TO_GRAVE_REDIRECT)
e1:SetTarget(cm.rmtarget)
e1:SetTargetRange(0xff, 0xff)
e1:SetValue(LOCATION_REMOVED)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.rmtarget(e,c)
return c:GetOwner()~=e:GetHandlerPlayer()
end
function cm.limitop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_TO_HAND)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(0,1)
e1:SetTarget(aux.TargetBoolFunction(Card.IsLocation,LOCATION_DECK))
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EFFECT_CANNOT_DRAW)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetTargetRange(0,1)
Duel.RegisterEffect(e2,tp)
end
function cm.con(e,tp)
return Duel.GetFlagEffect(tp,m+100)>0
end
function cm.sregop(e,tp,eg)
for tc in aux.Next(eg) do
if rsdc.IsSet(tc) and tc:IsType(TYPE_SYNCHRO) then
Duel.RegisterFlagEffect(tc:GetSummonPlayer(),m+100,rsreset.pend,0,1)
end
end
end
function cm.thfilter(c)
return rsdc.IsSet(c) and c:IsAbleToHand() and not c:IsCode(m)
end
function cm.thop(e,tp)
rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(cm.drcon1)
e1:SetOperation(cm.drop1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
--sp_summon effect
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(cm.regcon)
e2:SetOperation(cm.regop)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_CHAIN_SOLVED)
e3:SetCondition(cm.drcon2)
e3:SetOperation(cm.drop2)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
function cm.filter(c,sp)
return c:GetSummonPlayer()==sp
end
function cm.drcon1(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.filter,1,nil,1-tp)
and (not re:IsHasType(EFFECT_TYPE_ACTIONS) or re:IsHasType(EFFECT_TYPE_CONTINUOUS))
end
function cm.drop1(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.filter,1,nil,1-tp)
and re:IsHasType(EFFECT_TYPE_ACTIONS) and not re:IsHasType(EFFECT_TYPE_CONTINUOUS)
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,m,RESET_CHAIN,0,1)
end
function cm.drcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,m)>0
end
function cm.drop2(e,tp,eg,ep,ev,re,r,rp)
local n=Duel.GetFlagEffect(tp,m)
Duel.ResetFlagEffect(tp,m)
Duel.Draw(tp,n,REASON_EFFECT)
end
--龙唤士 琳
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005106,"DragonCaller")
function cm.initial_effect(c)
local e1=rsef.QO(c,nil,{m,0},nil,"th",nil,LOCATION_MZONE+LOCATION_HAND,nil,rscost.cost(Card.IsReleasable,"res"),nil,cm.op)
local e2=rsef.I(c,{m,1},nil,"td,th","tg",LOCATION_GRAVE,nil,nil,rstg.target({cm.thfilter2,"td",LOCATION_GRAVE,0,3,3,c},rsop.list(Card.IsAbleToHand,"th")),cm.tdop)
end
function cm.op(e,tp)
local e1=rsef.FC({e:GetHandler(),tp},EVENT_PHASE+PHASE_END,{m,0},1,nil,nil,cm.thcon,cm.thop,rsreset.pend)
end
function cm.thfilter(c)
return c:IsFacedown() and c:IsAbleToHand()
end
function cm.thcon(e,tp)
local g=Duel.GetMatchingGroup(cm.thfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
return #g>0
end
function cm.thop(e,tp)
rshint.Card(m)
local g=Duel.GetMatchingGroup(cm.thfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
function cm.thfilter2(c)
return rsdc.IsSetM(c) and c:IsAbleToDeck() and not c:IsCode(m)
end
function cm.tdop(e,tp)
local tg=rsgf.GetTargetGroup()
local c=rscf.GetSelf(e)
if #tg>0 and Duel.SendtoDeck(tg,nil,2,REASON_EFFECT)>0 and Duel.GetOperatedGroup():IsExists(Card.IsLocation,1,nil,rsloc.de) and c then
Duel.SendtoHand(c,nil,REASON_EFFECT)
end
end
\ No newline at end of file
--龙唤士 罗莎
if not require and loadfile then
function require(str)
require_list=require_list or {}
if not require_list[str] then
if string.find(str,"%.") then
require_list[str]=loadfile(str)
else
require_list[str]=loadfile(str..".lua")
end
pcall(require_list[str])
return require_list[str]
end
return require_list[str]
end
end
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005107,"DragonCaller")
function cm.initial_effect(c)
local e1=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,0},nil,"sp","de",nil,nil,rsop.target(cm.spfilter,"sp",LOCATION_GRAVE),cm.spop)
local e2=rsef.RegisterClone(c,e1,"code",EVENT_SPSUMMON_SUCCESS)
local e3=rsef.STO(c,EVENT_RELEASE,{m,1},nil,"th","de",nil,nil,cm.tg,cm.op)
--effect gain
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_BE_MATERIAL)
e3:SetProperty(EFFECT_FLAG_EVENT_PLAYER)
e3:SetCondition(cm.efcon)
e3:SetOperation(cm.efop)
c:RegisterEffect(e3)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,PLAYER_ALL,LOCATION_ONFIELD)
end
function cm.op(e,tp)
local e1=rsef.FC({e:GetHandler(),tp},EVENT_PHASE+PHASE_END,{m,1},1,nil,nil,cm.thcon,cm.thop,rsreset.pend)
end
function cm.thcon(e,tp)
local g=Duel.GetMatchingGroup(Card.IsAbleToHand,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
return g:CheckSubGroup(rsgf.dnpcheck,2,2)
end
function cm.thop(e,tp)
rshint.Card(m)
local g=Duel.GetMatchingGroup(Card.IsAbleToHand,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
rshint.Select(tp,"th")
local tg=g:SelectSubGroup(tp,rsgf.dnpcheck,false,2,2)
Duel.HintSelection(tg)
Duel.SendtoHand(tg,nil,REASON_EFFECT)
end
function cm.spfilter(c,e,tp)
return rscf.spfilter2(rsdc.IsSet)(c,e,tp)
end
function cm.spop(e,tp)
rsop.SelectSpecialSummon(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,{},e,tp)
end
function cm.efcon(e,tp,eg,ep,ev,re,r,rp)
return r & REASON_XYZ + REASON_LINK ~= 0
end
function cm.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetOperation(cm.sumsuc)
rc:RegisterEffect(e1,true)
if not rc:IsType(TYPE_EFFECT) then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_ADD_TYPE)
e2:SetValue(TYPE_EFFECT)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e2,true)
end
end
function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp)
Duel.SetChainLimitTillChainEnd(cm.chainlm)
end
function cm.chainlm(e,rp,tp)
return tp==rp
end
\ No newline at end of file
--龙唤士 卡露兹
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005108,"DragonCaller")
function cm.initial_effect(c)
local e2=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,1},nil,"td,dr","de",nil,nil,rsop.target({cm.tdfilter,"td",LOCATION_GRAVE },{1,"dr"}),cm.tdop)
local e3=rsef.STO(c,EVENT_RELEASE,{m,2},nil,"th","de",nil,nil,rsop.target(cm.thfilter,"th",LOCATION_GRAVE),cm.thop)
--summon with 1 tribute
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SUMMON_PROC)
e1:SetCondition(cm.otcon)
e1:SetOperation(cm.otop)
e1:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e1)
end
function cm.thfilter(c)
return rsdc.IsSetST(c) and c:IsAbleToHand()
end
function cm.thop(e,tp)
rsop.SelectToHand(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,1,1,nil,{})
end
function cm.tdop(e,tp)
local tct=0
if Duel.IsPlayerCanDraw(tp,2) then tct=5
elseif Duel.IsPlayerCanDraw(tp,1) then tct=2
end
if tct==0 then return end
if rsop.SelectToDeck(tp,aux.NecroValleyFilter(cm.tdfilter),tp,LOCATION_GRAVE,0,1,tct,nil,{})>0 then
local dct=Duel.GetOperatedGroup():FilterCount(Card.IsLocation,nil,rsloc.de)<=2 and 1 or 2
rsop.ToDeckDraw(tp,dct,true)
end
end
function cm.tdfilter(c)
return rsdc.IsSetM(c) and c:IsAbleToDeck()
end
function cm.otfilter(c)
return rsdc.IsSetM(c) and c:IsAbleToGraveAsCost()
end
function cm.otcon(e,c,minc)
if c==nil then return true end
local tp=c:GetControler()
local mg=Duel.GetMatchingGroup(cm.otfilter,tp,LOCATION_DECK,0,nil)
return c:IsLevelAbove(5) and minc<=1 and #mg>0
end
function cm.otop(e,tp,eg,ep,ev,re,r,rp,c)
rsop.SelectToGrave(tp,cm.otfilter,tp,LOCATION_DECK,0,1,1,nil,{REASON_COST })
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
end
\ No newline at end of file
--赤龙唤士 索菲亚
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005109,"DragonCaller")
function cm.initial_effect(c)
local e1,e2,e3=rsdc.SynchroFun(c,m,ATTRIBUTE_FIRE,"dis,des",nil,rsop.target2(cm.fun,cm.disfilter,"dis",0,LOCATION_MZONE),cm.disop,cm.limit)
end
function cm.fun(g,e,tp)
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,#g,0,0)
end
function cm.disfilter(c,e,tp)
return aux.disfilter1(c) and c:GetBaseAttack()<e:GetHandler():GetAttack()
end
function cm.limit(c,rc)
return rc:IsType(TYPE_MONSTER) and rc:GetBaseAttack()>c:GetBaseAttack()
end
function cm.disop(e,tp)
local c=rscf.GetFaceUpSelf(e)
if not c then return end
local g=Duel.GetMatchingGroup(cm.disfilter,tp,0,LOCATION_MZONE,nil,e)
if #g<=0 then return end
for tc in aux.Next(g) do
local e1,e2,e3=rsef.SV_LIMIT({c,tc},"dis,dise,distm",nil,nil,rsreset.est)
Duel.AdjustInstantly(tc)
end
if g:IsExists(Card.IsDisabled,1,nil) then
local dg=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
if #dg>0 then
Duel.BreakEffect()
Duel.Destroy(dg,REASON_EFFECT)
end
end
end
\ No newline at end of file
--翠龙唤士 菲莉丝
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005110,"DragonCaller")
function cm.initial_effect(c)
local e1,e2,e3=rsdc.SynchroFun(c,m,ATTRIBUTE_WIND,"des",nil,rsop.target(cm.desfilter,"des",0,LOCATION_ONFIELD),cm.desop,cm.limit)
end
function cm.desfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP)
end
function cm.limit(c,rc)
return rc:IsLocation(rsloc.hg)
end
function cm.desop(e,tp)
local g=Duel.GetMatchingGroup(cm.desfilter,tp,0,LOCATION_ONFIELD,nil)
if #g>0 then
Duel.Destroy(g,REASON_EFFECT)
end
end
\ No newline at end of file
--沧龙唤士 克莉丝汀
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005111,"DragonCaller")
function cm.initial_effect(c)
local e1,e2,e3=rsdc.SynchroFun(c,m,ATTRIBUTE_WATER,"td",rscost.reglabel(100),cm.tdtg,cm.tdop,cm.limit)
end
function cm.limit(c,rc)
return rc:IsOnField() and rc:IsFaceup()
end
function cm.gcheck(g,e,tp)
local eqg=Group.CreateGroup()
for tc in aux.Next(g) do
eqg:Merge(tc:GetEquipGroup())
end
return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,#g,eqg)
end
function cm.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
local rg=Duel.GetReleaseGroup(tp,true)
local tg=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,nil)
if chk==0 then
return e:GetLabel()==100 and #rg>0 and #tg>0 --rg:CheckSubGroup(cm.gcheck,1,#rg,e,tp)
end
e:SetLabel(0)
rshint.Select(tp,"res")
local rg2=rg:Select(tp,1,#tg,nil) --rg:SelectSubGroup(tp,cm.gcheck,false,1,#rg,e,tp)
local ct=Duel.Release(rg2,REASON_COST)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,ct,1-tp,LOCATION_ONFIELD)
e:SetValue(ct)
end
function cm.tdop(e,tp)
local ct=e:GetValue()
rsop.SelectToDeck(tp,Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,ct,ct,nil,{})
end
\ No newline at end of file
--地龙唤士 法比尔
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005112,"DragonCaller")
function cm.initial_effect(c)
local e1,e2,e3=rsdc.SynchroFun(c,m,ATTRIBUTE_EARTH,"pos",nil,rsop.target(cm.posfilter,"pos",0,LOCATION_MZONE),cm.posop,cm.limit)
end
function cm.posfilter(c)
return c:IsCanTurnSet() and (c:IsLevelAbove(5) or (c:IsSummonType(SUMMON_TYPE_SPECIAL) and c:GetSummonLocation() & LOCATION_EXTRA ~= 0))
end
function cm.limit(c,rc,re)
return re:IsActiveType(TYPE_MONSTER)
end
function cm.posop(e,tp)
rsop.SelectSolve(HINTMSG_SET,tp,cm.posfilter,tp,0,LOCATION_MZONE,1,1,nil,cm.fun)
end
function cm.fun(g)
local tc=g:GetFirst()
Duel.ChangePosition(tc,POS_FACEDOWN_DEFENSE)
end
\ No newline at end of file
--耀变竜 梅丽娅
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005113,"DragonCaller")
function cm.initial_effect(c)
c:EnableReviveLimit()
c:SetSPSummonOnce(m)
aux.AddSynchroProcedure(c,rsdc.IsSet,cm.synfilter,1)
local e1=rsef.QO(c,EVENT_CHAINING,{m,0},nil,"neg,des,sp","dsp,dcal",LOCATION_EXTRA,cm.negcon,rscost.cost(cm.rmfilter,"rm",LOCATION_MZONE),cm.negtg,cm.negop)
local e2=rsef.STO(c,EVENT_SPSUMMON_SUCCESS,{m,1},nil,"td","de",nil,nil,rsop.target(Card.IsAbleToDeck,"td",0,LOCATION_ONFIELD,cm.tdct),cm.tdop)
local e3=rsef.QO(c,EVENT_SUMMON,{m,2},nil,"diss,des,sp",nil,LOCATION_GRAVE,cm.discon,rscost.cost(cm.resfilter,"res",LOCATION_MZONE),cm.distg,cm.disop)
local e4=rsef.RegisterClone(c,e3,"code",EVENT_SPSUMMON)
end
cm.material_type=TYPE_SYNCHRO
function cm.resfilter(c,e,tp)
return cm.tdcfilter(c) and c:IsReleasable() and Duel.GetMZoneCount(tp,c,tp)>0
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentChain()==0 and rp~=tp
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsStatus(STATUS_CHAINING) end
Duel.SetOperationInfo(0,CATEGORY_DISABLE_SUMMON,eg,eg:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,eg:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function cm.disop(e,tp,eg)
local c=rscf.GetSelf(e)
if c and rssf.SpecialSummon(c)>0 then
Duel.NegateSummon(eg)
Duel.Destroy(eg,REASON_EFFECT)
end
end
function cm.tdct(e,tp)
return Duel.GetMatchingGroupCount(cm.tdcfilter,tp,LOCATION_GRAVE,0,nil)
end
function cm.tdcfilter(c)
return c:IsType(TYPE_SYNCHRO) and rsdc.IsSet(c)
end
function cm.tdop(e,tp)
local tdct=cm.tdct(e,tp)
rsop.SelectToDeck(tp,Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,tdct,tdct,nil,{})
end
function cm.synfilter(c)
return c:IsSynchroType(TYPE_SYNCHRO) and c:IsRace(RACE_SPELLCASTER)
end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
return (re:IsHasType(EFFECT_TYPE_ACTIVATE) or re:IsActiveType(TYPE_MONSTER)) and Duel.IsChainNegatable(ev)
end
function cm.rmfilter(c,e,tp)
return cm.tdcfilter(c) and c:IsFaceup() and c:IsAbleToRemoveAsCost() and Duel.GetLocationCountFromEx(tp,tp,c,e:GetHandler())>0
end
function cm.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false) and aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL) and not e:GetHandler():IsStatus(STATUS_CHAINING) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function cm.negop(e,tp,eg,ep,ev,re,r,rp)
local c=rscf.GetSelf(e)
if not aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL) then return end
if c and Duel.SpecialSummon(c,SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP)>0 then
c:CompleteProcedure()
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
end
end
\ No newline at end of file
--堕龙唤士-希梅亚
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005114,"DragonCaller")
function cm.initial_effect(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,cm.lfilter,2)
c:SetSPSummonOnce(m)
local e1=rsef.STO(c,EVENT_SPSUMMON_SUCCESS,{m,0},nil,"sp,se,th","de",rscon.sumtype("link"),nil,rsop.target2(cm.fun,cm.tfilter,"th",rsloc.dg),cm.thop)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_MATERIAL_CHECK)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetValue(cm.valcheck)
e4:SetLabel(0)
c:RegisterEffect(e4)
local e2=rsef.FV_LIMIT_PLAYER(c,"sp",nil,cm.splimit,{0,1})
e2:SetLabelObject(e4)
local e3=rsef.QO(c,nil,{m,1},nil,"sp",nil,LOCATION_EXTRA,nil,rscost.cost(Card.IsAbleToRemoveAsCost,"rm"),cm.syntg,cm.synop)
local e5=rsef.RegisterClone(c,e3,"desc",{m,2},"tg",cm.xyztg,"op",cm.xyzop)
local e6=rsef.RegisterClone(c,e3,"desc",{m,3},"tg",cm.linktg,"op",cm.linkop)
end
function cm.matfilter(c)
return c:IsFaceup() and rsdc.IsSet(c)
end
function cm.syntg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_MZONE,0,nil)
if chk==0 then return #g>0 and Duel.IsExistingMatchingCard(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,1,e:GetHandler(),nil,g) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.synop(e,tp,eg,ep,ev,re,r,rp)
local matg=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_MZONE,0,nil)
local g=Duel.GetMatchingGroup(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,aux.ExceptThisCard(e),nil,matg)
if #g>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
Duel.SynchroSummon(tp,sg:GetFirst(),nil)
end
end
function cm.xyztg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_MZONE,0,nil)
if chk==0 then return #g>0 and Duel.IsExistingMatchingCard(Card.IsXyzSummonable,tp,LOCATION_EXTRA,0,1,e:GetHandler(),g) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.xyzop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_MZONE,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local xyz=Duel.SelectMatchingCard(tp,Card.IsXyzSummonable,tp,LOCATION_EXTRA,0,1,1,aux.ExceptThisCard(e),g,1,#g):GetFirst()
if xyz then
Duel.XyzSummon(tp,xyz,g1,#g)
end
end
function cm.linktg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_MZONE,0,nil)
if chk==0 then return #g>0 and Duel.IsExistingMatchingCard(Card.IsLinkSummonable,tp,LOCATION_EXTRA,0,1,e:GetHandler(),g) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.linkop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_MZONE,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local linkc=Duel.SelectMatchingCard(tp,Card.IsLinkSummonable,tp,LOCATION_EXTRA,0,1,1,aux.ExceptThisCard(e),g):GetFirst()
if linkc then
Duel.LinkSummon(tp,linkc,g)
end
end
function cm.splimit(e,c)
return c:IsLocation(e:GetLabelObject():GetLabel())
end
function cm.valcheck(e,c)
local mat=c:GetMaterial()
local loc=0
for tc in aux.Next(mat) do
if tc:IsSummonType(SUMMON_TYPE_SPECIAL) or tc:IsSummonType(SUMMON_TYPE_NORMAL) then
loc=loc|tc:GetSummonLocation()
end
end
e:SetLabel(loc)
end
function cm.lfilter(c)
return c:IsSummonType(SUMMON_TYPE_SPECIAL) and rsdc.IsLinkSet(c)
end
function cm.fun(g,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,rsloc.dg)
end
function cm.tfilter(c,e,tp)
local zone=e:GetHandler():GetLinkedZone(tp)
if not rsdc.IsSetM(c) then return false end
return (zone>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone)) or c:IsAbleToHand()
end
function cm.thop(e,tp)
local c=rscf.GetFaceUpSelf(e)
if not c then return end
rsop.SelectSolve(HINTMSG_SELF,tp,aux.NecroValleyFilter(cm.tfilter),tp,rsloc.dg,0,1,1,nil,cm.solve,e,tp)
end
function cm.solve(g,e,tp)
local tc=g:GetFirst()
local zone=e:GetHandler():GetLinkedZone(tp)
local b1=tc:IsAbleToHand()
local b2=zone>0 and tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone)
local op=rsop.SelectOption(tp,b1,1190,b2,1152)
if op==1 then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
else
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP,zone)
end
return true
end
\ No newline at end of file
--唤士的序章
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005115,"DragonCaller")
function cm.initial_effect(c)
local e1=rsdc.HandActFun(c)
local e2=rsef.ACT(c,nil,nil,{1,m,1},"se,th",nil,nil,nil,rsop.target(cm.thfilter,"th",rsloc.dg),cm.act)
end
function cm.thfilter(c)
return c:IsAbleToHand() and rsdc.IsSet(c)
end
function cm.act(e,tp)
rsop.SelectToHand(tp,aux.NecroValleyFilter(cm.thfilter),tp,rsloc.dg,0,1,1,nil,{})
end
--唤士的相遇
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005116,"DragonCaller")
function cm.initial_effect(c)
local e1=rsdc.HandActFun(c)
local e2=rsef.ACT(c,nil,nil,{1,m,1},"se,th,sp",nil,nil,rscost.cost(1,"dish"),rsop.target({rscf.spfilter2(Card.IsCode,130005101),"sp",rsloc.hd},{cm.thfilter,"th",rsloc.dg}),cm.act)
end
function cm.thfilter(c)
return c:IsAbleToHand() and rsdc.IsSetM(c)
end
function cm.act(e,tp)
if rsop.SelectSpecialSummon(tp,rscf.spfilter2(Card.IsCode,130005101),tp,rsloc.hd,0,1,1,nil,{},e,tp)>0 then
rsop.SelectOC(nil,true)
rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
end
--唤士的救赎
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005117,"DragonCaller")
function cm.initial_effect(c)
local e1=rsdc.HandActFun(c)
local e2=rsef.ACT(c,nil,nil,{1,m,1},"se,th,sp",nil,nil,rscost.cost(cm.dishfilter,"dish",LOCATION_HAND),cm.tg,cm.act)
end
function cm.dishfilter(c)
return c:IsDiscardable() and rsdc.IsSet(c)
end
function cm.spfilter(c,e,tp)
return rscf.RemovePosCheck(c) and rscf.spfilter2(rsdc.IsSet)(c,e,tp) and Duel.IsExistingMatchingCard(cm.thfilter,tp,rsloc.dg,0,1,c)
end
function cm.thfilter(c)
return c:IsAbleToHand() and c:IsCode(130005101)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsPlayerCanDraw(tp,2)
local b2=Duel.IsExistingMatchingCard(cm.spfilter,tp,rsloc.gr,0,1,nil,e,tp)
if chk==0 then return b1 or b2 end
local op=rsop.SelectOption(tp,b1,{m,0},b2,{m,1})
e:SetLabel(op)
if op==1 then
e:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
else
e:SetProperty(0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,rsloc.gr)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,rsloc.dg)
end
end
function cm.act(e,tp)
local op=e:GetLabel()
if op==1 then
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
else
if rsop.SelectSpecialSummon(tp,aux.NecroValleyFilter(cm.spfilter),tp,rsloc.gr,0,1,1,nil,{},e,tp)>0 then
rsop.SelectOC(nil,true)
rsop.SelectToHand(tp,cm.thfilter,tp,rsloc.dg,0,1,1,nil,{})
end
end
end
--羽化的唤士
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005118,"DragonCaller")
function cm.initial_effect(c)
local e1=rsdc.HandActFun(c)
local e2=rsef.ACT(c,nil,nil,{1,m},"sp",nil,nil,rscost.reglabel(100),cm.tg,cm.act)
local e3=rsef.QO(c,nil,{m,0},{1,m+100},"se,th",nil,LOCATION_GRAVE,aux.exccon,aux.bfgcost,rsop.target(cm.thfilter,"th",rsloc.dg+LOCATION_REMOVED),cm.thop)
end
function cm.thfilter(c)
return c:IsAbleToHand() and c:IsCode(130005101) and rscf.RemovePosCheck(c)
end
function cm.thop(e,tp)
rsop.SelectToHand(tp,aux.NecroValleyFilter(cm.thfilter),tp,rsloc.dg+LOCATION_REMOVED,0,1,1,nil,{})
end
function cm.resfilter(c,e,tp)
return rsdc.IsSetM(c) and c:IsReleasable() and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,nil,c:GetAttribute(),e,tp)
end
function cm.spfilter(c,att,e,tp)
return rsdc.IsSet(c) and c:IsType(TYPE_SYNCHRO) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false) and aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL) and c:IsAttribute(att)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetLabel()==100 and Duel.IsExistingMatchingCard(cm.resfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
e:SetLabel(0)
local ct,og,tc=rsop.SelectRelease(tp,cm.resfilter,tp,LOCATION_HAND,0,1,1,nil,{},e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
e:SetValue(tc:GetAttribute())
end
function cm.act(e,tp)
local att=e:GetValue()
if not aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL) then return end
rsop.SelectSpecialSummon(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,{SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP,nil,{"cp"}},att,e,tp)
end
\ No newline at end of file
--堕龙的唤士
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005119,"DragonCaller")
function cm.initial_effect(c)
local e1=rsdc.HandActFun(c)
local e2=rsef.ACT(c,nil,nil,nil,"pos,se,th",nil,nil,rscost.cost(cm.rmfilter,"rm",rsloc.hg),rsop.target2(cm.fun,cm.posfilter,"pos",LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,c),cm.act)
end
function cm.rmfilter(c)
return c:IsAbleToRemoveAsCost() and rsdc.IsSetM(c)
end
function cm.fun(g,e,tp)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,0,tp,LOCATION_DECK)
end
function cm.posfilter(c)
local chain=Duel.GetCurrentChain()
if chain>1 then
for i=1,chain do
local re=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler()==c then return false end
end
end
return not c:IsComplexType(TYPE_PENDULUM+TYPE_SPELL) and c:IsCanTurnSet()
end
function cm.act(e,tp)
if rsop.SelectSolve(HINTMSG_SET,tp,cm.posfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,aux.ExceptThisCard(e),cm.posfun,e,tp)>0 then
rsop.SelectOC({m,0},true)
rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
end
end
function cm.thfilter(c)
return c:IsCode(130005105) and c:IsAbleToHand()
end
function cm.posfun(g,e,tp)
local ct=Duel.ChangePosition(g,POS_FACEDOWN)
if g:GetFirst():IsType(TYPE_SPELL+TYPE_TRAP) then
Duel.RaiseEvent(g,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
end
return ct
end
\ No newline at end of file
--唤士的决断
if not pcall(function() require("expansions/script/c130005101") end) then require("script/c130005101") end
local m,cm=rscf.DefineCard(130005120,"DragonCaller")
function cm.initial_effect(c)
local e1=rsdc.HandActFun(c)
local e2=rsef.ACT(c,nil,nil,{1,m,1},"tg,se,th",nil,nil,nil,rsop.target2(cm.fun,cm.tgfilter,"tg",LOCATION_DECK),cm.act)
end
function cm.fun(g,e,tp)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.tgfilter(c,e,tp)
return c:IsAbleToGrave() and rsdc.IsSetM(c) and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,c,c:GetLevel())
end
function cm.thfilter(c,lv)
return c:IsAbleToHand() and rsdc.IsSetM(c) and not c:IsLevel(lv)
end
function cm.act(e,tp)
local ct,og,tc=rsop.SelectToGrave(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil,{},e,tp)
if tc and tc:IsLocation(LOCATION_GRAVE) then
rsop.SelectOC(nil,true)
rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,{},tc:GetLevel())
end
end
\ No newline at end of file
...@@ -176,7 +176,7 @@ function c28335633.tdcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -176,7 +176,7 @@ function c28335633.tdcost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoDeck(e:GetHandler(),nil,SEQ_DECKSHUFFLE,REASON_COST) Duel.SendtoDeck(e:GetHandler(),nil,SEQ_DECKSHUFFLE,REASON_COST)
end end
function c28335633.tdfilter(c) function c28335633.tdfilter(c)
return c:IsSetCard(0x286) and c:IsAbleToDeck() and c:IsAbleToHand() and c:IsFaceupEx() return c:IsSetCard(0x286) and c:IsAbleToDeck() and c:IsFaceupEx()
end end
function c28335633.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c28335633.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -192,6 +192,7 @@ function c28335633.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -192,6 +192,7 @@ function c28335633.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end end
function c28335633.tdop(e,tp,eg,ep,ev,re,r,rp) function c28335633.tdop(e,tp,eg,ep,ev,re,r,rp)
if Duel.Draw(tp,1,REASON_EFFECT)==0 then return end if Duel.Draw(tp,1,REASON_EFFECT)==0 then return end
Duel.ShuffleHand(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local tg=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil) local tg=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil)
local g=Duel.GetTargetsRelateToChain() local g=Duel.GetTargetsRelateToChain()
......
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