Commit 4095a7f6 authored by gg123gg's avatar gg123gg Committed by GitHub

Add files via upload

parent a9af7a52
--新起的岚神 质点的罗弗寇 --新起的岚神 质点的罗弗寇
local m=12004024 local m=12004024
local cm=_G["c"..m] local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
--pendulum summon --pendulum summon
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
--pendulum set --pendulum set
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(12004024,0)) e1:SetDescription(aux.Stringid(12004024,0))
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_PZONE) e1:SetRange(LOCATION_PZONE)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetTarget(c12004024.pctg) e1:SetTarget(c12004024.pctg)
e1:SetOperation(c12004024.pcop) e1:SetOperation(c12004024.pcop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--spsummon --spsummon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(12004024,3)) e2:SetDescription(aux.Stringid(12004024,3))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON) e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_PZONE) e2:SetRange(LOCATION_PZONE)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetTarget(c12004024.sptg) e2:SetTarget(c12004024.sptg)
e2:SetOperation(c12004024.spop1) e2:SetOperation(c12004024.spop1)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--spsummon condition --spsummon condition
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetCode(EFFECT_SPSUMMON_CONDITION) e2:SetCode(EFFECT_SPSUMMON_CONDITION)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--special summon --special summon
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_SPSUMMON_PROC) e3:SetCode(EFFECT_SPSUMMON_PROC)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCountLimit(1,12004024) e3:SetCountLimit(1,12004024)
e3:SetRange(LOCATION_EXTRA+LOCATION_HAND) e3:SetRange(LOCATION_EXTRA+LOCATION_HAND)
e3:SetCondition(c12004024.spcon) e3:SetCondition(c12004024.spcon)
e3:SetOperation(c12004024.spop) e3:SetOperation(c12004024.spop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--destroy --destroy
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetCategory(CATEGORY_DESTROY) e2:SetCategory(CATEGORY_DESTROY)
e2:SetDescription(aux.Stringid(12004024,1)) e2:SetDescription(aux.Stringid(12004024,1))
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCost(c12004024.cost) e2:SetCost(c12004024.cost)
e2:SetTarget(c12004024.target) e2:SetTarget(c12004024.target)
e2:SetOperation(c12004024.operation) e2:SetOperation(c12004024.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--pendulum --pendulum
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(12004024,2)) e4:SetDescription(aux.Stringid(12004024,2))
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_LEAVE_FIELD) e4:SetCode(EVENT_LEAVE_FIELD)
e4:SetProperty(EFFECT_FLAG_DELAY) e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCondition(c12004024.pencon) e4:SetCountLimit(1,12004024+100)
e4:SetTarget(c12004024.pentg) e4:SetCondition(c12004024.pencon)
e4:SetOperation(c12004024.penop) e4:SetTarget(c12004024.pentg)
c:RegisterEffect(e4) e4:SetOperation(c12004024.penop)
end c:RegisterEffect(e4)
function c12004024.pcfilter(c) end
return c:IsType(TYPE_PENDULUM) and c:IsSetCard(0x1fb3) and not c:IsForbidden() function c12004024.pcfilter(c)
end return c:IsType(TYPE_PENDULUM) and c:IsSetCard(0x1fb3) and not c:IsForbidden()
function c12004024.pctg(e,tp,eg,ep,ev,re,r,rp,chk) end
if chk==0 then return (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) function c12004024.pctg(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.IsExistingMatchingCard(c12004024.pcfilter,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1))
end and Duel.IsExistingMatchingCard(c12004024.pcfilter,tp,LOCATION_DECK,0,1,nil) end
function c12004024.pcop(e,tp,eg,ep,ev,re,r,rp) end
if not e:GetHandler():IsRelateToEffect(e) then return end function c12004024.pcop(e,tp,eg,ep,ev,re,r,rp)
if not Duel.CheckLocation(tp,LOCATION_PZONE,0) and not Duel.CheckLocation(tp,LOCATION_PZONE,1) then return end if not e:GetHandler():IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD) if not Duel.CheckLocation(tp,LOCATION_PZONE,0) and not Duel.CheckLocation(tp,LOCATION_PZONE,1) then return end
local g=Duel.SelectMatchingCard(tp,c12004024.pcfilter,tp,LOCATION_DECK,0,1,1,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
if g:GetCount()>0 then local g=Duel.SelectMatchingCard(tp,c12004024.pcfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.MoveToField(g:GetFirst(),tp,tp,LOCATION_SZONE,POS_FACEUP,true) if g:GetCount()>0 then
end Duel.MoveToField(g:GetFirst(),tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end end
function c12004024.filter0(c,e) end
return c:IsCanBeFusionMaterial() and not c:IsImmuneToEffect(e) function c12004024.filter0(c,e)
end return c:IsCanBeFusionMaterial() and not c:IsImmuneToEffect(e)
function c12004024.filter1(c,e) end
return c:IsOnField() and not c:IsImmuneToEffect(e) function c12004024.filter1(c,e)
end return c:IsOnField() and not c:IsImmuneToEffect(e)
function c12004024.filter2(c,e,tp,m,f,chkf) end
return c:IsType(TYPE_FUSION) and (not f or f(c)) function c12004024.filter2(c,e,tp,m,f,chkf)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf) return c:IsType(TYPE_FUSION) and (not f or f(c))
end and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
function c12004024.sptg(e,tp,eg,ep,ev,re,r,rp,chk) end
if chk==0 then function c12004024.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local chkf=tp if chk==0 then
local mg1=Duel.GetFusionMaterial(tp):Filter(Card.IsOnField,nil) local chkf=tp
if Duel.GetFieldGroupCount(tp,LOCATION_PZONE,0)>=2 then local mg1=Duel.GetFusionMaterial(tp):Filter(Card.IsOnField,nil)
mg1:Merge(Duel.GetMatchingGroup(c12004024.filter0,tp,LOCATION_PZONE,0,nil,e)) if Duel.GetFieldGroupCount(tp,LOCATION_PZONE,0)>=2 then
end mg1:Merge(Duel.GetMatchingGroup(c12004024.filter0,tp,LOCATION_PZONE,0,nil,e))
local res=Duel.IsExistingMatchingCard(c12004024.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf) end
if not res then local res=Duel.IsExistingMatchingCard(c12004024.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf)
local ce=Duel.GetChainMaterial(tp) if not res then
if ce~=nil then local ce=Duel.GetChainMaterial(tp)
local fgroup=ce:GetTarget() if ce~=nil then
local mg2=fgroup(ce,e,tp) local fgroup=ce:GetTarget()
local mf=ce:GetValue() local mg2=fgroup(ce,e,tp)
res=Duel.IsExistingMatchingCard(c12004024.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg2,mf,chkf) local mf=ce:GetValue()
end res=Duel.IsExistingMatchingCard(c12004024.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg2,mf,chkf)
end end
return res end
end return res
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) end
end Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
function c12004024.spop1(e,tp,eg,ep,ev,re,r,rp) end
local chkf=tp function c12004024.spop1(e,tp,eg,ep,ev,re,r,rp)
local mg1=Duel.GetFusionMaterial(tp):Filter(c12004024.filter1,nil,e) local chkf=tp
if Duel.GetFieldGroupCount(tp,LOCATION_PZONE,0)>=2 then local mg1=Duel.GetFusionMaterial(tp):Filter(c12004024.filter1,nil,e)
mg1:Merge(Duel.GetMatchingGroup(c12004024.filter0,tp,LOCATION_PZONE,0,nil,e)) if Duel.GetFieldGroupCount(tp,LOCATION_PZONE,0)>=2 then
end mg1:Merge(Duel.GetMatchingGroup(c12004024.filter0,tp,LOCATION_PZONE,0,nil,e))
local sg1=Duel.GetMatchingGroup(c12004024.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf) end
local mg2=nil local sg1=Duel.GetMatchingGroup(c12004024.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
local sg2=nil local mg2=nil
local ce=Duel.GetChainMaterial(tp) local sg2=nil
if ce~=nil then local ce=Duel.GetChainMaterial(tp)
local fgroup=ce:GetTarget() if ce~=nil then
mg2=fgroup(ce,e,tp) local fgroup=ce:GetTarget()
local mf=ce:GetValue() mg2=fgroup(ce,e,tp)
sg2=Duel.GetMatchingGroup(c12004024.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,mf,chkf) local mf=ce:GetValue()
end sg2=Duel.GetMatchingGroup(c12004024.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,mf,chkf)
if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then end
local sg=sg1:Clone() if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then
if sg2 then sg:Merge(sg2) end local sg=sg1:Clone()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) if sg2 then sg:Merge(sg2) end
local tg=sg:Select(tp,1,1,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc=tg:GetFirst() local tg=sg:Select(tp,1,1,nil)
if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then local tc=tg:GetFirst()
local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf) if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then
tc:SetMaterial(mat1) local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf)
Duel.SendtoGrave(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION) tc:SetMaterial(mat1)
Duel.BreakEffect() Duel.SendtoGrave(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP) Duel.BreakEffect()
else Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
local mat2=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf) else
local fop=ce:GetOperation() local mat2=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf)
fop(ce,e,tp,tc,mat2) local fop=ce:GetOperation()
end fop(ce,e,tp,tc,mat2)
tc:CompleteProcedure() end
end tc:CompleteProcedure()
end end
function c12004024.spfilter(c,race) end
return c:IsRace(race) and c:IsAbleToRemoveAsCost() function c12004024.spfilter(c,race)
end return c:IsRace(race) and c:IsAbleToRemoveAsCost()
function c12004024.spcon(e,c) end
if c==nil then return true end function c12004024.spcon(e,c)
local tp=c:GetControler() if c==nil then return true end
return ((c:IsLocation(LOCATION_HAND) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0) or local tp=c:GetControler()
(c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,TYPE_LINK)>0)) return ((c:IsLocation(LOCATION_HAND) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0) or
and Duel.IsExistingMatchingCard(c12004024.spfilter,tp,LOCATION_GRAVE+LOCATION_HAND,0,1,nil,RACE_MACHINE) (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,TYPE_LINK)>0))
and Duel.IsExistingMatchingCard(c12004024.spfilter,tp,LOCATION_GRAVE+LOCATION_HAND,0,1,nil,RACE_SEASERPENT) and Duel.IsExistingMatchingCard(c12004024.spfilter,tp,LOCATION_GRAVE+LOCATION_MZONE,0,1,nil,RACE_MACHINE)
end and Duel.IsExistingMatchingCard(c12004024.spfilter,tp,LOCATION_GRAVE+LOCATION_MZONE,0,1,nil,RACE_SEASERPENT)
function c12004024.spop(e,tp,eg,ep,ev,re,r,rp,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) function c12004024.spop(e,tp,eg,ep,ev,re,r,rp,c)
local g1=Duel.SelectMatchingCard(tp,c12004024.spfilter,tp,LOCATION_GRAVE+LOCATION_HAND,0,1,1,nil,RACE_MACHINE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) local g1=Duel.SelectMatchingCard(tp,c12004024.spfilter,tp,LOCATION_GRAVE+LOCATION_MZONE,0,1,1,nil,RACE_MACHINE)
local g2=Duel.SelectMatchingCard(tp,c12004024.spfilter,tp,LOCATION_GRAVE+LOCATION_HAND,0,1,1,nil,RACE_SEASERPENT) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
g1:Merge(g2) local g2=Duel.SelectMatchingCard(tp,c12004024.spfilter,tp,LOCATION_GRAVE+LOCATION_MZONE,0,1,1,nil,RACE_SEASERPENT)
Duel.Remove(g1,POS_FACEUP,REASON_COST) g1:Merge(g2)
end Duel.Remove(g1,POS_FACEUP,REASON_COST)
function c12004024.cost(e,tp,eg,ep,ev,re,r,rp,chk) end
if chk==0 then return true end function c12004024.cost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.PayLPCost(tp,math.floor(Duel.GetLP(tp)/2)) if chk==0 then return true end
end Duel.PayLPCost(tp,math.floor(Duel.GetLP(tp)/2))
function c12004024.target(e,tp,eg,ep,ev,re,r,rp,chk) end
local c=e:GetHandler() function c12004024.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,c) end local c=e:GetHandler()
local sg=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,c) if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,c) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,sg,sg:GetCount(),0,0) local sg=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,c)
end Duel.SetOperationInfo(0,CATEGORY_DESTROY,sg,sg:GetCount(),0,0)
function c12004024.operation(e,tp,eg,ep,ev,re,r,rp) end
local sg=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,aux.ExceptThisCard(e)) function c12004024.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(sg,REASON_EFFECT) local sg=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,aux.ExceptThisCard(e))
end Duel.Destroy(sg,REASON_EFFECT)
function c12004024.pencon(e,tp,eg,ep,ev,re,r,rp) end
local c=e:GetHandler() function c12004024.pencon(e,tp,eg,ep,ev,re,r,rp)
return c:IsPreviousLocation(LOCATION_MZONE) local c=e:GetHandler()
end return c:IsPreviousLocation(LOCATION_MZONE)
function c12004024.pentg(e,tp,eg,ep,ev,re,r,rp,chk) end
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end function c12004024.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
end if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
function c12004024.penop(e,tp,eg,ep,ev,re,r,rp) end
if not Duel.CheckLocation(tp,LOCATION_PZONE,0) and not Duel.CheckLocation(tp,LOCATION_PZONE,1) then return end function c12004024.penop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() if not Duel.CheckLocation(tp,LOCATION_PZONE,0) and not Duel.CheckLocation(tp,LOCATION_PZONE,1) then return end
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true) local c=e:GetHandler()
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
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