Commit 1f0850e2 authored by POLYMER's avatar POLYMER

fix

parent c9827f64
--天の聖杯 Πνευμα(プネウマ) --天の聖杯 Πνευμα(プネウマ)
function c260013011.initial_effect(c) function c260013011.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
c:SetSPSummonOnce(26001260013011) c:SetSPSummonOnce(260013011)
--special summon rule --special summon rule
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_CHAINING) e6:SetCode(EVENT_CHAINING)
e6:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE) e6:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e6:SetRange(LOCATION_EXTRA) e6:SetRange(LOCATION_EXTRA)
e6:SetCondition(c260013011.chcon) e6:SetCondition(c260013011.chcon)
e6:SetOperation(c260013011.chop) e6:SetOperation(c260013011.chop)
c:RegisterEffect(e6) c:RegisterEffect(e6)
local e7=Effect.CreateEffect(c) local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e7:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE) e7:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e7:SetRange(LOCATION_EXTRA) e7:SetRange(LOCATION_EXTRA)
e7:SetCode(EVENT_BE_BATTLE_TARGET) e7:SetCode(EVENT_BE_BATTLE_TARGET)
e7:SetCondition(c260013011.atcon) e7:SetCondition(c260013011.atcon)
e7:SetOperation(c260013011.atop) e7:SetOperation(c260013011.atop)
c:RegisterEffect(e7) c:RegisterEffect(e7)
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
e8:SetProperty(EFFECT_FLAG_UNCOPYABLE) e8:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e8:SetType(EFFECT_TYPE_FIELD) e8:SetType(EFFECT_TYPE_FIELD)
e8:SetCode(EFFECT_SPSUMMON_PROC) e8:SetCode(EFFECT_SPSUMMON_PROC)
e8:SetRange(LOCATION_EXTRA) e8:SetRange(LOCATION_EXTRA)
e8:SetCondition(c260013011.xyzcon) e8:SetCondition(c260013011.xyzcon)
e8:SetOperation(c260013011.xyzop) e8:SetOperation(c260013011.xyzop)
e8:SetValue(SUMMON_TYPE_XYZ) e8:SetValue(SUMMON_TYPE_XYZ)
c:RegisterEffect(e8) c:RegisterEffect(e8)
--spsummon condition --spsummon condition
local e9=Effect.CreateEffect(c) local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_SINGLE) e9:SetType(EFFECT_TYPE_SINGLE)
e9:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e9:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e9:SetCode(EFFECT_SPSUMMON_CONDITION) e9:SetCode(EFFECT_SPSUMMON_CONDITION)
e9:SetValue(c260013011.splimit) e9:SetValue(c260013011.splimit)
c:RegisterEffect(e9) c:RegisterEffect(e9)
--act limit --act limit
local e10=Effect.CreateEffect(c) local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e10:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e10:SetCode(EVENT_SPSUMMON) e10:SetCode(EVENT_SPSUMMON)
e10:SetOperation(c260013011.limop) e10:SetOperation(c260013011.limop)
c:RegisterEffect(e10) c:RegisterEffect(e10)
--【ここまでX召喚ルール】 --【ここまでX召喚ルール】
--immune --immune
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_IMMUNE_EFFECT) e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetValue(c260013011.efilter1) e1:SetValue(c260013011.efilter1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--destroy --destroy
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(260013011,2)) e2:SetDescription(aux.Stringid(260013011,2))
e2:SetCategory(CATEGORY_DESTROY) e2:SetCategory(CATEGORY_DESTROY)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetHintTiming(0,0x1e0) e2:SetHintTiming(0,0x1e0)
e2:SetCost(c260013011.descost) e2:SetCost(c260013011.descost)
e2:SetTarget(c260013011.destg) e2:SetTarget(c260013011.destg)
e2:SetOperation(c260013011.desop) e2:SetOperation(c260013011.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--spsummon --spsummon
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK+CATEGORY_SPECIAL_SUMMON) e3:SetCategory(CATEGORY_TODECK+CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1) e3:SetCountLimit(1)
e3:SetCode(EVENT_PHASE+PHASE_END) e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetTarget(c260013011.sptg2) e3:SetTarget(c260013011.sptg2)
e3:SetOperation(c260013011.spop2) e3:SetOperation(c260013011.spop2)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
--【召喚ルール】 --【召喚ルール】
function c260013011.cfilter(c,xyzc,tp) function c260013011.cfilter(c,xyzc,tp)
return c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsSetCard(0x943) and c:IsType(TYPE_LINK) return c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsSetCard(0x943) and c:IsType(TYPE_LINK)
and c:IsCanBeXyzMaterial(xyzc) and c:IsFaceup() and c:IsCanBeXyzMaterial(xyzc) and c:IsFaceup()
end end
function c260013011.chcon(e,tp,eg,ep,ev,re,r,rp) function c260013011.chcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end if not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS) local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
return g and g:IsExists(c260013011.cfilter,1,nil,c,tp) and Duel.IsChainNegatable(ev) and re:GetHandler():IsRelateToEffect(re) return g and g:IsExists(c260013011.cfilter,1,nil,c,tp) and Duel.IsChainNegatable(ev) and re:GetHandler():IsRelateToEffect(re)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false)
end end
function c260013011.xyzfilter(c,e,tp,xyzc) function c260013011.xyzfilter(c,e,tp,xyzc)
return not c:IsType(TYPE_TOKEN) and (c:IsCanBeXyzMaterial(xyzc) or not c:IsType(TYPE_MONSTER)) return not c:IsType(TYPE_TOKEN) and (c:IsCanBeXyzMaterial(xyzc) or not c:IsType(TYPE_MONSTER))
end end
function c260013011.xyzfilter2(c,e,tp) function c260013011.xyzfilter2(c,e,tp)
return not c:IsType(TYPE_TOKEN) return not c:IsType(TYPE_TOKEN)
end end
function c260013011.chop(e,tp,eg,ep,ev,re,r,rp) function c260013011.chop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local rc=re:GetHandler() local rc=re:GetHandler()
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS):Filter(c260013011.xyzfilter,nil,e,tp,c) local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS):Filter(c260013011.xyzfilter,nil,e,tp,c)
local g2=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS):Filter(c260013011.xyzfilter2,nil,e,tp) local g2=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS):Filter(c260013011.xyzfilter2,nil,e,tp)
if Duel.GetFlagEffect(tp,260013011)==0 and g:GetCount()>0 and g:GetCount()==g2:GetCount() and rc:IsRelateToEffect(re) if Duel.GetFlagEffect(tp,260013011)==0 and g:GetCount()>0 and g:GetCount()==g2:GetCount() and rc:IsRelateToEffect(re)
and Duel.IsChainNegatable(ev) and Duel.GetLocationCountFromEx(tp,tp,g,c)>0 and Duel.SelectYesNo(tp,aux.Stringid(260013011,0)) then and Duel.IsChainNegatable(ev) and Duel.GetLocationCountFromEx(tp,tp,g,c)>0 and Duel.SelectYesNo(tp,aux.Stringid(260013011,0)) then
Duel.ConfirmCards(1-tp,c) Duel.ConfirmCards(1-tp,c)
Duel.RegisterFlagEffect(tp,260013011,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,260013011,RESET_PHASE+PHASE_END,0,1)
if Duel.NegateEffect(ev) then if Duel.NegateEffect(ev) then
rc:CancelToGrave() rc:CancelToGrave()
g:AddCard(rc) g:AddCard(rc)
local tc=g:GetFirst() local tc=g:GetFirst()
while tc do while tc do
local og=tc:GetOverlayGroup() local og=tc:GetOverlayGroup()
if og:GetCount()>0 then if og:GetCount()>0 then
Duel.SendtoGrave(og,REASON_RULE) Duel.SendtoGrave(og,REASON_RULE)
end end
tc:RegisterFlagEffect(260013011,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) tc:RegisterFlagEffect(260013011,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc=g:GetNext() tc=g:GetNext()
end end
Duel.XyzSummon(tp,c,nil) Duel.XyzSummon(tp,c,nil)
end end
end end
end end
function c260013011.atcon(e,tp,eg,ep,ev,re,r,rp) function c260013011.atcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=eg:GetFirst() local tc=eg:GetFirst()
return tc:IsControler(tp) and tc:IsFaceup() and tc:IsSetCard(0x943) and not tc:IsType(TYPE_TOKEN) and tc:IsType(TYPE_LINK) return tc:IsControler(tp) and tc:IsFaceup() and tc:IsSetCard(0x943) and not tc:IsType(TYPE_TOKEN) and tc:IsType(TYPE_LINK)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false)
end end
function c260013011.atop(e,tp,eg,ep,ev,re,r,rp) function c260013011.atop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local a=Duel.GetAttacker() local a=Duel.GetAttacker()
local d=Duel.GetAttackTarget() local d=Duel.GetAttackTarget()
if not (Duel.GetLocationCountFromEx(tp,tp,a,c)>0 or Duel.GetLocationCountFromEx(tp,tp,d,c)>0) then return end if not (Duel.GetLocationCountFromEx(tp,tp,a,c)>0 or Duel.GetLocationCountFromEx(tp,tp,d,c)>0) then return end
if not a:IsRelateToEffect(e) and a:IsAttackable() and not a:IsStatus(STATUS_ATTACK_CANCELED) if not a:IsRelateToEffect(e) and a:IsAttackable() and not a:IsStatus(STATUS_ATTACK_CANCELED)
and a:IsCanBeXyzMaterial(c) and d:IsCanBeXyzMaterial(c) and a:IsCanBeXyzMaterial(c) and d:IsCanBeXyzMaterial(c)
and not d:IsRelateToEffect(e) and Duel.SelectYesNo(tp,aux.Stringid(260013011,0)) then and not d:IsRelateToEffect(e) and Duel.SelectYesNo(tp,aux.Stringid(260013011,0)) then
Duel.ConfirmCards(1-tp,c) Duel.ConfirmCards(1-tp,c)
if Duel.NegateAttack() then if Duel.NegateAttack() then
local g=Group.FromCards(a,d) local g=Group.FromCards(a,d)
local tc=g:GetFirst() local tc=g:GetFirst()
while tc do while tc do
local og=tc:GetOverlayGroup() local og=tc:GetOverlayGroup()
if og:GetCount()>0 then if og:GetCount()>0 then
Duel.SendtoGrave(og,REASON_RULE) Duel.SendtoGrave(og,REASON_RULE)
end end
tc:RegisterFlagEffect(260013011,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) tc:RegisterFlagEffect(260013011,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc=g:GetNext() tc=g:GetNext()
end end
Duel.XyzSummon(tp,c,nil) Duel.XyzSummon(tp,c,nil)
end end
end end
end end
function c260013011.mfilter(c,xyzc) function c260013011.mfilter(c,xyzc)
return c:GetFlagEffect(260013011)~=0 and (c:IsCanBeXyzMaterial(xyzc) or not c:IsType(TYPE_MONSTER)) return c:GetFlagEffect(260013011)~=0 and (c:IsCanBeXyzMaterial(xyzc) or not c:IsType(TYPE_MONSTER))
end end
function c260013011.xyzcon(e,c,og,min,max) function c260013011.xyzcon(e,c,og,min,max)
if c==nil then return true end if c==nil then return true end
local tp=c:GetControler() local tp=c:GetControler()
local mg=nil local mg=nil
if og then if og then
mg=og:Filter(c260013011.mfilter,nil,c) mg=og:Filter(c260013011.mfilter,nil,c)
else else
mg=Duel.GetMatchingGroup(c260013011.mfilter,tp,0xff,0xff,nil,c) mg=Duel.GetMatchingGroup(c260013011.mfilter,tp,0xff,0xff,nil,c)
end end
return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1 return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and mg:GetCount()>0 and mg:GetCount()>0
end end
function c260013011.xyzop(e,tp,eg,ep,ev,re,r,rp,c,og,min,max) function c260013011.xyzop(e,tp,eg,ep,ev,re,r,rp,c,og,min,max)
local c=e:GetHandler() local c=e:GetHandler()
local g=nil local g=nil
local sg=Group.CreateGroup() local sg=Group.CreateGroup()
local xyzg=Group.CreateGroup() local xyzg=Group.CreateGroup()
if og then if og then
g=og g=og
local tc=og:GetFirst() local tc=og:GetFirst()
else else
local mg=nil local mg=nil
if og then if og then
mg=og:Filter(c260013011.mfilter,nil,c) mg=og:Filter(c260013011.mfilter,nil,c)
else else
mg=Duel.GetMatchingGroup(c260013011.mfilter,tp,0xff,0xff,nil,c) mg=Duel.GetMatchingGroup(c260013011.mfilter,tp,0xff,0xff,nil,c)
end end
local ct=mg:GetCount() local ct=mg:GetCount()
xyzg:Merge(mg) xyzg:Merge(mg)
end end
c:SetMaterial(xyzg) c:SetMaterial(xyzg)
Duel.Overlay(c,xyzg) Duel.Overlay(c,xyzg)
end end
function c260013011.splimit(e,se,sp,st) function c260013011.splimit(e,se,sp,st)
return not e:GetHandler():IsLocation(LOCATION_EXTRA) or (bit.band(st,SUMMON_TYPE_XYZ)==SUMMON_TYPE_XYZ and se:GetHandler():IsCode(260013011)) return not e:GetHandler():IsLocation(LOCATION_EXTRA) or (bit.band(st,SUMMON_TYPE_XYZ)==SUMMON_TYPE_XYZ and se:GetHandler():IsCode(260013011))
end end
function c260013011.limop(e,tp,eg,ep,ev,re,r,rp) function c260013011.limop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentChain()==0 then return end if Duel.GetCurrentChain()==0 then return end
Duel.SetChainLimitTillChainEnd(c260013011.chlimit) Duel.SetChainLimitTillChainEnd(c260013011.chlimit)
end end
function c260013011.chlimit(e,rp,tp) function c260013011.chlimit(e,rp,tp)
return e:IsActiveType(TYPE_TRAP) and e:GetHandler():IsType(TYPE_COUNTER) return e:IsActiveType(TYPE_TRAP) and e:GetHandler():IsType(TYPE_COUNTER)
end end
--【モンスター効果耐性】 --【モンスター効果耐性】
function c260013011.efilter1(e,te) function c260013011.efilter1(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:IsActiveType(TYPE_MONSTER) return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:IsActiveType(TYPE_MONSTER)
end end
--【破壊効果】 --【破壊効果】
function c260013011.descost(e,tp,eg,ep,ev,re,r,rp,chk) function c260013011.descost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_OATH) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_OATH)
e1:SetCode(EFFECT_CANNOT_ATTACK) e1:SetCode(EFFECT_CANNOT_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e:GetHandler():RegisterEffect(e1) e:GetHandler():RegisterEffect(e1)
end end
function c260013011.destg(e,tp,eg,ep,ev,re,r,rp,chk) function c260013011.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil) local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end end
function c260013011.desop(e,tp,eg,ep,ev,re,r,rp) function c260013011.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil) local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil)
Duel.Destroy(g,REASON_EFFECT) Duel.Destroy(g,REASON_EFFECT)
end end
--【EXデッキ帰還】 --【EXデッキ帰還】
function c260013011.spfilter(c,e,tp) function c260013011.spfilter(c,e,tp)
return c:IsSetCard(0x943) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsType(TYPE_XYZ) return c:IsSetCard(0x943) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsType(TYPE_XYZ)
end end
function c260013011.sptg2(e,tp,eg,ep,ev,re,r,rp,chk) function c260013011.sptg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end end
function c260013011.spop2(e,tp,eg,ep,ev,re,r,rp) function c260013011.spop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
Duel.SendtoDeck(c,nil,2,REASON_EFFECT) Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
if c:IsLocation(LOCATION_EXTRA) then if c:IsLocation(LOCATION_EXTRA) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g=Duel.GetMatchingGroup(c260013011.spfilter,tp,LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(c260013011.spfilter,tp,LOCATION_GRAVE,0,nil,e,tp)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(260013011,1)) then if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(260013011,1)) then
Duel.BreakEffect() Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil) local sg=g:Select(tp,1,1,nil)
Duel.SpecialSummon(sg,0,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(sg,0,tp,tp,true,false,POS_FACEUP)
end end
end end
end end
\ No newline at end of file
...@@ -721,6 +721,7 @@ function yume.stellar_memories.BanishorSendSpell(sid,tp,msg1,msg2) ...@@ -721,6 +721,7 @@ function yume.stellar_memories.BanishorSendSpell(sid,tp,msg1,msg2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=g2:Select(tp,1,1,nil) local g=g2:Select(tp,1,1,nil)
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT) Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end end
--filters for common spell effects --filters for common spell effects
function yume.stellar_memories.SpellActivationBanishFilter(c,cid,tp) function yume.stellar_memories.SpellActivationBanishFilter(c,cid,tp)
...@@ -733,16 +734,18 @@ function yume.stellar_memories.SpellActivationSendFilter(c,lid) ...@@ -733,16 +734,18 @@ function yume.stellar_memories.SpellActivationSendFilter(c,lid)
return c:IsCode(lid) and c:IsAbleToExtra() return c:IsCode(lid) and c:IsAbleToExtra()
end end
function yume.stellar_memories.BanishedSpellCon(cid) function yume.stellar_memories.BanishedSpellCon(cid)
return function(e,tp,eg,ep,ev,re,r,rp) return function(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsCode(cid) return re and re:GetHandler():IsCode(cid)
end
end end
--spell for low level and low link --spell for low level and low link
function yume.stellar_memories.LowSpellActivationTg(rid,lid) function yume.stellar_memories.LowSpellActivationTg(rid,lid)
return function(e,tp,eg,ep,ev,re,r,rp,chk) return function(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
return Duel.IsExistingMatchingCard(yume.stellar_memories.SpellActivationSearchFilter,tp,LOCATION_DECK,0,1,nil,rid) return Duel.IsExistingMatchingCard(yume.stellar_memories.SpellActivationSearchFilter,tp,LOCATION_DECK,0,1,nil,rid)
or Duel.IsExistingMatchingCard(yume.stellar_memories.SpellActivationBanishFilter,tp,LOCATION_EXTRA,0,1,nil,lid,tp) or Duel.IsExistingMatchingCard(yume.stellar_memories.SpellActivationBanishFilter,tp,LOCATION_EXTRA,0,1,nil,lid,tp)
end end
end
end end
function yume.stellar_memories.LowSpellActivationOp(rid,lid,msg1,msg2) function yume.stellar_memories.LowSpellActivationOp(rid,lid,msg1,msg2)
return function(e,tp,eg,ep,ev,re,r,rp) return function(e,tp,eg,ep,ev,re,r,rp)
...@@ -761,6 +764,7 @@ function yume.stellar_memories.LowSpellActivationOp(rid,lid,msg1,msg2) ...@@ -761,6 +764,7 @@ function yume.stellar_memories.LowSpellActivationOp(rid,lid,msg1,msg2)
local g=g2:Select(tp,1,1,nil) local g=g2:Select(tp,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_EFFECT) Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end end
end
end end
function yume.stellar_memories.LinkSummonFilter(c) function yume.stellar_memories.LinkSummonFilter(c)
return c:IsLinkSummonable(nil) and c:IsRace(RACE_SPELLCASTER) return c:IsLinkSummonable(nil) and c:IsRace(RACE_SPELLCASTER)
......
...@@ -81,58 +81,57 @@ function s.tg3(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -81,58 +81,57 @@ function s.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function s.op3(e,tp,eg,ep,ev,re,r,rp) function s.op3(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<0 then return end if ft<0 then return end
::cancel:: ::cancel::
local mat_location=LOCATION_GRAVE+LOCATION_REMOVED local mat_location=LOCATION_GRAVE+LOCATION_REMOVED
local summon_location=LOCATION_GRAVE+LOCATION_REMOVED local summon_location=LOCATION_GRAVE+LOCATION_REMOVED
local greater_or_equal="Greater" local greater_or_equal="Greater"
local mg=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.MultiRitualToDeckFilter),tp,mat_location,0,nil,tp) local mg=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.MultiRitualToDeckFilter),tp,mat_location,0,nil,tp)
if ft==0 then if ft==0 then
mg=mg:Filter(yume.stellar_memories.MainZoneFilter,nil,tp) mg=mg:Filter(yume.stellar_memories.MainZoneFilter,nil,tp)
end end
mg=mg:Filter(yume.stellar_memories.MultiRitualSelectToUseFilter,nil,e,tp,summon_location,Card.GetLink,greater_or_equal) mg=mg:Filter(yume.stellar_memories.MultiRitualSelectToUseFilter,nil,e,tp,summon_location,Card.GetLink,greater_or_equal)
if mg:GetCount()==0 then return end if mg:GetCount()==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local mat=mg:Select(tp,1,1,nil) local mat=mg:Select(tp,1,1,nil)
local mc=mat:GetFirst() local mc=mat:GetFirst()
local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(yume.stellar_memories.MultiRitualSelectToSummonFilter),tp,summon_location,0,mc,e,tp,mc,Card.GetLink,greater_or_equal) local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(yume.stellar_memories.MultiRitualSelectToSummonFilter),tp,summon_location,0,mc,e,tp,mc,Card.GetLink,greater_or_equal)
if sg:GetCount()==0 then return end if sg:GetCount()==0 then return end
if mc:IsLocation(LOCATION_MZONE) then ft=ft+1 end if mc:IsLocation(LOCATION_MZONE) then ft=ft+1 end
if ct and ct<ft then ft=ct end if ct and ct<ft then ft=ct end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
--Ritual Summon 1 monster with ritual Level --Ritual Summon 1 monster with ritual Level
local b1=sg:IsExists(yume.stellar_memories.MultiRitualRitualLevelCheck,1,nil,mc,Card.GetLink,greater_or_equal) local b1=sg:IsExists(yume.stellar_memories.MultiRitualRitualLevelCheck,1,nil,mc,Card.GetLink,greater_or_equal)
--Ritual Summon 1+ monsters with Link Rating --Ritual Summon 1+ monsters with Link Rating
local b2=sg:IsExists(yume.stellar_memories.MultiRitualLevelCheck,1,nil,mc,Card.GetLink,greater_or_equal) local b2=sg:IsExists(yume.stellar_memories.MultiRitualLevelCheck,1,nil,mc,Card.GetLink,greater_or_equal)
if b1 and (not b2 or Duel.SelectYesNo(tp,aux.Stringid(71404000,4))) then if b1 and (not b2 or Duel.SelectYesNo(tp,aux.Stringid(71404000,4))) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc=sg:Filter(yume.stellar_memories.MultiRitualRitualLevelCheck,nil,mc,Card.GetLink,greater_or_equal):SelectUnselect(nil,tp,false,true,1,1) local tc=sg:Filter(yume.stellar_memories.MultiRitualRitualLevelCheck,nil,mc,Card.GetLink,greater_or_equal):SelectUnselect(nil,tp,false,true,1,1)
if not tc then goto cancel end if not tc then goto cancel end
tc:SetMaterial(mat)
Duel.SendtoDeck(mc,nil,SEQ_DECKTOP,REASON_EFFECT+REASON_MATERIAL+REASON_RITUAL)
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure()
else
local lv=mc:GetLink()*2
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)aux.GCheckAdditional=yume.stellar_memories.MultiRitualCheckAdditional(lv)
local tg=mg:SelectSubGroup(tp,yume.stellar_memories.MultiRitualFSelect,true,1,ft,tp,lv)
aux.GCheckAdditional=nil
if not tg then goto cancel end
local tc=tg:GetFirst()
while tc do
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.SendtoDeck(mc,nil,SEQ_DECKTOP,REASON_EFFECT+REASON_MATERIAL+REASON_RITUAL) tc=tg:GetNext()
Duel.BreakEffect() end
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP) Duel.SendtoDeck(mat,nil,SEQ_DECKTOP,REASON_EFFECT+REASON_MATERIAL+REASON_RITUAL)
Duel.BreakEffect()
tc=tg:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
else tc=tg:GetNext()
local lv=mc:GetLink()*2
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)aux.GCheckAdditional=yume.stellar_memories.MultiRitualCheckAdditional(lv)
local tg=mg:SelectSubGroup(tp,yume.stellar_memories.MultiRitualFSelect,true,1,ft,tp,lv)
aux.GCheckAdditional=nil
if not tg then goto cancel end
local tc=tg:GetFirst()
while tc do
tc:SetMaterial(mat)
tc=tg:GetNext()
end
Duel.SendtoDeck(mat,nil,SEQ_DECKTOP,REASON_EFFECT+REASON_MATERIAL+REASON_RITUAL)
Duel.BreakEffect()
tc=tg:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure()
tc=tg:GetNext()
end
Duel.SpecialSummonComplete()
end end
Duel.SpecialSummonComplete()
end end
end end
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment