Commit 65a697f3 authored by Nemo Ma's avatar Nemo Ma

emergency banlist + remove 龙战士 钟楼

parent 61d53372
#[No81DIY 19.10 STANDARD][No81DIY 19.10 WILD]
!THE STANDARD LIST
#forbidden
14010201 0
14010224 0
14010229 0
14010231 0
30000230 0
30000235 0
9950020 0
9950050 0
9950051 0
......@@ -388,6 +394,8 @@
9950523 0
9951015 0
9950979 0
14000701 0
14000702 0
#limit
9951183 1
9951245 0
......@@ -867,6 +875,9 @@
!THE WILD LIST
#forbidden
14000701 0
14000702 0
14010201 0
9950020 0
9950050 0
9950051 0
......
No preview for this file type
--星煌之龙战士
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rscf.DefineCard(130002001)
function cm.initial_effect(c)
--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)
local e2=rsef.RegisterClone(c,e1,"code",EFFECT_SET_PROC)
local e3=rsef.I(c,{m,1},nil,"th,se,sum",nil,LOCATION_MZONE,cm.sumcon2,nil,rsop.target(cm.thfilter,"th",LOCATION_DECK),cm.sumop2)
--summon
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,1))
e4:SetCategory(CATEGORY_SUMMON)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetRange(LOCATION_HAND)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetCountLimit(1,m)
e4:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e4:SetTarget(cm.sumtg)
e4:SetOperation(cm.sumop)
c:RegisterEffect(e4)
end
function cm.tgfilter(c)
return c:IsAbleToGraveAsCost() and c:IsAttack(2400,2800) and c:IsDefense(1000)
end
function cm.otcon(e,c,minc)
if c==nil then return true end
local tp=c:GetControler()
local mg=Duel.GetMatchingGroup(cm.tgfilter,tp,LOCATION_DECK,0,nil)
return c:IsLevelAbove(5) and minc<=1 and #mg>0 and cm.switch
end
function cm.otop(e,tp,eg,ep,ev,re,r,rp,c)
cm.switch=false
c:SetMaterial(Group.CreateGroup())
local ct,og,tc=rsop.SelectToGrave(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil,{REASON_SUMMON+REASON_COST })
if not tc then return end
local code=tc:GetCode()
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CHANGE_CODE)
e2:SetValue(code)
e2:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD)
c:RegisterEffect(e2)
c:CopyEffect(code,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD,1)
if not tc:IsLocation(LOCATION_GRAVE) then return end
local fid=tc:GetFieldID()
tc:RegisterFlagEffect(m,rsreset.est,0,1,fid)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE)
e7:SetRange(LOCATION_MZONE)
e7:SetCode(EFFECT_SELF_DESTROY)
e7:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD)
e7:SetCondition(cm.descon)
c:RegisterEffect(e7)
e7:SetLabel(fid)
end
function cm.descon(e)
return not Duel.IsExistingMatchingCard(cm.descfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil,e:GetLabel())
end
function cm.descfilter(c,fid)
return c:GetFlagEffectLabel(m)==fid
end
function cm.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
cm.switch=true
local res=c:IsSummonable(true,nil,1) or c:IsMSetable(true,nil,1) cm.switch=false
return res
end
Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,0,0)
end
function cm.sumop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
cm.switch=true
local pos=0
if c:IsSummonable(true,nil,1) then pos=pos+POS_FACEUP_ATTACK end
if c:IsMSetable(true,nil,1) then pos=pos+POS_FACEDOWN_DEFENSE end
if pos==0 then return end
Duel.BreakEffect()
if Duel.SelectPosition(tp,c,pos)==POS_FACEUP_ATTACK then
Duel.Summon(tp,c,true,nil,1)
else
Duel.MSet(tp,c,true,nil,1)
end
end
function cm.sumcon2(e,tp)
return not Duel.IsExistingMatchingCard(cm.sumcfilter,tp,0,LOCATION_MZONE,1,nil)
end
function cm.sumcfilter(c)
return c:IsFaceup() and c:IsSummonableCard()
end
function cm.thfilter(c)
return c:IsSummonableCard() and c:IsLevelAbove(5) and c:IsAbleToHand()
end
function cm.sumop2(e,tp)
local ct,og,tc=rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
if not tc then return end
local pos=0
if tc:IsSummonable(true,nil,1) then pos=pos+POS_FACEUP_ATTACK end
if tc:IsMSetable(true,nil,1) then pos=pos+POS_FACEDOWN_DEFENSE end
if pos==0 or not rsop.SelectYesNo(tp,{m,3}) then return end
if Duel.SelectPosition(tp,tc,pos)==POS_FACEUP_ATTACK then
Duel.Summon(tp,tc,true,nil,1)
else
Duel.MSet(tp,tc,true,nil,1)
end
end
\ No newline at end of file
--大天之龙战士
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rscf.DefineCard(130002002)
function cm.initial_effect(c)
local e1=rsef.QO(c,nil,{m,0},{1,m},"se,th,sum",nil,LOCATION_HAND,nil,nil,rsop.target(cm.thfilter,"th",LOCATION_DECK),cm.thop)
local e2=rsef.QO(c,nil,{m,1},{1,m+100},nil,"tg",LOCATION_GRAVE,nil,rscost.cost(Card.IsAbleToHandAsCost,"th"),rstg.target(cm.tgfilter,nil,LOCATION_MZONE),cm.tgop)
end
function cm.tgfilter(c)
return c:IsSummonType(SUMMON_TYPE_ADVANCE)
end
function cm.tgop(e,tp)
local c,tc=e:GetHandler(),rscf.GetTargetCard()
if not tc then return end
tc:RegisterFlagEffect(m,rsreset.est,0,1)
local e1=rsef.FV_LIMIT_PLAYER({c,tp},"sp",nil,cm.lstg,{0,1},cm.lcon)
local e2=rsef.FV_LIMIT_PLAYER({c,tp},"act",cm.lval,nil,{0,1},cm.lcon)
end
function cm.lstg(e,c)
return c:IsLocation(LOCATION_HAND+LOCATION_GRAVE)
end
function cm.lval(e,re)
return re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsLocation(LOCATION_HAND+LOCATION_GRAVE)
end
function cm.lcfilter(c)
return c:GetFlagEffect(m)>0
end
function cm.lcon(e)
if Duel.IsExistingMatchingCard(cm.lcfilter,0,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) then
return true
else
e:Reset()
return false
end
end
function cm.thfilter(c)
return c:IsSummonableCard() and c:IsLevelAbove(5) and c:IsAbleToHand()
end
function cm.thop(e,tp)
local c=e:GetHandler()
local ct,og,tc=rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
if not tc then return end
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SUMMON_PROC)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(cm.otcon)
e1:SetOperation(cm.otop)
e1:SetValue(SUMMON_TYPE_ADVANCE)
tc:RegisterEffect(e1,true)
local e2=rsef.RegisterClone({c,tc},e1,"code",EFFECT_SET_PROC)
local pos=0
if tc:IsSummonable(true,nil,1) then pos=pos+POS_FACEUP_ATTACK end
if tc:IsMSetable(true,nil,1) then pos=pos+POS_FACEDOWN_DEFENSE end
if pos==0 or not rsop.SelectYesNo(tp,{m,3}) then return end
Duel.BreakEffect()
if Duel.SelectPosition(tp,tc,pos)==POS_FACEUP_ATTACK then
Duel.Summon(tp,tc,true,nil,1)
else
Duel.MSet(tp,tc,true,nil,1)
end
end
function cm.otcon(e,c,minc)
if c==nil then return true end
local tp=c:GetControler()
return c:IsLevelAbove(5) and minc<=1 and Duel.IsPlayerCanDiscardDeckAsCost(1-tp,c:GetLevel())
end
function cm.otop(e,tp,eg,ep,ev,re,r,rp,c)
c:SetMaterial(Group.CreateGroup())
Duel.DiscardDeck(1-tp,c:GetLevel(),REASON_COST+REASON_SUMMON)
e:Reset()
end
--青玉之龙战士
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rscf.DefineCard(130002003)
function cm.initial_effect(c)
local e1=rscf.SetSummonCondition(c,true,aux.FALSE)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SUMMON_PROC)
e2:SetValue(SUMMON_TYPE_ADVANCE)
e2:SetCondition(cm.ntcon)
e2:SetOperation(cm.ntop)
c:RegisterEffect(e2)
local e3=rsef.FC(c,EVENT_CHAINING)
rsef.RegisterSolve(e3,cm.tdcon,nil,nil,cm.tdop)
end
function cm.tdcon(e,tp,eg,ep,ev,re,r,rp)
return rp~=tp and Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)==Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD) and re:GetHandler():IsRelateToEffect(re) and Duel.IsPlayerCanSendtoDeck(1-tp,re:GetHandler())
end
function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
rshint.Card(m)
Duel.SendtoDeck(re:GetHandler(),nil,2,REASON_RULE)
end
function cm.ntcon(e,c,minc)
if c==nil then return true end
local tp=e:GetHandlerPlayer()
local g1=Duel.GetMatchingGroup(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND+LOCATION_ONFIELD,0,c)
local g2=Duel.GetMatchingGroup(Card.IsAbleToGraveAsCost,1-tp,LOCATION_HAND+LOCATION_ONFIELD,0,c)
return c:IsLevelAbove(5) and #g1>0 and #g2>0
end
function cm.ntop(e,tp,eg,ep,ev,re,r,rp,c)
c:SetMaterial(Group.CreateGroup())
local sg=Duel.GetMatchingGroup(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND+LOCATION_ONFIELD,LOCATION_HAND+LOCATION_ONFIELD,c)
rshint.Select(tp,"tg")
local tg=sg:SelectSubGroup(tp,cm.gcheck,false,2,#sg)
Duel.SendtoGrave(tg,REASON_COST+REASON_SUMMON)
local og=Duel.GetOperatedGroup():Filter(Card.IsLocation,nil,LOCATION_GRAVE)
if #og<=0 then return end
local fid=c:GetFieldID()
for tc in aux.Next(og) do
tc:RegisterFlagEffect(m,rsreset.est,0,1,fid)
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_MAX_MZONE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,1)
e1:SetCondition(cm.limitcon)
e1:SetValue(cm.mvalue)
e1:SetLabel(fid)
Duel.RegisterEffect(e1,tp)
local e2=rsef.RegisterClone({c,tp},e1,"code",EFFECT_MAX_SZONE,"value",cm.svalue)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_CANNOT_ACTIVATE)
e5:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e5:SetTargetRange(1,1)
e5:SetValue(cm.aclimit)
e5:SetCondition(cm.limitcon2)
e5:SetLabel(fid)
Duel.RegisterEffect(e5,tp)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_CANNOT_SSET)
e6:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e6:SetTargetRange(1,1)
e6:SetTarget(cm.setlimit)
e6:SetLabel(fid)
e6:SetCondition(cm.limitcon2)
Duel.RegisterEffect(e6,tp)
end
function cm.limitcon2(e)
local ct=Duel.GetMatchingGroupCount(cm.limitcfilter,0,LOCATION_GRAVE+LOCATION_ONFIELD,LOCATION_GRAVE+LOCATION_ONFIELD,nil,e:GetLabel())
if ct>0 then
return true
else
e:Reset()
return false
end
end
function cm.aclimit(e,re,tp)
local ct=Duel.GetMatchingGroupCount(cm.limitcfilter,0,LOCATION_GRAVE+LOCATION_ONFIELD,LOCATION_GRAVE+LOCATION_ONFIELD,nil,e:GetLabel())
if not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return false end
if re:IsActiveType(TYPE_FIELD) then
return not Duel.GetFieldCard(tp,LOCATION_FZONE,0) and not Duel.GetFieldCard(1-tp,LOCATION_FZONE,0) and Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,LOCATION_ONFIELD)>(ct-1)
elseif re:IsActiveType(TYPE_PENDULUM) then
return Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,LOCATION_ONFIELD)>(ct-1)
end
return false
end
function cm.setlimit(e,c,tp)
local ct=Duel.GetMatchingGroupCount(cm.limitcfilter,0,LOCATION_GRAVE+LOCATION_ONFIELD,LOCATION_GRAVE+LOCATION_ONFIELD,nil,e:GetLabel())
return c:IsType(TYPE_FIELD) and not Duel.GetFieldCard(tp,LOCATION_FZONE,0) and not Duel.GetFieldCard(1-tp,LOCATION_FZONE,0) and Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)>(ct-1)
end
function cm.limitcon(e)
local ct=Duel.GetMatchingGroupCount(cm.limitcfilter,0,LOCATION_GRAVE+LOCATION_ONFIELD,LOCATION_GRAVE+LOCATION_ONFIELD,nil,e:GetLabel())
if ct>0 then
return Duel.GetFieldGroupCount(0,LOCATION_ONFIELD,LOCATION_ONFIELD)<=ct
else
e:Reset()
return false
end
end
function cm.limitcfilter(c,fid)
return c:GetFlagEffectLabel(m)==fid
end
function cm.mvalue(e,fp,rp,r)
local bct=Duel.GetMatchingGroupCount(cm.limitcfilter,0,LOCATION_GRAVE,LOCATION_GRAVE,nil,e:GetLabel())
local oct=Duel.GetFieldGroupCount(fp,LOCATION_ONFIELD,LOCATION_ONFIELD)
if oct>=bct then return 0
else
return bct-oct
end
end
function cm.svalue(e,fp,rp,r)
local bct=Duel.GetMatchingGroupCount(cm.limitcfilter,0,LOCATION_GRAVE,LOCATION_GRAVE,nil,e:GetLabel())
for i=5,7 do
if Duel.GetFieldCard(fp,LOCATION_SZONE,i) then bct=bct-1 end
if Duel.GetFieldCard(1-fp,LOCATION_SZONE,i) then bct=bct-1 end
end
local oct=Duel.GetFieldGroupCount(fp,LOCATION_ONFIELD,LOCATION_ONFIELD)
if oct>=bct then return 0
else
return bct-oct
end
end
function cm.gcheck(g)
return g:FilterCount(Card.IsControler,nil,0)==g:FilterCount(Card.IsControler,nil,1)
end
\ No newline at end of file
--伴月之龙战士
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rscf.DefineCard(130002004)
function cm.initial_effect(c)
local e1=rscf.SetSummonCondition(c,true,aux.FALSE)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SUMMON_PROC)
e2:SetCondition(cm.ttcon)
e2:SetOperation(cm.ttop)
e2:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_SUMMON_PROC)
e3:SetCondition(cm.ttcon2)
e3:SetOperation(cm.ttop2)
e3:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e3)
--local e11=rsef.RegisterClone(c,e2,"code",EFFECT_SET_PROC)
local e12=rsef.RegisterClone(c,e3,"code",EFFECT_SET_PROC)
local e4=rsef.FTO(c,EVENT_SUMMON)
e4:SetRange(LOCATION_HAND)
rsef.RegisterSolve(e4,cm.negcon,nil,nil,cm.negop)
local e5=rsef.FC(c,EVENT_ADJUST)
e5:SetRange(LOCATION_MZONE)
e5:SetOperation(cm.thop)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsSummonType(SUMMON_TYPE_ADVANCE) then return end
local phase=Duel.GetCurrentPhase()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL then return end
local g=Duel.GetMatchingGroup(Card.IsAbleToHand,tp,0,LOCATION_ONFIELD,nil)
if #g<=0 then return end
local ct=Duel.SendtoHand(g,nil,REASON_EFFECT)
local bct=c:GetFlagEffectLabel(m)
if not bct then return end
e:SetLabel(ct)
if e:GetLabel()==bct then
local hg=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_HAND,nil)
if #hg>0 then
Duel.SendtoDeck(hg,nil,2,REASON_EFFECT)
end
end
Duel.Readjust()
end
function cm.ttcon(e,c,minc)
if c==nil then return true end
return c:IsLevelAbove(5) and Duel.IsExistingMatchingCard(Card.IsAbleToGraveAsCost,c:GetControler(),0,LOCATION_MZONE,1,nil)
end
function cm.ttop(e,tp,eg,ep,ev,re,r,rp,c)
rshint.Select(tp,"tg")
local tg=Duel.SelectMatchingCard(tp,Card.IsAbleToGraveAsCost,tp,0,LOCATION_MZONE,1,99,nil)
c:SetMaterial(tg)
Duel.SendtoGrave(tg,REASON_SUMMON+REASON_COST+REASON_MATERIAL)
local ct=Duel.GetOperatedGroup():FilterCount(Card.IsLocation,nil,LOCATION_GRAVE)
c:RegisterFlagEffect(m,rsreset.est-RESET_TOFIELD,0,1,ct)
end
function cm.ttcon2(e,c,minc)
if c==nil then return true end
return c:IsLevelAbove(5) and cm.switch --and cm.switch:FilterCount(Card.IsHasEffect,nil,EFFECT_CANNOT_DISABLE_SUMMON)~=#cm.switch
end
function cm.ttop2(e,tp,eg,ep,ev,re,r,rp,c)
c:SetMaterial(Group.CreateGroup())
Duel.NegateSummon(cm.switch)
Duel.SendtoGrave(cm.switch,REASON_COST+REASON_SUMMON)
cm.switch=false
local ct=Duel.GetOperatedGroup():FilterCount(Card.IsLocation,nil,LOCATION_GRAVE)
c:RegisterFlagEffect(m,rsreset.est-RESET_TOFIELD,0,1,ct)
end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
cm.switch=eg
local res=tp~=ep and Duel.GetCurrentChain()==0 and (e:GetHandler():IsSummonable(true,nil,1) or e:GetHandler():IsMSetable(true,nil,1))
cm.switch=false
return res
end
function cm.negop(e,tp,eg)
eg:KeepAlive()
cm.switch=eg
local c=e:GetHandler()
local s1=c:IsSummonable(true,nil,1)
local s2=c:IsMSetable(true,nil,1)
if (s1 and s2 and Duel.SelectPosition(tp,c,POS_FACEUP_ATTACK+POS_FACEDOWN_DEFENSE)==POS_FACEUP_ATTACK) or not s2 then
Duel.Summon(tp,c,true,nil,1)
else
Duel.MSet(tp,c,true,nil,1)
end
end
--龙战士的托宣
if not pcall(function() require("expansions/script/c10199990") end) then require("script/c10199990") end
local m,cm=rscf.DefineCard(130002005)
function cm.initial_effect(c)
rsef.CreatEvent_Set()
--act in hand
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e0:SetCondition(cm.handcon)
c:RegisterEffect(e0)
local e1=rsef.ACT(c,nil,nil,nil,"se,th,sum",nil,nil,nil,nil,cm.act)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,2))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_SUMMON_PROC)
e3:SetTargetRange(LOCATION_HAND,0)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.ttcon2)
e3:SetTarget(aux.TargetBoolFunction(Card.IsLevelAbove,5))
e3:SetOperation(cm.ttop2)
e3:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e3)
local e5=rsef.RegisterClone(c,e3,"code",EFFECT_SET_PROC)
local e4=rsef.FTO(c,rscode.Set,{m,2},nil,"sum")
e4:SetRange(LOCATION_SZONE)
rsef.RegisterSolve(e4,cm.sumcon,nil,nil,cm.sumop)
end
function cm.sumfilter(c)
return c:IsSummonable(true,nil,1) or c:IsMSetable(true,nil,1)
end
function cm.sumcon(e,tp,eg,ep,ev,re,r,rp)
cm.switch=eg
local res=tp~=ep and eg:IsExists(Card.IsAbleToDeckOrExtraAsCost,1,nil) and Duel.IsExistingMatchingCard(cm.sumfilter,tp,LOCATION_HAND,0,1,nil)
cm.switch=false
return res
end
function cm.sumop(e,tp,eg)
if not e:GetHandler():IsRelateToEffect(e) then return end
eg:KeepAlive()
cm.switch=eg
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SUMMON)
local g=Duel.SelectMatchingCard(tp,cm.sumfilter,tp,LOCATION_HAND,0,1,1,nil)
local tc=g:GetFirst()
if tc then
local s1=tc:IsSummonable(true,nil,1)
local s2=tc:IsMSetable(true,nil,1)
if (s1 and s2 and Duel.SelectPosition(tp,tc,POS_FACEUP_ATTACK+POS_FACEDOWN_DEFENSE)==POS_FACEUP_ATTACK) or not s2 then
Duel.Summon(tp,tc,true,nil)
else
Duel.MSet(tp,tc,true,nil)
end
end
end
function cm.ttcon2(e,c,minc)
if c==nil then return true end
return c:IsLevelAbove(5) and cm.switch
end
function cm.ttop2(e,tp,eg,ep,ev,re,r,rp,c)
c:SetMaterial(Group.CreateGroup())
Duel.SendtoDeck(cm.switch,nil,2,REASON_COST+REASON_SUMMON)
cm.switch=false
end
function cm.cfilter(c)
return c:IsSummonType(SUMMON_TYPE_ADVANCE)
end
function cm.handcon(e)
return not Duel.IsExistingMatchingCard(cm.cfilter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil)
end
function cm.act(e,tp)
local c=aux.ExceptThisCard(e)
if not c then return end
rsop.SelectOC({m,0})
local ct,og,tc=rsop.SelectToHand(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,{})
if ct<=0 then return end
local pos=0
if tc:IsSummonable(true,nil,1) then pos=pos+POS_FACEUP_ATTACK end
if tc:IsMSetable(true,nil,1) then pos=pos+POS_FACEDOWN_DEFENSE end
if pos==0 or not rsop.SelectYesNo(tp,{m,1}) then return end
Duel.BreakEffect()
if Duel.SelectPosition(tp,tc,pos)==POS_FACEUP_ATTACK then
local e1,e2=rsef.FV_LIMIT_PLAYER({c,tc,true},"sum,sp",nil,cm.limittg,{0,1},nil,rsreset.est-RESET_TOFIELD)
e1:SetRange(LOCATION_MZONE)
e2:SetRange(LOCATION_MZONE)
Duel.Summon(tp,tc,true,nil,1)
else
Duel.MSet(tp,tc,true,nil,1)
end
end
function cm.limittg(e,c)
return c:IsLevelBelow(e:GetHandler():GetLevel())
end
function cm.thfilter(c)
return c:IsAbleToHand() and c:IsSummonableCard() and c:IsLevelAbove(5)
end
local m=90700013
local cm=_G["c"..m]
cm.name="钟楼使徒 乌洛恩"
function cm.initial_effect(c)
aux.AddCodeList(c,90700019)
aux.EnablePendulumAttribute(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_ADJUST)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_DELAY)
e0:SetRange(LOCATION_HAND)
e0:SetCondition(cm.wincon)
e0:SetOperation(cm.winop)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_ONFIELD+LOCATION_DECK)
e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EFFECT_CANNOT_ACTIVATE)
e2:SetRange(LOCATION_HAND)
e2:SetTargetRange(1,0)
e2:SetCondition(cm.actcon)
e2:SetValue(cm.actlimit)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_PZONE)
e3:SetCode(EFFECT_CHANGE_RSCALE)
e3:SetValue(7)
c:RegisterEffect(e3)
end
function cm.winfilter(c)
return aux.IsCodeListed(c,90700019) and c:IsType(TYPE_MONSTER)
end
function cm.check(g)
return g:Filter(cm.winfilter,nil):GetClassCount(Card.GetAttribute)==6
end
function cm.wincon(e,tp,eg,ep,ev,re,r,rp)
return cm.check(Duel.GetFieldGroup(tp,LOCATION_HAND,0)) or cm.check(Duel.GetFieldGroup(tp,0,LOCATION_HAND))
end
function cm.winop(e,tp,eg,ep,ev,re,r,rp)
local winmessage = 0x60
local g1=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local g2=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
local wtp=cm.check(g1)
local wntp=cm.check(g2)
if wtp and not wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.Win(tp,winmessage)
elseif not wtp and wntp then
Duel.ConfirmCards(tp,g2)
Duel.Win(1-tp,winmessage)
elseif wtp and wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.ConfirmCards(tp,g2)
Duel.Win(PLAYER_NONE,winmessage)
end
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m)>0 then
return
end
if not (re:IsActiveType(TYPE_SPELL) or re:IsActiveType(TYPE_TRAP)) then
return
end
if not e:GetHandler():IsAbleToHandAsCost() then
return
end
if not Duel.IsPlayerCanDraw(re:GetHandlerPlayer(),1) then
return
end
local txtnum=0
local c=e:GetHandler()
if c:IsLocation(LOCATION_DECK) then
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=1 then
return
end
elseif c:IsLocation(LOCATION_MZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+c:GetSequence()
elseif c:IsLocation(LOCATION_FZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=13
elseif c:IsLocation(LOCATION_SZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+7+c:GetSequence()
end
if Duel.SelectYesNo(tp,aux.Stringid(m,txtnum)) then
Duel.RegisterFlagEffect(tp,m,RESET_EVENT+RESET_CHAIN,0,1)
Duel.SendtoHand(c,nil,REASON_COST)
if txtnum==0 and c:IsLocation(LOCATION_HAND) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
Duel.BreakEffect()
Duel.Draw(re:GetHandlerPlayer(),1,REASON_EFFECT)
Duel.NegateEffect(ev)
local rc=re:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_CHAIN_SOLVED)
e3:SetOperation(cm.disresop)
Duel.RegisterEffect(e3,tp)
end
end
function cm.disresop(e,tp,eg,ep,ev,re,r,rp)
Duel.ResetFlagEffect(tp,m)
e:Reset()
end
function cm.actcon(e)
return e:GetHandler():IsPublic()
end
function cm.actlimit(e,re,tp)
return re:IsActiveType(TYPE_SPELL) or re:IsActiveType(TYPE_TRAP)
end
\ No newline at end of file
local m=90700014
local cm=_G["c"..m]
cm.name="钟楼使徒 纳姆卡里"
function cm.initial_effect(c)
aux.AddCodeList(c,90700019)
aux.EnablePendulumAttribute(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_ADJUST)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_DELAY)
e0:SetRange(LOCATION_HAND)
e0:SetCondition(cm.wincon)
e0:SetOperation(cm.winop)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_ONFIELD+LOCATION_DECK)
e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EFFECT_CANNOT_ACTIVATE)
e2:SetRange(LOCATION_HAND)
e2:SetTargetRange(1,0)
e2:SetCondition(cm.actcon)
e2:SetValue(cm.actlimit)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_PZONE)
e3:SetCode(EFFECT_CHANGE_LSCALE)
e3:SetValue(5)
c:RegisterEffect(e3)
end
function cm.winfilter(c)
return aux.IsCodeListed(c,90700019) and c:IsType(TYPE_MONSTER)
end
function cm.check(g)
return g:Filter(cm.winfilter,nil):GetClassCount(Card.GetAttribute)==6
end
function cm.wincon(e,tp,eg,ep,ev,re,r,rp)
return cm.check(Duel.GetFieldGroup(tp,LOCATION_HAND,0)) or cm.check(Duel.GetFieldGroup(tp,0,LOCATION_HAND))
end
function cm.winop(e,tp,eg,ep,ev,re,r,rp)
local winmessage = 0x60
local g1=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local g2=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
local wtp=cm.check(g1)
local wntp=cm.check(g2)
if wtp and not wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.Win(tp,winmessage)
elseif not wtp and wntp then
Duel.ConfirmCards(tp,g2)
Duel.Win(1-tp,winmessage)
elseif wtp and wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.ConfirmCards(tp,g2)
Duel.Win(PLAYER_NONE,winmessage)
end
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m)>0 then
return
end
if not re:IsActiveType(TYPE_MONSTER) then
return
end
if not e:GetHandler():IsAbleToHandAsCost() then
return
end
if not Duel.IsPlayerCanDraw(re:GetHandlerPlayer(),1) then
return
end
local txtnum=0
local c=e:GetHandler()
if c:IsLocation(LOCATION_DECK) then
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=1 then
return
end
elseif c:IsLocation(LOCATION_MZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+c:GetSequence()
elseif c:IsLocation(LOCATION_FZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=13
elseif c:IsLocation(LOCATION_SZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+7+c:GetSequence()
end
if Duel.SelectYesNo(tp,aux.Stringid(m,txtnum)) then
Duel.RegisterFlagEffect(tp,m,RESET_EVENT+RESET_CHAIN,0,1)
Duel.SendtoHand(c,nil,REASON_COST)
if txtnum==0 and c:IsLocation(LOCATION_HAND) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
Duel.BreakEffect()
Duel.Draw(re:GetHandlerPlayer(),1,REASON_EFFECT)
Duel.NegateEffect(ev)
local rc=re:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_CHAIN_SOLVED)
e3:SetOperation(cm.disresop)
Duel.RegisterEffect(e3,tp)
end
end
function cm.disresop(e,tp,eg,ep,ev,re,r,rp)
Duel.ResetFlagEffect(tp,m)
e:Reset()
end
function cm.actcon(e)
return e:GetHandler():IsPublic()
end
function cm.actlimit(e,re,tp)
return re:IsActiveType(TYPE_MONSTER)
end
\ No newline at end of file
local m=90700015
local cm=_G["c"..m]
cm.name="钟楼使徒 伊东"
function cm.initial_effect(c)
aux.AddCodeList(c,90700019)
aux.EnablePendulumAttribute(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_ADJUST)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_DELAY)
e0:SetRange(LOCATION_HAND)
e0:SetCondition(cm.wincon)
e0:SetOperation(cm.winop)
c:RegisterEffect(e0)
local e11=Effect.CreateEffect(c)
e11:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e11:SetRange(LOCATION_ONFIELD+LOCATION_DECK)
e11:SetCode(EVENT_SUMMON)
e11:SetOperation(cm.disop)
c:RegisterEffect(e11)
local e12=Effect.Clone(e11)
e12:SetCode(EVENT_FLIP_SUMMON)
c:RegisterEffect(e12)
local e13=Effect.Clone(e11)
e13:SetCode(EVENT_SPSUMMON)
c:RegisterEffect(e13)
local e21=Effect.CreateEffect(c)
e21:SetType(EFFECT_TYPE_FIELD)
e21:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e21:SetCode(EFFECT_CANNOT_SUMMON)
e21:SetRange(LOCATION_HAND)
e21:SetTargetRange(1,0)
e21:SetCondition(cm.actcon)
e21:SetValue(1)
c:RegisterEffect(e21)
local e22=Effect.Clone(e21)
e22:SetCode(EFFECT_CANNOT_FLIP_SUMMON)
c:RegisterEffect(e22)
local e23=Effect.Clone(e21)
e23:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
c:RegisterEffect(e23)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_PZONE)
e3:SetCode(EFFECT_CHANGE_RSCALE)
e3:SetValue(7)
c:RegisterEffect(e3)
end
function cm.winfilter(c)
return aux.IsCodeListed(c,90700019) and c:IsType(TYPE_MONSTER)
end
function cm.check(g)
return g:Filter(cm.winfilter,nil):GetClassCount(Card.GetAttribute)==6
end
function cm.wincon(e,tp,eg,ep,ev,re,r,rp)
return cm.check(Duel.GetFieldGroup(tp,LOCATION_HAND,0)) or cm.check(Duel.GetFieldGroup(tp,0,LOCATION_HAND))
end
function cm.winop(e,tp,eg,ep,ev,re,r,rp)
local winmessage = 0x60
local g1=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local g2=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
local wtp=cm.check(g1)
local wntp=cm.check(g2)
if wtp and not wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.Win(tp,winmessage)
elseif not wtp and wntp then
Duel.ConfirmCards(tp,g2)
Duel.Win(1-tp,winmessage)
elseif wtp and wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.ConfirmCards(tp,g2)
Duel.Win(PLAYER_NONE,winmessage)
end
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m)>0 then
return
end
if not e:GetHandler():IsAbleToHandAsCost() then
return
end
local txtnum=0
local c=e:GetHandler()
if c:IsLocation(LOCATION_DECK) then
elseif c:IsLocation(LOCATION_MZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+c:GetSequence()
elseif c:IsLocation(LOCATION_FZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=13
elseif c:IsLocation(LOCATION_SZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+7+c:GetSequence()
end
if Duel.SelectYesNo(tp,aux.Stringid(m,txtnum)) then
Duel.RegisterFlagEffect(tp,m,RESET_EVENT+RESET_CHAIN,0,1)
Duel.SendtoHand(c,nil,REASON_COST)
if txtnum==0 and c:IsLocation(LOCATION_HAND) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
Duel.BreakEffect()
Duel.Remove(eg,POS_FACEDOWN,REASON_RULE)
end
end
function cm.disresop(e,tp,eg,ep,ev,re,r,rp)
Duel.ResetFlagEffect(tp,m)
e:Reset()
end
function cm.actcon(e)
return e:GetHandler():IsPublic()
end
\ No newline at end of file
local m=90700016
local cm=_G["c"..m]
cm.name="钟楼使徒 雷诺亚"
function cm.initial_effect(c)
aux.AddCodeList(c,90700019)
aux.EnablePendulumAttribute(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_ADJUST)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_DELAY)
e0:SetRange(LOCATION_HAND)
e0:SetCondition(cm.wincon)
e0:SetOperation(cm.winop)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,15))
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_ONFIELD+LOCATION_DECK)
e1:SetCode(EVENT_TO_HAND)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_PZONE)
e3:SetCode(EFFECT_CHANGE_RSCALE)
e3:SetValue(7)
c:RegisterEffect(e3)
end
function cm.winfilter(c)
return aux.IsCodeListed(c,90700019) and c:IsType(TYPE_MONSTER)
end
function cm.check(g)
return g:Filter(cm.winfilter,nil):GetClassCount(Card.GetAttribute)==6
end
function cm.wincon(e,tp,eg,ep,ev,re,r,rp)
return cm.check(Duel.GetFieldGroup(tp,LOCATION_HAND,0)) or cm.check(Duel.GetFieldGroup(tp,0,LOCATION_HAND))
end
function cm.winop(e,tp,eg,ep,ev,re,r,rp)
local winmessage = 0x60
local g1=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local g2=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
local wtp=cm.check(g1)
local wntp=cm.check(g2)
if wtp and not wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.Win(tp,winmessage)
elseif not wtp and wntp then
Duel.ConfirmCards(tp,g2)
Duel.Win(1-tp,winmessage)
elseif wtp and wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.ConfirmCards(tp,g2)
Duel.Win(PLAYER_NONE,winmessage)
end
end
function cm.disactfilter(c)
return aux.IsCodeListed(c,90700019) and (c:IsPreviousLocation(LOCATION_DECK) or (c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousPosition(POS_FACEUP)))
end
function cm.actfilter(c)
return c:IsPublic() and c:IsCode(m)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m)>0 then
return
end
if not re then
return
end
if not (eg:Filter(cm.disactfilter,nil):GetCount()>0) then
return
end
if not e:GetHandler():IsAbleToHandAsCost() then
return
end
if Duel.GetFieldGroup(tp,LOCATION_HAND,0):FilterCount(cm.actfilter,nil)>0 then
return
end
local txtnum=0
local c=e:GetHandler()
if c:IsLocation(LOCATION_DECK) then
elseif c:IsLocation(LOCATION_MZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+c:GetSequence()
elseif c:IsLocation(LOCATION_FZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=13
elseif c:IsLocation(LOCATION_SZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+7+c:GetSequence()
end
if Duel.SelectYesNo(tp,aux.Stringid(m,txtnum)) then
Duel.RegisterFlagEffect(tp,m,RESET_EVENT+RESET_CHAIN,0,1)
Duel.SendtoHand(c,nil,REASON_COST)
if txtnum==0 and c:IsLocation(LOCATION_HAND) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
Duel.BreakEffect()
if Duel.SelectYesNo(tp,aux.Stringid(m,14)) then
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
Duel.Hint(HINT_MESSAGE,tp,e:GetDescription())
Duel.ConfirmCards(tp,g:Filter(Card.IsPublic,nil))
local tpsg=g:Select(tp,1,g:GetCount()-1,c)
local maxnum=tpsg:GetCount()-tpsg:FilterCount(Card.IsPublic,nil)
local handnum=Duel.GetFieldGroupCount(1-tp,LOCATION_HAND,0)
if maxnum>handnum then
maxnum=handnum
end
local psg=Duel.GetFieldGroup(1-tp,LOCATION_HAND,0):Select(1-tp,maxnum,maxnum,nil)
Duel.SendtoDeck(tpsg,nil,2,REASON_EFFECT)
Duel.SendtoDeck(psg,nil,2,REASON_EFFECT)
end
end
end
function cm.disresop(e,tp,eg,ep,ev,re,r,rp)
Duel.ResetFlagEffect(tp,m)
e:Reset()
end
function cm.actcon(e)
return e:GetHandler():IsPublic()
end
\ No newline at end of file
local m=90700017
local cm=_G["c"..m]
cm.name="钟楼使徒 泣"
function cm.initial_effect(c)
aux.AddCodeList(c,90700019)
aux.EnablePendulumAttribute(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_ADJUST)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_DELAY)
e0:SetRange(LOCATION_HAND)
e0:SetCondition(cm.wincon)
e0:SetOperation(cm.winop)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_ONFIELD+LOCATION_DECK)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(cm.discon)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetRange(LOCATION_HAND)
e2:SetCode(EFFECT_CANNOT_TO_HAND)
e2:SetTarget(aux.TargetBoolFunction(Card.IsLocation,LOCATION_DECK))
e2:SetTargetRange(1,0)
e2:SetCondition(cm.actcon)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_PZONE)
e3:SetCode(EFFECT_CHANGE_LSCALE)
e3:SetValue(5)
c:RegisterEffect(e3)
end
function cm.winfilter(c)
return aux.IsCodeListed(c,90700019) and c:IsType(TYPE_MONSTER)
end
function cm.check(g)
return g:Filter(cm.winfilter,nil):GetClassCount(Card.GetAttribute)==6
end
function cm.wincon(e,tp,eg,ep,ev,re,r,rp)
return cm.check(Duel.GetFieldGroup(tp,LOCATION_HAND,0)) or cm.check(Duel.GetFieldGroup(tp,0,LOCATION_HAND))
end
function cm.winop(e,tp,eg,ep,ev,re,r,rp)
local winmessage = 0x60
local g1=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local g2=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
local wtp=cm.check(g1)
local wntp=cm.check(g2)
if wtp and not wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.Win(tp,winmessage)
elseif not wtp and wntp then
Duel.ConfirmCards(tp,g2)
Duel.Win(1-tp,winmessage)
elseif wtp and wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.ConfirmCards(tp,g2)
Duel.Win(PLAYER_NONE,winmessage)
end
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
local hand=Duel.GetFieldGroup(tp,LOCATION_HAND,0):Filter(Card.IsPublic,nil)
return hand:GetCount()~=0 and hand:FilterCount(Card.IsCode,nil,m)==0 and e:GetHandler():IsAbleToHand()
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
local Indeck=false
local c=e:GetHandler()
if c:IsLocation(LOCATION_DECK) then
Indeck=true
end
Duel.SendtoHand(c,nil,REASON_EFFECT)
if Indeck and c:IsLocation(LOCATION_HAND) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
end
function cm.actcon(e)
return e:GetHandler():IsPublic()
end
local m=90700018
local cm=_G["c"..m]
cm.name="钟楼使徒 玛夏"
function cm.initial_effect(c)
aux.AddCodeList(c,90700019)
aux.EnablePendulumAttribute(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_ADJUST)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_DELAY)
e0:SetRange(LOCATION_HAND)
e0:SetCondition(cm.wincon)
e0:SetOperation(cm.winop)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_ONFIELD+LOCATION_DECK)
e1:SetCode(EVENT_TO_HAND)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetRange(LOCATION_HAND)
e2:SetCode(EFFECT_TO_GRAVE_REDIRECT)
e2:SetTargetRange(0xff,0xfe)
e2:SetValue(LOCATION_REMOVED)
e2:SetCondition(cm.actcon)
e2:SetTarget(cm.rmtg)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetRange(LOCATION_PZONE)
e3:SetCode(EFFECT_CHANGE_LSCALE)
e3:SetValue(5)
c:RegisterEffect(e3)
end
function cm.winfilter(c)
return aux.IsCodeListed(c,90700019) and c:IsType(TYPE_MONSTER)
end
function cm.check(g)
return g:Filter(cm.winfilter,nil):GetClassCount(Card.GetAttribute)==6
end
function cm.wincon(e,tp,eg,ep,ev,re,r,rp)
return cm.check(Duel.GetFieldGroup(tp,LOCATION_HAND,0)) or cm.check(Duel.GetFieldGroup(tp,0,LOCATION_HAND))
end
function cm.winop(e,tp,eg,ep,ev,re,r,rp)
local winmessage = 0x60
local g1=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local g2=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
local wtp=cm.check(g1)
local wntp=cm.check(g2)
if wtp and not wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.Win(tp,winmessage)
elseif not wtp and wntp then
Duel.ConfirmCards(tp,g2)
Duel.Win(1-tp,winmessage)
elseif wtp and wntp then
Duel.ConfirmCards(1-tp,g1)
Duel.ConfirmCards(tp,g2)
Duel.Win(PLAYER_NONE,winmessage)
end
end
function cm.disactfilter(c)
return aux.IsCodeListed(c,90700019) and (c:IsPreviousLocation(LOCATION_DECK) or (c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousPosition(POS_FACEUP)))
end
function cm.banfilter(c)
return aux.IsCodeListed(c,90700019) and c:IsType(TYPE_MONSTER)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m)>0 then
return
end
if not re then
return
end
if not (eg:Filter(cm.disactfilter,nil):GetCount()>0) then
return
end
if not e:GetHandler():IsAbleToHandAsCost() then
return
end
local txtnum=0
local c=e:GetHandler()
if c:IsLocation(LOCATION_DECK) then
elseif c:IsLocation(LOCATION_MZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+c:GetSequence()
elseif c:IsLocation(LOCATION_FZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=13
elseif c:IsLocation(LOCATION_SZONE) then
if not c:IsPosition(POS_FACEUP) then
return
end
txtnum=1+7+c:GetSequence()
end
if Duel.SelectYesNo(tp,aux.Stringid(m,txtnum)) then
Duel.RegisterFlagEffect(tp,m,RESET_EVENT+RESET_CHAIN,0,1)
Duel.SendtoHand(c,nil,REASON_COST)
if txtnum==0 and c:IsLocation(LOCATION_HAND) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
Duel.BreakEffect()
if Duel.SelectYesNo(tp,aux.Stringid(m,14)) then
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
Duel.ConfirmCards(1-tp,g)
local num=g:Filter(cm.banfilter,nil):GetClassCount(Card.GetAttribute)
local sg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(Card.IsAbleToRemove),tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,1,num,nil,tp)
if sg then
Duel.Remove(sg,POS_FACEDOWN,REASON_RULE)
end
end
end
end
function cm.disresop(e,tp,eg,ep,ev,re,r,rp)
Duel.ResetFlagEffect(tp,m)
e:Reset()
end
function cm.actcon(e)
return e:GetHandler():IsPublic()
end
function cm.rmtg(e,c)
return c:GetOwner()==e:GetHandlerPlayer()
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