Commit b96ef452 authored by TanakaKotoha's avatar TanakaKotoha

fix

parent 70aa656a
--教团的普通骑士 --教团的普通骑士
if not pcall(function() require("expansions/script/c16199990") end) then require("script/c16199990") end local m=16104200
local m,cm=rscf.DefineCard(16104200,"CHURCH_KNIGHT") local cm=_G["c"..m]
c16104200.rksetcode="CHURCH_KNIGHT"
function cm.initial_effect(c) function cm.initial_effect(c)
--double tribute --double tribute
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -9,13 +10,29 @@ function cm.initial_effect(c) ...@@ -9,13 +10,29 @@ function cm.initial_effect(c)
e1:SetValue(cm.condition) e1:SetValue(cm.condition)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--to hand --to hand
local e2=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,1},nil,"sp","de,tg",nil,nil,rsop.target(rscf.spfilter2(cm.spfilter),"sp",LOCATION_DECK),cm.thop) local e2=Effect.CreateEffect(c)
local e3=rsef.RegisterClone(c,e2,"code",EVENT_SPSUMMON_SUCCESS) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,m)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e3)
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:GetAttack()<=900 and c:GetLevel()<=3 and c:IsRace(RACE_WARRIOR) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP) return c:GetAttack()<=900 and c:GetLevel()<=3 and c:IsRace(RACE_WARRIOR) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
end end
function cm.thop(e,tp) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function cm.spop(e,tp)
local c=e:GetHandler() local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
...@@ -42,8 +59,8 @@ function cm.thop(e,tp) ...@@ -42,8 +59,8 @@ function cm.thop(e,tp)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function cm.condition(e,c) function cm.condition(e,c)
return c:CheckSetCard("CHURCH") return (c.rksetcode=="CHURCH_KNIGHT" or c.rksetcode=="CHURCH")
end end
function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se) function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsLocation(LOCATION_EXTRA) or not (c:CheckSetCard("CHURCH") or c:IsSetCard(0xccb) or c:IsCode(16104222)) return c:IsLocation(LOCATION_EXTRA) or not (c.rksetcode=="CHURCH_KNIGHT" or c.rksetcode=="CHURCH" or c:IsSetCard(0xccb) or c:IsCode(16104222))
end end
\ No newline at end of file
--教团的灰骑士 格雷 --教团的灰骑士 格雷
if not pcall(function() require("expansions/script/c16199990") end) then require("script/c16199990") end local m=16104202
local m,cm=rscf.DefineCard(16104202,"CHURCH_KNIGHT") local cm=_G["c"..m]
c16104202.rksetcode="CHURCH_KNIGHT"
function cm.initial_effect(c) function cm.initial_effect(c)
c:SetUniqueOnField(1,1,m) c:SetUniqueOnField(1,1,m)
--summon success --summon success
...@@ -9,9 +10,23 @@ function cm.initial_effect(c) ...@@ -9,9 +10,23 @@ function cm.initial_effect(c)
e1:SetCode(EVENT_SUMMON_SUCCESS) e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetOperation(cm.sumsuc) e1:SetOperation(cm.sumsuc)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e1_1=Effect.CreateEffect(c)
e1_1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1_1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1_1:SetOperation(cm.sumsuc1)
c:RegisterEffect(e1_1)
--a d A --a d A
local e2=REIKAI.CHRUCH_KNIGHT_DES(c,cm.gacon,cm.gatg,{1,m},cm.gaop) local e2=Effect.CreateEffect(c)
local e3=REIKAI.CHRUCH_KNIGHT_ADV(c,cm.gacon,cm.gatg,{1,m},cm.gaop) e2:SetDescription(aux.Stringid(m,3))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_BATTLE_DESTROYED)
e2:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e2:SetCountLimit(1)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.gacon)
e2:SetTarget(cm.gatg)
e2:SetOperation(cm.gaop)
c:RegisterEffect(e2)
--summon with 1 tribute --summon with 1 tribute
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,4)) e4:SetDescription(aux.Stringid(m,4))
...@@ -51,8 +66,7 @@ function cm.otcon(e,c,minc) ...@@ -51,8 +66,7 @@ function cm.otcon(e,c,minc)
return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg) and Duel.IsEnvironment(16104206,e:GetOwnerPlayer(),LOCATION_FZONE) return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg) and Duel.IsEnvironment(16104206,e:GetOwnerPlayer(),LOCATION_FZONE)
end end
function cm.otop(e,tp,eg,ep,ev,re,r,rp,c) function cm.otop(e,tp,eg,ep,ev,re,r,rp,c)
local mg=Duel.GetMatchingGroup(cm.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil) local sg=Duel.SelectMatchingCard(tp,cm.otfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
local sg=(mg+mg):SelectSubGroup(tp,aux.TRUE,false,1,1,tp)
c:SetMaterial(sg) c:SetMaterial(sg)
Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL) Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL)
end end
...@@ -76,9 +90,60 @@ function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp) ...@@ -76,9 +90,60 @@ function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_PHASE+PHASE_END) e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
end end
if e:GetHandler():GetFlagEffect(16104206)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e1:SetTarget(cm.eqtg)
e1:SetOperation(cm.eqop)
e1:SetCountLimit(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetTarget(cm.desreptg)
e2:SetOperation(cm.desrepop)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetLabelObject(e2)
c:RegisterEffect(e2)
end
end
function cm.sumsuc1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():GetFlagEffect(16104220)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e1:SetTarget(cm.eqtg)
e1:SetOperation(cm.eqop)
e1:SetCountLimit(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetTarget(cm.desreptg)
e2:SetOperation(cm.desrepop)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetLabelObject(e2)
c:RegisterEffect(e2)
end
end end
function cm.adfilter(c) function cm.adfilter(c)
return c:IsRace(RACE_WARRIOR) or c:IsType(TYPE_SPELL+TYPE_TRAP) return c:IsRace(RACE_WARRIOR) or c:IsType(TYPE_SPELL) or c:IsType(TYPE_TRAP)
end end
function cm.aclimit(e,re,tp) function cm.aclimit(e,re,tp)
return re:GetHandler():IsOnField() and re:IsHasType(EFFECT_TYPE_ACTIVATE) return re:GetHandler():IsOnField() and re:IsHasType(EFFECT_TYPE_ACTIVATE)
...@@ -89,7 +154,10 @@ end ...@@ -89,7 +154,10 @@ end
function cm.gacon(e,tp,eg,ep,ev,re,r,rp) function cm.gacon(e,tp,eg,ep,ev,re,r,rp)
local des=eg:GetFirst() local des=eg:GetFirst()
local rc=des:GetReasonCard() local rc=des:GetReasonCard()
return (not des:IsRace(RACE_WARRIOR)) and rc:IsRelateToBattle() and rc==e:GetHandler() return ((not des:IsRace(RACE_WARRIOR)) and rc:IsRelateToBattle() and rc==e:GetHandler()) or re:GetHandler():GetFlagEffect(tp,16104206)==1
end
function cm.gacon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(16104206)~=0
end end
function cm.gatg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.gatg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
......
--教团的银骑士 莱特哈尔 --教团的银骑士 莱特哈尔
if not pcall(function() require("expansions/script/c16199990") end) then require("script/c16199990") end local m=16104204
local m,cm=rscf.DefineCard(16104204,"CHURCH_KNIGHT") local cm=_G["c"..m]
c16104204.rksetcode="CHURCH_KNIGHT"
function cm.initial_effect(c) function cm.initial_effect(c)
c:SetUniqueOnField(1,1,m) c:SetUniqueOnField(1,1,m)
--summon success --summon success
...@@ -9,9 +10,23 @@ function cm.initial_effect(c) ...@@ -9,9 +10,23 @@ function cm.initial_effect(c)
e1:SetCode(EVENT_SUMMON_SUCCESS) e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetOperation(cm.sumsuc) e1:SetOperation(cm.sumsuc)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e1_1=Effect.CreateEffect(c)
e1_1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1_1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1_1:SetOperation(cm.sumsuc1)
c:RegisterEffect(e1_1)
--a d A --a d A
local e2=REIKAI.CHRUCH_KNIGHT_DES(c,cm.gacon,cm.gatg,{1},cm.gaop) local e2=Effect.CreateEffect(c)
local e3=REIKAI.CHRUCH_KNIGHT_ADV(c,cm.gacon,cm.gatg,{1},cm.gaop) e2:SetDescription(aux.Stringid(m,2))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_BATTLE_DESTROYED)
e2:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e2:SetCountLimit(1)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.gacon)
e2:SetTarget(cm.gatg)
e2:SetOperation(cm.gaop)
c:RegisterEffect(e2)
--summon with 1 tribute --summon with 1 tribute
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,3)) e4:SetDescription(aux.Stringid(m,3))
...@@ -51,18 +66,49 @@ function cm.otcon(e,c,minc) ...@@ -51,18 +66,49 @@ function cm.otcon(e,c,minc)
return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg) and Duel.IsEnvironment(16104206,e:GetOwnerPlayer(),LOCATION_FZONE) return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg) and Duel.IsEnvironment(16104206,e:GetOwnerPlayer(),LOCATION_FZONE)
end end
function cm.otop(e,tp,eg,ep,ev,re,r,rp,c) function cm.otop(e,tp,eg,ep,ev,re,r,rp,c)
local mg=Duel.GetMatchingGroup(cm.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil) local sg=Duel.SelectMatchingCard(tp,cm.otfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
local sg=(mg+mg):SelectSubGroup(tp,aux.TRUE,false,1,1,tp)
c:SetMaterial(sg) c:SetMaterial(sg)
Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL) Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL)
end end
function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp) function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if (c:IsSummonType(SUMMON_TYPE_ADVANCE) and c:GetMaterial():IsExists(cm.adfilter,1,nil)) or not c:IsSummonType(SUMMON_TYPE_ADVANCE) then if c:GetMaterial():IsExists(cm.adfilter,1,nil) or not c:IsSummonType(SUMMON_TYPE_ADVANCE) then
local e1=rsef.SV_IMMUNE_EFFECT(c,cm.val,nil,{RESET_PHASE+PHASE_END},nil,nil) end local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_IMMUNE_EFFECT)
e4:SetValue(cm.val)
e4:SetOwnerPlayer(tp)
e4:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e4)
end
if e:GetHandler():GetFlagEffect(16104206)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_BATTLE_START)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1)
end
end
function cm.sumsuc1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():GetFlagEffect(16104220)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_BATTLE_START)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1)
end
end end
function cm.adfilter(c) function cm.adfilter(c)
return c:IsRace(RACE_WARRIOR) or c:IsType(TYPE_SPELL+TYPE_TRAP) return c:IsRace(RACE_WARRIOR) or c:IsType(TYPE_SPELL) or c:IsType(TYPE_TRAP)
end end
function cm.val(e,re,tp) function cm.val(e,re,tp)
return not re:GetHandler():IsRace(RACE_WARRIOR) return not re:GetHandler():IsRace(RACE_WARRIOR)
...@@ -70,7 +116,7 @@ end ...@@ -70,7 +116,7 @@ end
function cm.gacon(e,tp,eg,ep,ev,re,r,rp) function cm.gacon(e,tp,eg,ep,ev,re,r,rp)
local des=eg:GetFirst() local des=eg:GetFirst()
local rc=des:GetReasonCard() local rc=des:GetReasonCard()
return (not des:IsRace(RACE_WARRIOR)) and rc:IsRelateToBattle() and rc==e:GetHandler() and rc:GetEffectCount(16104206)==0 return (not des:IsRace(RACE_WARRIOR)) and rc:IsRelateToBattle() and rc==e:GetHandler()
end end
function cm.gatg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.gatg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
......
--不灭的圣光教团国 --不灭的圣光教团国
if not pcall(function() require("expansions/script/c16199990") end) then require("script/c16199990") end local m=16104206
local m,cm=rscf.DefineCard(16104206,"CHURCH") local cm=_G["c"..m]
c16104206.rksetcode="CHURCH"
function cm.initial_effect(c) function cm.initial_effect(c)
--Activate --Activate
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
...@@ -13,21 +14,21 @@ function cm.initial_effect(c) ...@@ -13,21 +14,21 @@ function cm.initial_effect(c)
e3:SetCode(EFFECT_CANNOT_DISABLE_SUMMON) e3:SetCode(EFFECT_CANNOT_DISABLE_SUMMON)
e3:SetRange(LOCATION_FZONE) e3:SetRange(LOCATION_FZONE)
e3:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_SET_AVAILABLE) e3:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_SET_AVAILABLE)
e3:SetTarget(aux.TargetBoolFunction(rscf.CheckSetCard,"CHURCH")) e3:SetTarget(aux.TargetBoolFunction(Card.ischurch))
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON) e2:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON)
e2:SetRange(LOCATION_FZONE) e2:SetRange(LOCATION_FZONE)
e2:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_SET_AVAILABLE) e2:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_SET_AVAILABLE)
e2:SetTarget(aux.TargetBoolFunction(rscf.CheckSetCard,"CHURCH")) e2:SetTarget(aux.TargetBoolFunction(Card.ischurch))
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_DISABLE_FLIP_SUMMON) e1:SetCode(EFFECT_CANNOT_DISABLE_FLIP_SUMMON)
e1:SetRange(LOCATION_FZONE) e1:SetRange(LOCATION_FZONE)
e1:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_SET_AVAILABLE) e1:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetTarget(aux.TargetBoolFunction(rscf.CheckSetCard,"CHURCH")) e1:SetTarget(aux.TargetBoolFunction(Card.ischurch))
c:RegisterEffect(e1) c:RegisterEffect(e1)
--Summon --Summon
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
...@@ -43,7 +44,10 @@ function cm.initial_effect(c) ...@@ -43,7 +44,10 @@ function cm.initial_effect(c)
Duel.RegisterFlagEffect(tp,m,RESET_EVENT+RESETS_STANDARD,0,0) Duel.RegisterFlagEffect(tp,m,RESET_EVENT+RESETS_STANDARD,0,0)
end end
function cm.filter(c) function cm.filter(c)
return c:CheckSetCard("CHURCH") and c:IsSummonable(true,nil) return (c.rksetcode=="CHURCH_KNIGHT" or c.rksetcode=="CHURCH") and c:IsSummonable(true,nil)
end
function Card.ischurch(c)
return (c.rksetcode=="CHURCH_KNIGHT" or c.rksetcode=="CHURCH")
end end
function cm.sumtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_HAND,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_HAND,0,1,nil) end
...@@ -54,17 +58,8 @@ function cm.sumop(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,17 +58,8 @@ function cm.sumop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_HAND,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_HAND,0,1,1,nil)
if g:GetCount()<=0 then return end if g:GetCount()<=0 then return end
local sc=g:GetFirst() local sc=g:GetFirst()
if sc:CheckSetCard("CHURCH_KNIGHT") then if sc.rksetcode=="CHURCH_KNIGHT" and sc:GetOriginalLevel()>=6 then
if sc:GetActivateEffect() and e:GetOperation() then sc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD+RESET_PHASE+PHASE_END,0,1)
local e=sc:GetActivateEffect()
local op=e:GetOperation()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetOperation(op)
sc:RegisterEffect(e1)
local e3=Effect.CreateEffect(e:GetHandler()) local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetDescription(aux.Stringid(m,1)) e3:SetDescription(aux.Stringid(m,1))
...@@ -73,6 +68,5 @@ function cm.sumop(e,tp,eg,ep,ev,re,r,rp) ...@@ -73,6 +68,5 @@ function cm.sumop(e,tp,eg,ep,ev,re,r,rp)
e3:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD) e3:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD)
sc:RegisterEffect(e3,true) sc:RegisterEffect(e3,true)
end end
end
Duel.Summon(tp,sc,true,nil) Duel.Summon(tp,sc,true,nil)
end end
\ No newline at end of file
--教团的苍骑士 IO --教团的苍骑士 IO
if not pcall(function() require("expansions/script/c16199990") end) then require("script/c16199990") end local m=16104208
local m,cm=rscf.DefineCard(16104208,"CHURCH_KNIGHT") local cm=_G["c"..m]
c16104208.rksetcode="CHURCH_KNIGHT"
function cm.initial_effect(c) function cm.initial_effect(c)
c:SetUniqueOnField(1,1,m) c:SetUniqueOnField(1,1,m)
--summon success --summon success
...@@ -11,9 +12,24 @@ function cm.initial_effect(c) ...@@ -11,9 +12,24 @@ function cm.initial_effect(c)
e1:SetCondition(cm.sucon) e1:SetCondition(cm.sucon)
e1:SetOperation(cm.sumsuc) e1:SetOperation(cm.sumsuc)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e1_1=Effect.CreateEffect(c)
e1_1:SetDescription(aux.Stringid(m,0))
e1_1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1_1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1_1:SetOperation(cm.sumsuc1)
c:RegisterEffect(e1_1)
--a d A --a d A
local e2=REIKAI.CHRUCH_KNIGHT_DES(c,cm.gacon,cm.gatg,{1,m},cm.gaop) local e2=Effect.CreateEffect(c)
local e3=REIKAI.CHRUCH_KNIGHT_ADV(c,cm.gacon,cm.gatg,{1,m},cm.gaop) e2:SetDescription(aux.Stringid(m,2))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_BATTLE_DESTROYED)
e2:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e2:SetCountLimit(1)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.gacon)
e2:SetTarget(cm.gatg)
e2:SetOperation(cm.gaop)
c:RegisterEffect(e2)
--summon with 1 tribute --summon with 1 tribute
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,4)) e4:SetDescription(aux.Stringid(m,4))
...@@ -53,8 +69,7 @@ function cm.otcon(e,c,minc) ...@@ -53,8 +69,7 @@ function cm.otcon(e,c,minc)
return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg) and Duel.IsEnvironment(16104206,e:GetOwnerPlayer(),LOCATION_FZONE) return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg) and Duel.IsEnvironment(16104206,e:GetOwnerPlayer(),LOCATION_FZONE)
end end
function cm.otop(e,tp,eg,ep,ev,re,r,rp,c) function cm.otop(e,tp,eg,ep,ev,re,r,rp,c)
local mg=Duel.GetMatchingGroup(cm.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil) local sg=Duel.SelectMatchingCard(tp,cm.otfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
local sg=(mg+mg):SelectSubGroup(tp,aux.TRUE,false,1,1,tp)
c:SetMaterial(sg) c:SetMaterial(sg)
Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL) Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL)
end end
...@@ -62,15 +77,46 @@ function cm.des(c) ...@@ -62,15 +77,46 @@ function cm.des(c)
return not c:IsRace(RACE_WARRIOR) return not c:IsRace(RACE_WARRIOR)
end end
function cm.sucon(e,tp,eg,ep,ev,re,r,rp) function cm.sucon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE) and e:GetHandler():GetMaterial():IsExists(cm.adfilter,1,nil) or not c:IsSummonType(SUMMON_TYPE_ADVANCE) return e:GetHandler():GetMaterial():IsExists(cm.adfilter,1,nil) or not e:GetHandler():GetMaterial():IsSummonType(SUMMON_TYPE_ADVANCE)
end end
function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp) function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=Duel.GetMatchingGroup(cm.des,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local g=Duel.GetMatchingGroup(cm.des,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
Duel.Destroy(g,REASON_EFFECT) Duel.Destroy(g,REASON_EFFECT)
if e:GetHandler():GetFlagEffect(16104206)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCategory(CATEGORY_DESTROY)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e1:SetTarget(cm.dstg)
e1:SetOperation(cm.dsop)
e1:SetCountLimit(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
end
function cm.sumsuc1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():GetFlagEffect(16104220)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCategory(CATEGORY_DESTROY)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e1:SetTarget(cm.dstg)
e1:SetOperation(cm.dsop)
e1:SetCountLimit(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
end end
function cm.adfilter(c) function cm.adfilter(c)
return c:IsRace(RACE_WARRIOR) or c:IsType(TYPE_SPELL+TYPE_TRAP) return c:IsRace(RACE_WARRIOR) or c:IsType(TYPE_SPELL) or c:IsType(TYPE_TRAP)
end end
function cm.gacon(e,tp,eg,ep,ev,re,r,rp) function cm.gacon(e,tp,eg,ep,ev,re,r,rp)
local des=eg:GetFirst() local des=eg:GetFirst()
......
--教团的翼骑士 韦因 --教团的翼骑士 韦因
if not pcall(function() require("expansions/script/c16199990") end) then require("script/c16199990") end local m=16104210
local m,cm=rscf.DefineCard(16104210,"CHURCH_KNIGHT") local cm=_G["c"..m]
c16104210.rksetcode="CHURCH_KNIGHT"
function cm.initial_effect(c) function cm.initial_effect(c)
c:SetUniqueOnField(1,1,m) c:SetUniqueOnField(1,1,m)
--hand --hand
...@@ -25,8 +26,28 @@ function cm.initial_effect(c) ...@@ -25,8 +26,28 @@ function cm.initial_effect(c)
e4:SetOperation(cm.sprop1) e4:SetOperation(cm.sprop1)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--a d A --a d A
local e2=REIKAI.CHRUCH_KNIGHT_DES(c,cm.gacon,cm.gatg,{1,m},cm.gaop) local e2=Effect.CreateEffect(c)
local e3=REIKAI.CHRUCH_KNIGHT_ADV(c,cm.gacon,cm.gatg,{1,m},cm.gaop) e2:SetDescription(aux.Stringid(m,2))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_BATTLE_DESTROYED)
e2:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e2:SetCountLimit(1)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.gacon)
e2:SetTarget(cm.gatg)
e2:SetOperation(cm.gaop)
c:RegisterEffect(e2)
--summon success
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_SUMMON_SUCCESS)
e0:SetOperation(cm.sumsuc)
c:RegisterEffect(e0)
local e0_1=Effect.CreateEffect(c)
e0_1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0_1:SetCode(EVENT_SPSUMMON_SUCCESS)
e0_1:SetOperation(cm.sumsuc1)
c:RegisterEffect(e0_1)
Duel.AddCustomActivityCounter(m,ACTIVITY_SPSUMMON,cm.counterfilter1) Duel.AddCustomActivityCounter(m,ACTIVITY_SPSUMMON,cm.counterfilter1)
Duel.AddCustomActivityCounter(m,ACTIVITY_SUMMON,cm.counterfilter) Duel.AddCustomActivityCounter(m,ACTIVITY_SUMMON,cm.counterfilter)
end end
...@@ -36,8 +57,42 @@ end ...@@ -36,8 +57,42 @@ end
function cm.counterfilter1(c) function cm.counterfilter1(c)
return c:GetSummonLocation()~=LOCATION_EXTRA and c:IsRace(RACE_WARRIOR) return c:GetSummonLocation()~=LOCATION_EXTRA and c:IsRace(RACE_WARRIOR)
end end
function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():GetFlagEffect(16104206)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCategory(CATEGORY_REMOVE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetTarget(cm.eqtg)
e1:SetOperation(cm.eqop)
e1:SetCountLimit(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
end
function cm.sumsuc1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():GetFlagEffect(16104220)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCategory(CATEGORY_REMOVE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetTarget(cm.eqtg)
e1:SetOperation(cm.eqop)
e1:SetCountLimit(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
end
function cm.filter(c) function cm.filter(c)
return c:CheckSetCard("CHURCH") and c:GetLevel()>=5 return (c.rksetcode=="CHURCH_KNIGHT" or c.rksetcode=="CHURCH") and c:GetLevel()>=5
end end
function cm.filter1(c) function cm.filter1(c)
return c:IsAbleToGrave() return c:IsAbleToGrave()
...@@ -93,10 +148,10 @@ function cm.sprtg1(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -93,10 +148,10 @@ function cm.sprtg1(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end end
function cm.filter2(c) function cm.filter2(c)
return c:IsAbleToGrave() and c:CheckSetCard("CHURCH") return c:IsAbleToGrave() and (c.rksetcode=="CHURCH_KNIGHT" or c.rksetcode=="CHURCH")
end end
function cm.filter3(c) function cm.filter3(c)
return c:CheckSetCard("CHURCH") return (c.rksetcode=="CHURCH_KNIGHT" or c.rksetcode=="CHURCH")
end end
function cm.sprop1(e,tp,eg,ep,ev,re,r,rp) function cm.sprop1(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM) local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
......
--教团的圣旗手 迪萨贝尔 --教团的圣旗手 迪萨贝尔
if not pcall(function() require("expansions/script/c16199990") end) then require("script/c16199990") end local m=16104212
local m,cm=rscf.DefineCard(16104212,"CHURCH") local cm=_G["c"..m]
c16104212.rksetcode="CHURCH"
function cm.initial_effect(c) function cm.initial_effect(c)
c:SetUniqueOnField(1,1,m) c:SetUniqueOnField(1,1,m)
--summon success --summon success
local e1=rsef.STO(c,EVENT_SUMMON_SUCCESS,{m,1},nil,"se,th","de,dsp",nil,cm.cost,rsop.target(cm.thfilter,"th",LOCATION_DECK),cm.thop) local e1=Effect.CreateEffect(c)
local e3=rsef.RegisterClone(c,e1,"code",EVENT_SPSUMMON_SUCCESS) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
local e3=e1:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e3)
--double tribute --double tribute
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
...@@ -39,7 +51,11 @@ function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se) ...@@ -39,7 +51,11 @@ function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsLocation(LOCATION_EXTRA) or not c:IsRace(RACE_WARRIOR) return c:IsLocation(LOCATION_EXTRA) or not c:IsRace(RACE_WARRIOR)
end end
function cm.thfilter(c) function cm.thfilter(c)
return c:CheckSetCard("CHURCH") and c:IsAbleToHand() return (c.rksetcode=="CHURCH_KNIGHT" or c.rksetcode=="CHURCH") and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function cm.thop(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
...@@ -50,5 +66,5 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -50,5 +66,5 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.condition(e,c) function cm.condition(e,c)
return c:CheckSetCard("CHURCH") return (c.rksetcode=="CHURCH_KNIGHT" or c.rksetcode=="CHURCH")
end end
\ No newline at end of file
--叛教的掠夺骑士 IO --叛教的掠夺骑士 IO
if not pcall(function() require("expansions/script/c16199990") end) then require("script/c16199990") end local m=16104214
local m,cm=rscf.DefineCard(16104214,"CHURCH_KNIGHT") local cm=_G["c"..m]
c16104214.rksetcode="CHURCH_KNIGHT"
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c,16104208) aux.AddCodeList(c,16104208)
c:SetUniqueOnField(1,1,m) c:SetUniqueOnField(1,1,m)
...@@ -11,7 +12,14 @@ function cm.initial_effect(c) ...@@ -11,7 +12,14 @@ function cm.initial_effect(c)
e0:SetCode(EFFECT_SPSUMMON_CONDITION) e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(cm.splimit) e0:SetValue(cm.splimit)
c:RegisterEffect(e0) c:RegisterEffect(e0)
local e4=rscf.SetSpecialSummonProduce(c,LOCATION_HAND,cm.sprcon,cm.sprop) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_SPSUMMON_PROC)
e4:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
e4:SetRange(LOCATION_HAND)
e4:SetCondition(cm.sprcon)
e4:SetOperation(cm.sprop)
c:RegisterEffect(e4)
--indes --indes
--local e1=Effect.CreateEffect(c) --local e1=Effect.CreateEffect(c)
--e1:SetType(EFFECT_TYPE_SINGLE) --e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -45,16 +53,19 @@ function cm.splimit(e,se,sp,st) ...@@ -45,16 +53,19 @@ function cm.splimit(e,se,sp,st)
return se:GetHandler():IsCode(16104226) return se:GetHandler():IsCode(16104226)
end end
function cm.spzfilter(c,tp) function cm.spzfilter(c,tp)
return Duel.GetMZoneCount(tp,c,tp)>0 return c:IsFaceup() and c:IsCode(16104208) and c:IsReleasable() and (ft>0 or c:GetSequence()<5)
end end
function cm.sprcon(e,c,tp) function cm.sprcon(e,c,tp)
local g1=Duel.GetReleaseGroup(tp,false):Filter(Card.IsCode,nil,16104208) if c==nil then return true end
return (g1+g1):IsExists(cm.spzfilter,1,nil,tp) local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return ft>-1 and Duel.IsExistingMatchingCard(cm.spzfilter,tp,LOCATION_MZONE,0,1,nil,ft)
end end
function cm.sprop(e,tp) function cm.sprop(e,tp)
local g1=Duel.GetReleaseGroup(tp,false):Filter(Card.IsCode,nil,16104208) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local sg=(g1+g1):SelectSubGroup(tp,cm.spzfilter,false,1,1,tp) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
Duel.Release(sg,REASON_COST) local g=Duel.SelectMatchingCard(tp,cm.spzfilter,tp,LOCATION_MZONE,0,1,1,nil,ft)
Duel.Release(g,REASON_COST)
end end
function cm.filter1(c) function cm.filter1(c)
return c:IsFaceup() and not (c:IsDisabled() and c:GetAttack()==0 and c:GetDefense()==0) return c:IsFaceup() and not (c:IsDisabled() and c:GetAttack()==0 and c:GetDefense()==0)
......
--叛教的异骑士 迪萨贝尔 --叛教的异骑士 迪萨贝尔
if not pcall(function() require("expansions/script/c16199990") end) then require("script/c16199990") end local m=16104216
local m,cm=rscf.DefineCard(16104216,"CHURCH_KNIGHT") local cm=_G["c"..m]
c16104216.rksetcode="CHURCH_KNIGHT"
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c,16104212) aux.AddCodeList(c,16104212)
c:SetUniqueOnField(1,1,m) c:SetUniqueOnField(1,1,m)
...@@ -11,7 +12,14 @@ function cm.initial_effect(c) ...@@ -11,7 +12,14 @@ function cm.initial_effect(c)
e0:SetCode(EFFECT_SPSUMMON_CONDITION) e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(cm.splimit) e0:SetValue(cm.splimit)
c:RegisterEffect(e0) c:RegisterEffect(e0)
local e4=rscf.SetSpecialSummonProduce(c,LOCATION_HAND,cm.sprcon,cm.sprop) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_SPSUMMON_PROC)
e4:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
e4:SetRange(LOCATION_HAND)
e4:SetCondition(cm.sprcon)
e4:SetOperation(cm.sprop)
c:RegisterEffect(e4)
--indes --indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -45,17 +53,20 @@ end ...@@ -45,17 +53,20 @@ end
function cm.splimit(e,se,sp,st) function cm.splimit(e,se,sp,st)
return se:GetHandler():IsCode(16104226) return se:GetHandler():IsCode(16104226)
end end
function cm.spzfilter(c,tp) function cm.spzfilter(c,ft)
return Duel.GetMZoneCount(tp,c,tp)>0 return c:IsFaceup() and c:IsCode(16104212) and c:IsReleasable() and (ft>0 or c:GetSequence()<5)
end end
function cm.sprcon(e,c,tp) function cm.sprcon(e,c,tp)
local g1=Duel.GetReleaseGroup(tp,false):Filter(Card.IsCode,nil,16104212) if c==nil then return true end
return (g1+g1):IsExists(cm.spzfilter,1,nil,tp) local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return ft>-1 and Duel.IsExistingMatchingCard(cm.spzfilter,tp,LOCATION_MZONE,0,1,nil,ft)
end end
function cm.sprop(e,tp) function cm.sprop(e,tp)
local g1=Duel.GetReleaseGroup(tp,false):Filter(Card.IsCode,nil,16104212) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local sg=(g1+g1):SelectSubGroup(tp,cm.spzfilter,false,1,1,tp) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
Duel.Release(sg,REASON_COST) local g=Duel.SelectMatchingCard(tp,cm.spzfilter,tp,LOCATION_MZONE,0,1,1,nil,ft)
Duel.Release(g,REASON_COST)
end end
function cm.filter1(c) function cm.filter1(c)
return c:IsFaceup() and not c:IsDisabled() return c:IsFaceup() and not c:IsDisabled()
......
...@@ -48,8 +48,8 @@ function c65010512.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -48,8 +48,8 @@ function c65010512.op(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c65010512.spfilter1,1-tp,LOCATION_EXTRA,0,nil,e,tp,zone) local g=Duel.GetMatchingGroup(c65010512.spfilter1,1-tp,LOCATION_EXTRA,0,nil,e,tp,zone)
local sg=g:RandomSelect(1-tp,1) local sg=g:RandomSelect(1-tp,1)
if sg:GetCount()>0 then if sg:GetCount()>0 then
Duel.SpecialSummon(sg,0,1-tp,1-tp,false,false,POS_FACEUP,zone)
local tc=sg:GetFirst() local tc=sg:GetFirst()
Duel.SpecialSummonStep(tc,0,1-tp,1-tp,false,false,POS_FACEUP,zone)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE) e1:SetCode(EFFECT_DISABLE)
...@@ -60,6 +60,7 @@ function c65010512.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,6 +60,7 @@ function c65010512.op(e,tp,eg,ep,ev,re,r,rp)
e2:SetCode(EFFECT_DISABLE_EFFECT) e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+RESETS_STANDARD) e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2) tc:RegisterEffect(e2)
Duel.SpecialSummonComplete()
end end
end end
......
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