Commit 09e87a36 authored by root's avatar root

Refresh on 2024-07-05 11:36:52

parent 215d58ff
--炼金兽·铁之火蜥蜴
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412006)
c:EnableReviveLimit()
--special summon limit
local e1=Effect.CreateEffect(c)
......
--炼金兽·汞之䲟鱼
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412007)
c:EnableReviveLimit()
--special summon limit
local e1=Effect.CreateEffect(c)
......
--炼金兽·铜之衔尾蛇
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412008)
c:EnableReviveLimit()
--special summon limit
local e1=Effect.CreateEffect(c)
......
--炼金兽·银之月颜
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412009)
c:EnableReviveLimit()
--special summon limit
local e1=Effect.CreateEffect(c)
......
--炼金兽·铅之狮子
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412010)
c:EnableReviveLimit()
--special summon limit
local e1=Effect.CreateEffect(c)
......@@ -98,7 +98,8 @@ function s.ope(e,tp,eg,ep,ev,re,r,rp)
end
end
function s.filter(c)
return c:IsFaceup() and c:IsCanTurnSet()
return c:IsFaceup() and c:IsCanTurnSet()
and not (c:IsLocation(LOCATION_SZONE) and c:GetOriginalType()&TYPE_MONSTER>0)
end
function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and s.filter(chkc) end
......
--炼金兽·锡之鹫
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412011)
c:EnableReviveLimit()
--special summon limit
local e1=Effect.CreateEffect(c)
......
--铁之油灯
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412000)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
......@@ -82,6 +82,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,true,true,POS_FACEUP)
g:GetFirst():CompleteProcedure()
end
end
function s.costfilter(c)
......
--汞之沙漏
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412001)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
......@@ -81,6 +81,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,true,true,POS_FACEUP)
g:GetFirst():CompleteProcedure()
end
end
function s.costfilter(c)
......
--铜之天秤
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412002)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
......@@ -82,6 +82,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,true,true,POS_FACEUP)
g:GetFirst():CompleteProcedure()
end
end
function s.costfilter(c)
......
--银之钥匙
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412003)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
......@@ -82,6 +82,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,true,true,POS_FACEUP)
g:GetFirst():CompleteProcedure()
end
end
function s.costfilter(c)
......
--铅之罗盘
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412004)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
......@@ -82,6 +82,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,true,true,POS_FACEUP)
g:GetFirst():CompleteProcedure()
end
end
function s.costfilter(c)
......
--锡之魔法阵
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
aux.AddCodeList(c,40412012,40412005)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
......@@ -82,6 +82,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,true,true,POS_FACEUP)
g:GetFirst():CompleteProcedure()
end
end
function s.costfilter(c)
......
--炼禁兽·火之伊夫利特
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
--fusion material
c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,s.ffilter,2,false)
--spsummon condition
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(s.splimit)
c:RegisterEffect(e1)
--special summon rule
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(s.sprcon)
e2:SetTarget(s.sptg)
e2:SetOperation(s.sprop)
c:RegisterEffect(e2)
--diratk
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DIRECT_ATTACK)
e3:SetCondition(s.dircon)
c:RegisterEffect(e3)
--inactivatable
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_INACTIVATE)
e4:SetRange(LOCATION_MZONE)
e4:SetValue(s.effectfilter)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_CANNOT_DISEFFECT)
e5:SetRange(LOCATION_MZONE)
e5:SetValue(s.effectfilter)
c:RegisterEffect(e5)
--battle indestructable
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e6:SetCondition(s.dircon)
e6:SetValue(1)
c:RegisterEffect(e6)
--effect
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e7:SetProperty(EFFECT_FLAG_DELAY)
e7:SetCode(EVENT_SPSUMMON_SUCCESS)
e7:SetCountLimit(1,id)
e7:SetCost(s.cost)
e7:SetTarget(s.efftg)
e7:SetOperation(s.effop)
c:RegisterEffect(e7)
Duel.AddCustomActivityCounter(40412018,ACTIVITY_SPSUMMON,s.counterfilter)
end
function s.counterfilter(c)
return not c:IsSummonableCard()
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCustomActivityCount(40412018,tp,ACTIVITY_SPSUMMON)==0 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetTarget(s.splimit0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_SUMMON)
Duel.RegisterEffect(e2,tp)
local e3=e1:Clone()
e3:SetCode(EFFECT_CANNOT_MSET)
Duel.RegisterEffect(e3,tp)
--cant special summon summonable card check
local e4=Effect.CreateEffect(e:GetHandler())
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(97148796)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e4:SetTargetRange(1,0)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
end
function s.splimit0(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsSummonableCard()
end
function s.ffilter(c)
return c:IsRace(RACE_ROCK) and not c:IsSummonableCard()
end
function s.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_FUSION)==SUMMON_TYPE_FUSION
end
function s.filter(c)
return s.ffilter(c) and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL)
end
function s.fselect(g,tp,sc)
return g:IsExists(s.filter,1,nil) and aux.mzctcheckrel(g,tp,REASON_SPSUMMON)
and Duel.GetLocationCountFromEx(tp,tp,g,sc)>0
end
function s.sprfilter(c)
return c:IsFaceup() and c:IsCode(40412012,30241314)
end
function s.dircon(e)
return Duel.IsExistingMatchingCard(s.sprfilter,e:GetHandler():GetControler(),LOCATION_ONFIELD,0,1,nil)
end
function s.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local rg=Duel.GetReleaseGroup(tp,false,REASON_SPSUMMON)
return rg:CheckSubGroup(s.fselect,2,2,tp,c) and Duel.IsExistingMatchingCard(s.sprfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local g=Duel.GetReleaseGroup(tp,false,REASON_SPSUMMON)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local sg=g:SelectSubGroup(tp,s.fselect,true,2,2,tp,c)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
function s.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local g=e:GetLabelObject()
c:SetMaterial(g)
Duel.Release(g,POS_FACEUP,REASON_SPSUMMON)
g:DeleteGroup()
end
function s.effectfilter(e,ct)
local p=e:GetHandler():GetControler()
local te,tp,loc=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER,CHAININFO_TRIGGERING_LOCATION)
return p==tp and te:IsActiveType(TYPE_SPELL+TYPE_TRAP) and bit.band(loc,LOCATION_ONFIELD)~=0
and te:GetHandler():IsCode(40412006,40412007,40412008,40412009,40412010,40412011,40412012,
40412013,40412014,40412015,40412016,40412017,40412024,40412025)
end
function s.thfilter(c)
return aux.IsCodeListed(c,40412012) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand()
end
function s.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK,0,1,nil) end
e:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function s.effop(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)
local g=Duel.GetMatchingGroup(s.thfilter,tp,LOCATION_DECK,0,nil)
if ct<=0 or g:GetCount()==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ct)
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
end
--炼禁兽·水之温蒂妮
local s,id,o=GetID()
function s.initial_effect(c)
--synchro summon
c:EnableReviveLimit()
aux.AddSynchroMixProcedure(c,s.matfilter1,nil,nil,s.matfilter2,2,99)
--deck
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,3))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DECKDES)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCountLimit(1,id)
e1:SetCondition(s.condition)
e1:SetCost(s.cost)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
--remove
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(id,4))
e4:SetCategory(CATEGORY_TODECK+CATEGORY_DRAW+CATEGORY_RECOVER)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e4:SetCode(EVENT_REMOVE)
e4:SetTarget(s.rmtg)
c:RegisterEffect(e4)
--damage
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(id,4))
e5:SetCategory(CATEGORY_TODECK+CATEGORY_DRAW+CATEGORY_RECOVER)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_BATTLE_DAMAGE)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
e5:SetCondition(s.drcon)
e5:SetTarget(s.rmtg)
c:RegisterEffect(e5)
--remove
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(id,5))
e6:SetCategory(CATEGORY_TOGRAVE+CATEGORY_REMOVE+CATEGORY_TODECK)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e6:SetProperty(FFECT_FLAG_DELAY)
e6:SetRange(LOCATION_MZONE)
e6:SetCode(EVENT_REMOVE)
e6:SetCountLimit(1,id+o)
e6:SetTarget(s.remtg)
e6:SetOperation(s.remop)
c:RegisterEffect(e6)
Duel.AddCustomActivityCounter(40412019,ACTIVITY_SPSUMMON,s.counterfilter)
end
function s.counterfilter(c)
return not c:IsSummonableCard()
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCustomActivityCount(40412019,tp,ACTIVITY_SPSUMMON)==0 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetTarget(s.splimit0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_SUMMON)
Duel.RegisterEffect(e2,tp)
local e3=e1:Clone()
e3:SetCode(EFFECT_CANNOT_MSET)
Duel.RegisterEffect(e3,tp)
--cant special summon summonable card check
local e4=Effect.CreateEffect(e:GetHandler())
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(97148796)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e4:SetTargetRange(1,0)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
end
function s.splimit0(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsSummonableCard()
end
function s.matfilter1(c,syncard)
return c:IsTuner(syncard) or c:IsSetCard(0x3cfe)
end
function s.matfilter2(c,syncard)
return c:IsNotTuner(syncard) and c:IsRace(RACE_ROCK) and not c:IsSummonableCard()
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanRemove(tp)
and Duel.IsPlayerCanSpecialSummon(tp)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and not Duel.IsPlayerAffectedByEffect(tp,63060238)
and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>3 end
end
function s.filter(c,e,tp)
return c:IsSetCard(0x3cfe) and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not Duel.IsPlayerCanRemove(tp) then return end
Duel.ConfirmDecktop(tp,4)
local g=Duel.GetDecktopGroup(tp,4)
local sg=g:Filter(s.filter,nil,e,tp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft>1 and Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
if g:GetCount()>0 then
Duel.DisableShuffleCheck()
if sg:GetCount()>0 and ft>0 then
if sg:GetCount()>ft then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
sg=sg:Select(tp,ft,ft,nil)
end
g:Sub(sg)
local tc=sg:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,0,tp,tp,true,false,POS_FACEUP)
tc=sg:GetNext()
end
Duel.SpecialSummonComplete()
end
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
end
function s.remtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,0,LOCATION_ONFIELD)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,0,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,0,LOCATION_REMOVED)
end
function s.remop(e,tp,eg,ep,ev,re,r,rp)
local g1=Duel.GetMatchingGroup(Card.IsAbleToGrave,tp,0,LOCATION_ONFIELD,nil)
local g2=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_GRAVE,nil)
local g3=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_REMOVED,nil)
local sg=Group.CreateGroup()
if g1:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(id,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local sg1=g1:Select(tp,1,1,nil)
Duel.HintSelection(sg1)
Duel.SendtoGrave(sg1,REASON_EFFECT)
end
if g2:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg2=g2:Select(tp,1,1,nil)
Duel.HintSelection(sg2)
Duel.Remove(sg2,POS_FACEUP,REASON_EFFECT)
end
if g3:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg3=g3:Select(tp,1,1,nil)
Duel.HintSelection(sg3)
Duel.SendtoDeck(sg3,nil,SEQ_DECKTOP,REASON_EFFECT)
end
end
function s.drcon(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp
end
function s.tdfilter(c)
return (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup()) and c:IsAbleToDeck()
end
function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE+LOCATION_REMOVED) and chkc:IsControler(tp) and s.tdfilter(chkc) end
if chk==0 then return Duel.IsPlayerCanDraw(tp,1)
and Duel.IsExistingTarget(s.tdfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectTarget(tp,s.tdfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,99,nil)
e:SetOperation(s.rmop)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,g:GetCount()*200)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function s.rmop(e,tp,eg,ep,ev,re,r,rp)
local tg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if tg:GetCount()>0 then
Duel.SendtoDeck(tg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
Duel.BreakEffect()
local g=Duel.GetOperatedGroup()
if g:IsExists(Card.IsLocation,1,nil,LOCATION_DECK) then Duel.ShuffleDeck(tp) end
local ct=g:FilterCount(Card.IsLocation,nil,LOCATION_DECK+LOCATION_EXTRA)
if ct>0 then
Duel.Recover(tp,ct*200,REASON_EFFECT)
if ct>3 then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
end
end
--炼禁兽·风之希尔芙
local s,id,o=GetID()
function s.initial_effect(c)
c:SetUniqueOnField(1,0,id)
--xyz summon
aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsRace,RACE_ROCK),3,2,nil,nil,99)
c:EnableReviveLimit()
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,id)
e1:SetCondition(s.condition)
e1:SetCost(s.spcost)
e1:SetTarget(s.sptg)
c:RegisterEffect(e1)
--attack
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_ATKCHANGE)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_BATTLE_DAMAGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(s.thcon)
e2:SetTarget(s.thtg)
e2:SetOperation(s.thop)
c:RegisterEffect(e2)
--draw
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,2))
e3:SetCategory(CATEGORY_DRAW+CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_PHASE+PHASE_BATTLE)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,id+o)
e3:SetCondition(s.drcon)
e3:SetTarget(s.drtg)
e3:SetOperation(s.drop)
c:RegisterEffect(e3)
if not s.global_check then
s.global_check=true
local ge1=Effect.GlobalEffect()
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_ATTACK_ANNOUNCE)
ge1:SetOperation(s.checkop)
Duel.RegisterEffect(ge1,0)
end
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2
end
function s.spfilter(c,e,tp)
return c:IsSetCard(0x3cfe) and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
and (not c:IsLocation(LOCATION_REMOVED) or c:IsFaceup())
end
function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if chk==0 then return ft>0 and c:CheckRemoveOverlayCard(tp,1,REASON_COST) end
local rt=Duel.GetMatchingGroupCount(s.spfilter,tp,LOCATION_DECK+LOCATION_REMOVED,0,nil,e,tp)
if rt>ft then rt=ft end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then rt=1 end
local ct=c:RemoveOverlayCard(tp,1,rt,REASON_COST)
e:SetLabel(ct)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=e:GetLabel()
if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK+LOCATION_REMOVED,0,ct,nil,e,tp) end
e:SetOperation(s.spop)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,ct,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
local ct=e:GetLabel()
if ct>ft then ct=ft end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local dg=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_DECK+LOCATION_REMOVED,0,ct,ct,nil,e,tp)
if dg:GetCount()>0 then
Duel.SpecialSummon(dg,0,tp,tp,true,false,POS_FACEUP)
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetValue(1)
Duel.RegisterEffect(e1,tp)
end
function s.thcon(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return ep~=tp and tc:IsControler(tp) and tc:IsSetCard(0x3cfe)
end
function s.filter(c)
return c:IsFaceup() and c:IsSetCard(0x3cfe)
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.atkfilter,tp,LOCATION_MZONE,0,1,e:GetHandler()) end
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(s.atkfilter,tp,LOCATION_MZONE,0,e:GetHandler())
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetValue(tc:GetAttack()*2)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
tc=g:GetNext()
end
end
function s.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,40412020,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(1-tp,40412020,RESET_PHASE+PHASE_END,0,1)
end
function s.drcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,40412020)~=0
end
function s.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=Duel.GetFlagEffect(tp,40412020)
if chk==0 then return ct and Duel.IsPlayerCanDraw(tp,ct) end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,ct)
end
function s.drop(e,tp,eg,ep,ev,re,r,rp)
local turnp=Duel.GetTurnPlayer()
local ct=Duel.GetFlagEffect(tp,40412020)
if Duel.Draw(tp,ct,REASON_EFFECT)~=0 then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,ct,ct,nil)
if g:GetCount()>0 then
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
Duel.ShuffleHand(tp)
end
end
end
--炼禁兽·地之诺姆
local s,id,o=GetID()
function s.initial_effect(c)
c:SetUniqueOnField(1,0,id)
aux.AddCodeList(c,40412012)
aux.AddLinkProcedure(c,s.matfilter,2)
--to field
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCountLimit(1,id)
e1:SetCondition(s.drcon)
e1:SetOperation(s.regop)
c:RegisterEffect(e1)
--atk
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(s.atktg)
e2:SetValue(s.atkval)
c:RegisterEffect(e2)
--special summon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(s.tkcon)
e3:SetCost(s.cost)
e3:SetTarget(s.tktg)
e3:SetOperation(s.tkop)
c:RegisterEffect(e3)
Duel.AddCustomActivityCounter(40412021,ACTIVITY_SPSUMMON,s.counterfilter)
end
function s.counterfilter(c)
return not c:IsSummonableCard()
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCustomActivityCount(40412021,tp,ACTIVITY_SPSUMMON)==0 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetTarget(s.splimit0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_SUMMON)
Duel.RegisterEffect(e2,tp)
local e3=e1:Clone()
e3:SetCode(EFFECT_CANNOT_MSET)
Duel.RegisterEffect(e3,tp)
--cant special summon summonable card check
local e4=Effect.CreateEffect(e:GetHandler())
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(97148796)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e4:SetTargetRange(1,0)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
end
function s.splimit0(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsSummonableCard()
end
function s.matfilter(c)
return c:IsRace(RACE_ROCK) and not c:IsSummonableCard()
end
function s.atktg(e,c)
return c==e:GetHandler()
or c:IsFaceup() and c:IsSetCard(0x3cfe) and e:GetHandler():GetLinkedGroup():IsContains(c)
end
function s.atkval(e,c)
return Duel.GetFieldGroupCount(c:GetControler(),LOCATION_REMOVED,0)*50
end
function s.drcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function s.regop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
--e1:SetCondition(s.tftg)
e1:SetOperation(s.tfop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function s.tffilter(c,tp)
return c:IsCode(30241314) and not c:IsForbidden() and c:CheckUniqueOnField(tp)
end
function s.filter(c,e,tp)
return c:GetTextAttack()<0 and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.tftg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.tffilter,tp,LOCATION_DECK,0,1,nil,tp)
and Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function s.tfop(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.GetMatchingGroup(s.tffilter,tp,LOCATION_DECK,0,nil,tp)
local sg2=Duel.GetMatchingGroup(s.filter,tp,LOCATION_DECK,0,nil,e,tp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 or Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
if sg:GetCount()<=0 or sg2:GetCount()<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,s.tffilter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc and Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)~=0 then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g2:GetCount()>0 then
Duel.SpecialSummon(g2,0,tp,tp,false,false,POS_FACEUP)
end
end
end
function s.cfilter2(c,tp)
return c:IsSummonPlayer(tp) and c:IsSetCard(0x3cfe) and c:IsFaceup()
and c:GetSpecialSummonInfo(SUMMON_INFO_TYPE)&TYPE_SPELL~=0
end
function s.tkcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(s.cfilter2,1,nil,tp)
end
function s.ffilter(c,e,tp,zone)
return c:IsCode(40412006,40412007,40412008,40412009,40412010,40412011) and c:IsAbleToRemove()
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,c,e,tp,zone)
end
function s.spfilter(c,fc,e,tp,zone)
return c:IsSetCard(0x3cfe) and aux.IsCodeListed(fc,c:GetCode()) and c:IsCanBeSpecialSummoned(e,0,tp,true,false,POS_FACEUP,tp,zone)
end
function s.tktg(e,tp,eg,ep,ev,re,r,rp,chk)
local zone=e:GetHandler():GetLinkedZone(tp)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and zone~=0
and Duel.IsExistingMatchingCard(s.ffilter,tp,LOCATION_DECK,0,1,nil,e,tp,zone) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK)
end
function s.tkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local zone=e:GetHandler():GetLinkedZone(tp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc=Duel.SelectMatchingCard(tp,s.ffilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,zone):GetFirst()
if tc then
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,tc,e,tp,zone)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,true,false,POS_FACEUP,zone)
end
end
end
--三重伟大太阳 赫利俄斯
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
--splimit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(s.splimit)
c:RegisterEffect(e1)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e2:SetCode(EVENT_CHAINING)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,id+o)
e2:SetCondition(s.spcon1)
e2:SetTarget(s.sptg1)
e2:SetOperation(s.spop1)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_SET_ATTACK)
e3:SetValue(s.value)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_SET_DEFENSE)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_ATTACK_ALL)
e5:SetValue(1)
c:RegisterEffect(e5)
--to remove
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(id,1))
e6:SetCategory(CATEGORY_REMOVE)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e6:SetCode(EVENT_ATTACK_ANNOUNCE)
e6:SetTarget(s.tgtg)
e6:SetOperation(s.tgop)
c:RegisterEffect(e6)
--reg
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetCode(EVENT_REMOVE)
e0:SetOperation(s.rmop)
c:RegisterEffect(e0)
--special summon
local e7=Effect.CreateEffect(c)
e7:SetCategory(CATEGORY_SPECIAL_SUMMON)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e7:SetCode(EVENT_PHASE+PHASE_END)
e7:SetRange(LOCATION_REMOVED)
e7:SetCountLimit(1,id)
e7:SetCondition(s.spcon)
e7:SetTarget(s.sptg)
e7:SetOperation(s.spop)
c:RegisterEffect(e7)
end
function s.splimit(e,se,sp,st)
return se:IsHasType(EFFECT_TYPE_ACTIONS)
end
function s.spcon1(e,tp,eg,ep,ev,re,r,rp)
return rp==tp and re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:IsActiveType(TYPE_SPELL+TYPE_TRAP)
and (re:GetHandler():IsCode(40412006,40412007,40412008,40412009,40412010,40412011,40412012)
or re:GetHandler():IsCode(40412013,40412014,40412015,40412016,40412017,40412024,40412025))
end
function s.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function s.spop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
function s.value(e,c)
return Duel.GetFieldGroupCount(c:GetControler(),LOCATION_REMOVED,LOCATION_REMOVED)*300
end
function s.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetDecktopGroup(1-tp,3):FilterCount(Card.IsAbleToRemove,nil)==3 end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,3,1-tp,LOCATION_DECK)
end
function s.rfilter(c)
return c:IsLocation(LOCATION_REMOVED) and c:IsType(TYPE_MONSTER)
end
function s.tgop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(1-tp,3)
if #g>0 then
Duel.DisableShuffleCheck()
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
local sg=Duel.GetOperatedGroup()
local ct=sg:FilterCount(s.rfilter,nil)
if ct>0 then
Duel.Damage(1-tp,ct*300,REASON_EFFECT)
end
end
end
function s.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetHandler():IsFacedown() then return end
c:RegisterFlagEffect(40412022,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(40412022)~=0
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummonStep(c,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(900)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
c:RegisterEffect(e1)
end
Duel.SpecialSummonComplete()
end
\ No newline at end of file
--黄金之混沌人工生命体
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetValue(s.value)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_DEFENSE)
e2:SetValue(s.value)
c:RegisterEffect(e2)
--cannot be target
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_SELECT_BATTLE_TARGET)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(0,LOCATION_MZONE)
e3:SetValue(s.tglimit)
c:RegisterEffect(e3)
--cannot be effect target
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(LOCATION_MZONE,0)
e4:SetTarget(s.tglimit)
e4:SetValue(aux.tgoval)
c:RegisterEffect(e4)
--cannot be effect indes
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e5:SetRange(LOCATION_MZONE)
e5:SetTargetRange(LOCATION_MZONE,0)
e5:SetTarget(s.tglimit)
e5:SetValue(1)
c:RegisterEffect(e5)
--special summon
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(id,0))
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_SPSUMMON_PROC)
e6:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e6:SetRange(LOCATION_HAND)
e6:SetCountLimit(1,id+EFFECT_COUNT_CODE_OATH)
e6:SetCondition(s.spcon)
c:RegisterEffect(e6)
--to hand
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetCode(EVENT_REMOVE)
e0:SetOperation(s.regop)
c:RegisterEffect(e0)
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(id,0))
e7:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e7:SetCode(EVENT_PHASE+PHASE_END)
e7:SetRange(LOCATION_REMOVED)
e7:SetCountLimit(1)
e7:SetCondition(s.thcon)
e7:SetCost(s.rmcost2)
e7:SetTarget(s.thtg)
e7:SetOperation(s.thop)
c:RegisterEffect(e7)
--splimit
local e8=Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_SINGLE)
e8:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e8:SetCode(EFFECT_SPSUMMON_CONDITION)
e8:SetValue(s.splimit)
c:RegisterEffect(e8)
end
function s.splimit(e,se,sp,st)
return se:IsHasType(EFFECT_TYPE_ACTIONS)
end
function s.tglimit(e,c)
return c~=e:GetHandler()
end
function s.value(e,c)
return Duel.GetFieldGroupCount(c:GetControler(),LOCATION_REMOVED,0)*400
end
function s.efilter(c)
return c:IsFaceup() and c:IsCode(40412012,30241314)
end
function s.spcon(e,c)
if c==nil then return true end
return Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.efilter,c:GetControler(),LOCATION_ONFIELD,0,1,nil)
end
function s.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:RegisterFlagEffect(40412023,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
function s.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(40412023)>0
end
function s.rmcost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeckAsCost() end
Duel.SendtoDeck(e:GetHandler(),tp,SEQ_DECKSHUFFLE,REASON_COST)
end
function s.filter(c)
return c:IsRace(RACE_PYRO) and c:IsAbleToHand()
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
\ No newline at end of file
--元素过滤器
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
--activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--tograve
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_REMOVE)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(1,id)
e2:SetCondition(s.condition)
e2:SetTarget(s.target)
e2:SetOperation(s.operation)
e2:SetHintTiming(0,TIMING_MAIN_END)
c:RegisterEffect(e2)
--to hand
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(id,0))
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_REMOVE)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetCountLimit(1,id+o)
e5:SetTarget(s.thtg)
e5:SetOperation(s.thop)
c:RegisterEffect(e5)
end
function s.cfilter(c)
return c:IsType(TYPE_MONSTER) and not c:IsSummonableCard()
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_HAND+LOCATION_MZONE)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFacedown() or not c:IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 and Duel.Remove(g,POS_FACEUP,REASON_EFFECT)~=0 and g:GetFirst():IsLocation(LOCATION_REMOVED) then
local att=g:GetFirst():GetAttribute()
e:SetLabel(att)
--cannot attack
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_ATTACK)
e3:SetRange(LOCATION_SZONE)
e3:SetTargetRange(0,LOCATION_MZONE)
e3:SetTarget(s.atktarget)
e3:SetLabel(e:GetLabel())
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetCode(EFFECT_CANNOT_ACTIVATE)
e4:SetRange(LOCATION_SZONE)
e4:SetLabel(e:GetLabel())
e4:SetTargetRange(0,1)
e4:SetValue(s.aclimit)
e4:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e4)
if bit.band(att,ATTRIBUTE_EARTH)~=0 then
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,1))
end
if bit.band(att,ATTRIBUTE_WATER)~=0 then
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,2))
end
if bit.band(att,ATTRIBUTE_FIRE)~=0 then
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,3))
end
if bit.band(att,ATTRIBUTE_WIND)~=0 then
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,4))
end
if bit.band(att,ATTRIBUTE_LIGHT)~=0 then
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,5))
end
if bit.band(att,ATTRIBUTE_DARK)~=0 then
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,6))
end
if bit.band(att,ATTRIBUTE_DIVINE)~=0 then
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,7))
end
end
end
function s.atktarget(e,c)
return c:IsAttribute(e:GetLabel())
end
function s.aclimit(e,re,tp)
local att=e:GetLabel()
return re:IsActiveType(TYPE_MONSTER) and bit.band(att,re:GetHandler():GetAttribute())~=0
end
function s.filter(c)
return aux.IsCodeListed(c,40412012) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable()
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_REMOVED,0,1,nil) end
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_REMOVED,0,1,1,nil)
if g:GetCount()>0 then
Duel.SSet(tp,g)
end
end
\ No newline at end of file
--贤者之石-万灵药
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,40412012)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON+CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,id+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(s.target)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
--tohand
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_REMOVE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1)
e2:SetCondition(s.thcon)
e2:SetTarget(s.thtg)
e2:SetOperation(s.thop)
c:RegisterEffect(e2)
--atkup
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,1))
e3:SetCategory(CATEGORY_ATKCHANGE)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(EVENT_REMOVE)
e3:SetCost(s.atkcost)
e3:SetTarget(s.atktg)
e3:SetOperation(s.atkop)
c:RegisterEffect(e3)
end
function s.mfilter0(c)
return c:IsFaceup() and c:IsSetCard(0x3cfe) and c:IsType(TYPE_MONSTER)
and c:IsAbleToDeck() and c:IsCanBeFusionMaterial()
end
function s.mfilter1(c,e)
return c:IsRace(RACE_ROCK) and c:IsAbleToGrave() and not c:IsImmuneToEffect(e)
end
function s.mfilter2(c,e)
return c:IsFaceup() and c:IsSetCard(0x3cfe) and c:IsType(TYPE_MONSTER)
and c:IsAbleToDeck() and c:IsCanBeFusionMaterial() and not c:IsImmuneToEffect(e)
end
function s.mfilter3(c,e)
return c:IsAbleToGrave() and not c:IsImmuneToEffect(e)
end
function s.spfilter1(c,e,tp,m,f,chkf)
return c:IsType(TYPE_FUSION) and (not f or f(c))
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end
function s.spfilter2(c,e,tp,m,f,chkf)
return c:IsCode(40412026) and (not f or f(c))
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end
function s.chfilter(c)
return c:IsFaceup() and c:IsCode(40412012,30241314)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local chkf=tp
local mg1=Duel.GetFusionMaterial(tp)
local res=Duel.IsExistingMatchingCard(s.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf)
if res then return true end
local mg2=Duel.GetMatchingGroup(s.mfilter0,tp,LOCATION_REMOVED,0,nil)
mg2:Merge(mg1)
res=Duel.IsExistingMatchingCard(s.spfilter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg2,nil,chkf)
if not res then
local ce=Duel.GetChainMaterial(tp)
if ce~=nil then
local fgroup=ce:GetTarget()
local mg3=fgroup(ce,e,tp)
local mf=ce:GetValue()
res=Duel.IsExistingMatchingCard(s.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg3,mf,chkf)
end
end
return res
end
if e:IsHasType(EFFECT_TYPE_ACTIVATE) and Duel.IsExistingMatchingCard(s.chfilter,tp,LOCATION_ONFIELD,0,1,nil) then
Duel.SetChainLimit(s.chainlm)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_ONFIELD+LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,0,tp,LOCATION_REMOVED)
end
function s.chainlm(e,ep,tp)
return tp==ep
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(s.mfilter1,nil,e)
local sg1=Duel.GetMatchingGroup(s.spfilter1,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
local mg2=Duel.GetMatchingGroup(s.mfilter2,tp,LOCATION_REMOVED,0,nil,e)
mg2:Merge(mg1)
local sg2=Duel.GetMatchingGroup(s.spfilter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,nil,chkf)
sg1:Merge(sg2)
local mg3=nil
local sg3=nil
local ce=Duel.GetChainMaterial(tp)
if ce~=nil then
local fgroup=ce:GetTarget()
mg3=fgroup(ce,e,tp)
local mf=ce:GetValue()
sg3=Duel.GetMatchingGroup(s.spfilter1,tp,LOCATION_EXTRA,0,nil,e,tp,mg3,mf,chkf)
end
if sg1:GetCount()>0 or (sg3~=nil and sg3:GetCount()>0) then
local sg=sg1:Clone()
if sg3 then sg:Merge(sg3) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=sg:Select(tp,1,1,nil)
local tc=tg:GetFirst()
if sg1:IsContains(tc) and (sg3==nil or not sg3:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then
if tc:IsCode(40412026) then
local mat1=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf)
tc:SetMaterial(mat1)
local mat2=mat1:Filter(Card.IsLocation,nil,LOCATION_REMOVED)
mat1:Sub(mat2)
Duel.SendtoGrave(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.SendtoDeck(mat2,nil,2,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
else
local mat2=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf)
tc:SetMaterial(mat2)
Duel.SendtoGrave(mat2,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
end
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
else
local mat=Duel.SelectFusionMaterial(tp,tc,mg3,nil,chkf)
local fop=ce:GetOperation()
fop(ce,e,tp,tc,mat)
end
tc:CompleteProcedure()
end
end
function s.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_DECK)
end
function s.thfilter(c)
return c:IsCode(40412025) and c:IsAbleToHand()
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function s.rfilter(c)
return c:IsCode(40412025) and c:IsAbleToDeckAsCost()
end
function s.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.rfilter,tp,LOCATION_REMOVED,0,3,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,s.rfilter,tp,LOCATION_REMOVED,0,3,3,nil)
Duel.SendtoDeck(g,nil,SEQ_DECKTOP,REASON_EFFECT)
end
function s.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsFaceup() end
if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and tc:IsFaceup() then
local og=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local mg,matk=og:GetMaxGroup(Card.GetAttack)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetValue(matk)
tc:RegisterEffect(e1)
end
end
\ No newline at end of file
--炼金术士 阿姆奈尔
local s,id,o=GetID()
function s.initial_effect(c)
--fusion material
c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,s.matfilter,6,true)
--macro cosmos
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_TO_GRAVE_REDIRECT)
e1:SetTargetRange(0xff,0xff)
e1:SetValue(LOCATION_REMOVED)
c:RegisterEffect(e1)
--immune
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(s.efilter)
c:RegisterEffect(e2)
--atk/def
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_SET_ATTACK)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetValue(s.atkval)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_SET_DEFENSE)
c:RegisterEffect(e4)
--spsummon condition
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e5:SetCode(EFFECT_SPSUMMON_CONDITION)
e5:SetValue(aux.fuslimit)
c:RegisterEffect(e5)
--remove
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(id,0))
e6:SetCategory(CATEGORY_REMOVE)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetRange(LOCATION_MZONE)
e6:SetCode(EVENT_REMOVE)
e6:SetCountLimit(1,id)
e6:SetCondition(s.tdcon)
e6:SetTarget(s.remtg)
e6:SetOperation(s.remop)
c:RegisterEffect(e6)
--atkup
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(id,1))
e7:SetCategory(CATEGORY_DRAW+CATEGORY_REMOVE)
e7:SetType(EFFECT_TYPE_IGNITION)
e7:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,id+o)
e7:SetCondition(s.dircon)
e7:SetCost(s.atkcost)
e7:SetTarget(s.target)
e7:SetOperation(s.operation)
c:RegisterEffect(e7)
end
function s.sprfilter(c)
return c:IsFaceup() and c:IsCode(40412012)
end
function s.sprfilter0(c)
return c:IsFaceup() and c:IsCode(30241314)
end
function s.dircon(e)
return Duel.IsExistingMatchingCard(s.sprfilter,e:GetHandler():GetControler(),LOCATION_ONFIELD,0,1,nil)
end
function s.cfilter(c)
return c:IsAbleToRemoveAsCost()
end
function s.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(s.cfilter,tp,LOCATION_GRAVE,0,nil)
if chk==0 then return g:GetCount()>0 end
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_GRAVE,nil)
if Duel.Draw(p,d,REASON_EFFECT)==2 and g:GetCount()>0
and Duel.IsExistingMatchingCard(s.sprfilter0,tp,LOCATION_ONFIELD,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(id,5)) then
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
end
function s.efilter(e,te)
return te:GetOwner()~=e:GetOwner()
end
function s.matfilter(c,fc,sub,mg,sg)
return not c:IsSummonableCard() and (not sg or not sg:IsExists(Card.IsFusionAttribute,1,c,c:GetFusionAttribute()))
end
function s.atkval(e,c)
local g=Duel.GetMatchingGroup(Card.IsType,e:GetHandlerPlayer(),LOCATION_REMOVED,LOCATION_REMOVED,nil,TYPE_MONSTER)
return g:GetClassCount(Card.GetAttribute)*1000
end
function s.tdcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsAttackAbove(6000)
end
function s.remtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_HAND+LOCATION_EXTRA+LOCATION_GRAVE+LOCATION_DECK,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,0,LOCATION_HAND+LOCATION_EXTRA+LOCATION_GRAVE+LOCATION_DECK)
end
function s.remop(e,tp,eg,ep,ev,re,r,rp)
local g1=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_EXTRA,nil)
local g2=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_GRAVE,nil)
local g3=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_HAND,nil)
local g4=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_DECK,nil)
local sg=Group.CreateGroup()
if g1:GetCount()>0 and ((g2:GetCount()==0 and g3:GetCount()==0 and g4:GetCount()==0) or Duel.SelectYesNo(tp,aux.Stringid(id,1))) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg1=g1:RandomSelect(tp,1)
sg:Merge(sg1)
end
if g2:GetCount()>0 and ((sg:GetCount()==0 and g3:GetCount()==0 and g4:GetCount()==0) or Duel.SelectYesNo(tp,aux.Stringid(id,2))) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg2=g2:Select(tp,1,1,nil)
Duel.HintSelection(sg2)
sg:Merge(sg2)
end
if g3:GetCount()>0 and ((sg:GetCount()==0 and g4:GetCount()==0) or Duel.SelectYesNo(tp,aux.Stringid(id,3))) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg3=g3:RandomSelect(tp,1)
sg:Merge(sg3)
end
if g4:GetCount()>0 and (sg:GetCount()==0 or Duel.SelectYesNo(tp,aux.Stringid(id,4))) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg4=g4:RandomSelect(tp,1)
sg:Merge(sg4)
end
Duel.Remove(sg,POS_FACEUP,REASON_EFFECT)
end
......@@ -1867,6 +1867,125 @@ During each Standby Phases and End Phases: Return this card to the Extra Deck, t
——DoItYourself by⑨
炼禁兽·火之伊夫利特(40412018) 炎 3星 炎/融合 2000 2000 (Custom)
系列:炼金兽
不能通常召唤的岩石族怪兽×2
这个卡名在规则上也当作「炼金兽」卡使用。这张卡用融合召唤以及以下方法才能特殊召唤。
●自己场上有「炼金釜-混沌提炼」或者「大宇宙」存在的场合,把上记的卡解放的场合可以从额外卡组特殊召唤。这个卡名的②的效果1回合只能使用1次。
①:自己场上有「炼金釜-混沌提炼」或者「大宇宙」存在的场合,这张卡可以直接攻击,不会被战斗破坏。
②:这张卡特殊召唤的场合才能发动(这个效果发动的回合,自己若非不能通常召唤的怪兽则不能通常召唤·特殊召唤)。把最多有对方场上的怪兽数量的有「炼金釜-混沌提炼」卡名记述的魔法·陷阱卡从卡组加入手卡(同名卡最多1张)。
③:只要这张卡在怪兽区域存在,自己场上的有「炼金釜-混沌提炼」卡名记述的魔法·陷阱卡的效果的发动以及那些发动的效果不会被无效化。
——DoItYourself by⑨
炼禁兽·水之温蒂妮(40412019) 水 9星 水/同调 2000 2000 (Custom)
系列:炼金兽
调整+调整以外的不能通常召唤的岩石族怪兽2只以上
这个卡名在规则上也当作「炼金兽」卡使用。这张卡同调召唤的场合,可以把自己场上1只「炼金兽」怪兽当作调整使用。这个卡名的①②的效果1回合各能使用1次。
①:这张卡同调召唤成功的场合才能发动(这个效果发动的回合,自己若非不能通常召唤的怪兽则不能通常召唤·特殊召唤)。从自己卡组上面把4张卡翻开,那之中的「炼金兽」怪兽尽可能无视召唤条件特殊召唤。剩下的卡全部除外。
②:卡被除外的场合才能发动。可以选对方场上最多1张卡送去墓地,对方墓地的最多1张卡除外,对方除外的最多1张卡回到卡组。
③:这张卡给与对方战斗伤害时或者这张卡被除外的场合,从自己墓地的卡以及除外的自己的卡之中以其他的卡任意数量为对象才能发动。那些卡回到卡组洗切。那之后,自己回复回去数量×200基本分,这个效果让4张以上的卡回去的场合,再从卡组抽1张。
——DoItYourself by⑨
提示文本:是否要把场上的卡送去墓地?、是否要把墓地的卡除外?、是否要把除外的卡回到卡组?、尽可能特殊召唤「炼金兽」怪兽、墓地·除外的任意数量卡回到卡组、卡被除外的场合3种类除去
炼禁兽·风之希尔芙(40412020) 风 3阶 兽战士/超量 2000 2000 (Custom)
系列:炼金兽
岩石族3星怪兽×2以上
这个卡名在规则上也当作「炼金兽」卡使用。这个卡名的①③的效果1回合各能使用1次。
①:「炼禁兽·风之希尔芙」在自己场上只能有1只表侧表示存在。
②:自己·对方的主要阶段,把这张卡的超量素材任意数量取除才能发动。从自己的卡组以及除外的自己的卡之中把那个数量的「炼金兽」怪兽无视召唤条件特殊召唤,这个回合,自己场上的怪兽不会被战斗破坏。
③:自己的「炼金兽」怪兽给与对方战斗伤害时才能发动。自己场上的其他的「炼金兽」怪兽的攻击力直到回合结束时变成2倍。
④:自己·对方的战斗阶段结束时才能发动。从卡组抽出这个回合怪兽攻击宣言过的数量。那之后,选抽出数量的自己手卡回到卡组洗切。
——DoItYourself by⑨
提示文本:特殊召唤、攻击力翻倍、抽卡辅助
炼禁兽·地之诺姆(40412021) 地 LINK-3 岩石/连接 2000 3 [↙][↓][↘] (Custom)
系列:炼金兽
不能通常召唤的岩石族怪兽2只以上
这个卡名在规则上也当作「炼金兽」卡使用。
①:「炼禁兽·地之诺姆」在自己场上只能有1只表侧表示存在。
②:这张卡以及这张卡所连接区的「炼金兽」怪兽的攻击力上升除外中自己的卡数量×50。
③:这张卡连接召唤的场合才能发动。这个回合的结束阶段,从卡组选1张「大宇宙」在自己场上表侧表示放置,那之后,从卡组把1只是攻击力是?的怪兽特殊召唤。
④:自己用魔法卡的效果对「炼金兽」怪兽的特殊召唤成功的场合才能发动(这个效果发动的回合,自己若非不能通常召唤的怪兽则不能通常召唤·特殊召唤)。从卡组把1张有「炼金釜-混沌提炼」卡名记述的1张魔法卡除外,从手卡·卡组把那张卡有卡名记述的1只「炼金兽」怪兽在作为这张卡所连接区的自己场上特殊召唤。
——DoItYourself by⑨
三重伟大太阳 赫利俄斯(40412022) 光 10星 炎/特殊召唤 ? ? (Custom)
这张卡不能通常召唤,用卡的效果才能特殊召唤。这个卡名的①④的效果1回合各能使用1次。
①:有「炼金釜-混沌提炼」卡名记述的魔法·陷阱卡发动的场合才能发动。这张卡从手卡·墓地特殊召唤。
②:这张卡的攻击力·守备力变成除外的卡数量×300,可以向对方怪兽全部各作1次攻击。
③:这张卡的攻击宣言时发动。从对方卡组上面把3张卡除外,给与对方除外的怪兽数量×300伤害。
④:这张卡被除外的回合的结束阶段才能发动。除外的这张卡特殊召唤。这个效果特殊召唤的这张卡的攻击力上升900。
——DoItYourself by⑨
黄金之混沌人工生命体(40412023) 光 6星 岩石/特殊召唤 ? ? (Custom)
系列:混沌
这张卡不能通常召唤,用卡的效果才能特殊召唤。这个卡名的作为①的方法的特殊召唤1回合只能有1次,
①:自己场上有「炼金釜-混沌提炼」或者「大宇宙」存在的场合,这张卡可以从手卡特殊召唤。
②:这张卡的攻击力·守备力变成除外的自己的卡数量×400,向守备表示怪兽攻击的场合,给与攻击力超过那个守备力的数值的战斗伤害。
③:只要这张卡在怪兽区域存在,这张卡以外的自己场上的怪兽不会成为攻击对象,不会成为对方的效果的对象,也不会被对方的效果破坏。
④:这张卡被除外的回合的结束阶段,让除外的这张卡回到卡组才能发动。从卡组把1只炎族怪兽加入手卡。
——DoItYourself by⑨
元素过滤器(40412024) 永续陷阱 (Custom)
这个卡名的①③的效果1回合各能使用1次。
①:自己·对方的主要阶段才能发动。选自己场上·手卡1只不能通常召唤的怪兽除外。
②:只要这张卡在魔法与陷阱区域存在,对方不能把属性和作为这张卡的①的效果除外的怪兽相同的怪兽的效果发动,也不能攻击宣言。
③:这张卡被除外的场合才能发动。选除外中的1张有「炼金釜-混沌提炼」卡名记述的魔法·陷阱卡在自己场上盖放。
——DoItYourself by⑨
提示文本:、地属性适用中、水属性适用中、炎属性适用中、风属性适用中、光属性适用中、暗属性适用中、神属性适用中
贤者之石-万灵药(40412025) 通常魔法 (Custom)
这个卡名的卡在1回合只能发动1张。
①:从自己的手卡·场上把融合怪兽卡决定的融合素材怪兽送去墓地,把那1只融合怪兽从额外卡组融合召唤。那个时候,融合素材怪兽必须全部是岩石族怪兽。把「炼金术士 阿姆奈尔」融合召唤的场合,也能让自己除外状态的「炼金兽」怪兽回到卡组作为融合素材。自己场上有「炼金釜-混沌提炼」或者「大宇宙」存在的场合,对方不能对应这张卡的发动把效果发动。
②:卡组的这张卡被除外的场合才能发动。从卡组把1张「贤者之石-万灵药」加入手卡。
③:这张卡除外中的状态,让除外的自己的3张「贤者之石-万灵药」回到卡组,以场上1只怪兽为对象才能发动。那只怪兽的攻击力直到回合结束时上升场上的攻击力最高的怪兽的攻击力数值。
——DoItYourself by⑨
炼金术士 阿姆奈尔(40412026) 光 12星 魔法使/融合 ? ? (Custom)
不能通常召唤的属性不同的怪兽×6
这张卡不用融合召唤不能特殊召唤。这个卡名的③④的效果1回合各能使用1次。
①:被送去墓地的卡不去墓地而除外。
②:这张卡的攻击力·守备力变成除外中的怪兽属性种类×1000,这张卡不受其他卡的效果影响。
③:这张卡的攻击力是6000以上,卡被除外的场合才能发动。可以把对方的手卡·卡组·额外卡组·墓地的卡各最多1张除外(从手卡·卡组·额外卡组是随机选)。
④:自己场上有「炼金釜-混沌提炼」存在的场合,把自己墓地的卡全部除外才能发动。从卡组抽2张。自己场上有「大宇宙」存在的场合,可以再把对方墓地的卡全部除外。
——DoItYourself by⑨
提示文本:、是否要除外额外卡组的卡?、是否要除外墓地的卡?、是否要除外手卡?、是否要除外卡组?、是否要除外对方墓地的全部卡?
阴影厉鬼(40798073) 暗 2星 恶魔 0 0 (Custom)
系列:阴影
这个卡名的效果1回合只能使用1次。
......
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