Commit 7246385a authored by nanahira's avatar nanahira

Merge branch 'master' of github.com:purerosefallen/ygopro-222DIY-cards

parents 2821437d 2d6d9217
...@@ -92,6 +92,13 @@ ...@@ -92,6 +92,13 @@
09980276 1 --不死姬·吸血姬 09980276 1 --不死姬·吸血姬
09980312 2 --是非曲直厅之主 09980312 2 --是非曲直厅之主
09980518 1 --石头巨像·加里奥 09980518 1 --石头巨像·加里奥
09980251 0 --异界女神动员
09980266 0 --不死姬·羽衣之狐
09980431 0 --AgitΩ·骑士踢
09980439 0 --降临卡片·最终降临
09980440 0 --降临卡片·防御降临
09980444 0 --降临卡片·抢夺降临
#101 #101
10102004 1 --圣谕舞姬 珍妮丝 10102004 1 --圣谕舞姬 珍妮丝
...@@ -206,7 +213,7 @@ ...@@ -206,7 +213,7 @@
14801375 0 --光之国 14801375 0 --光之国
14801377 0 --奥特竞技场 14801377 0 --奥特竞技场
14801389 0 --奥特战士 父子的牵绊 14801389 0 --奥特战士 父子的牵绊
17082102 0 --路西法
#150 #150
#154 #154
...@@ -238,6 +245,7 @@ ...@@ -238,6 +245,7 @@
17050908 1 --戈耳工的试炼 17050908 1 --戈耳工的试炼
17050901 0 --斯忒诺 17050901 0 --斯忒诺
#180 #180
18004008 0 --性感手枪拔枪术 18004008 0 --性感手枪拔枪术
18005010 0 --封锁的拟魂 18005010 0 --封锁的拟魂
...@@ -589,6 +597,7 @@ ...@@ -589,6 +597,7 @@
77702001 0 --初音未来的暴走 77702001 0 --初音未来的暴走
#77702007 1 --楽園図 #77702007 1 --楽園図
#77709006 1 --Figure #77709006 1 --Figure
77765910 0 --难题 龙颈之玉 五色的弹丸
#800 #800
#810 #810
......
--黑姬的养成所 --黑姬的养成所
function c12011017.initial_effect(c) function c12011017.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c12011017.target) e1:SetTarget(c12011017.target)
e1:SetOperation(c12011017.activate) e1:SetOperation(c12011017.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--fusion summon --fusion summon
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(12011017,1)) e3:SetDescription(aux.Stringid(12011017,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON) e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_GRAVE) e3:SetRange(LOCATION_GRAVE)
e3:SetCost(aux.bfgcost) e3:SetCost(aux.bfgcost)
e3:SetTarget(c12011017.sptg) e3:SetTarget(c12011017.sptg)
e3:SetOperation(c12011017.spop) e3:SetOperation(c12011017.spop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c12011017.filter1(c,e) function c12011017.filter1(c,e)
return not c:IsImmuneToEffect(e) and c:IsSetCard(0x3fbe) return not c:IsImmuneToEffect(e) and c:IsSetCard(0x3fbe)
end end
function c12011017.filter2(c,e,tp,m,f,chkf) function c12011017.filter2(c,e,tp,m,f,chkf)
return c:IsType(TYPE_FUSION) and (not f or f(c)) 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) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end end
function c12011017.target(e,tp,eg,ep,ev,re,r,rp,chk) function c12011017.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local chkf=tp local chkf=tp
local mg1=Duel.GetFusionMaterial(tp) local mg1=Duel.GetFusionMaterial(tp)
local res=Duel.IsExistingMatchingCard(c12011017.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf) local res=Duel.IsExistingMatchingCard(c12011017.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf)
if not res then if not res then
local ce=Duel.GetChainMaterial(tp) local ce=Duel.GetChainMaterial(tp)
if ce~=nil then if ce~=nil then
local fgroup=ce:GetTarget() local fgroup=ce:GetTarget()
local mg2=fgroup(ce,e,tp) local mg2=fgroup(ce,e,tp)
local mf=ce:GetValue() local mf=ce:GetValue()
res=Duel.IsExistingMatchingCard(c12011017.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg2,mf,chkf) res=Duel.IsExistingMatchingCard(c12011017.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg2,mf,chkf)
end end
end end
return res return res
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
function c12011017.activate(e,tp,eg,ep,ev,re,r,rp) function c12011017.activate(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(c12011017.filter1,nil,e) local mg1=Duel.GetFusionMaterial(tp):Filter(c12011017.filter1,nil,e)
local sg1=Duel.GetMatchingGroup(c12011017.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf) local sg1=Duel.GetMatchingGroup(c12011017.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
local mg2=nil local mg2=nil
local sg2=nil local sg2=nil
local ce=Duel.GetChainMaterial(tp) local ce=Duel.GetChainMaterial(tp)
if ce~=nil then if ce~=nil then
local fgroup=ce:GetTarget() local fgroup=ce:GetTarget()
mg2=fgroup(ce,e,tp) mg2=fgroup(ce,e,tp)
local mf=ce:GetValue() local mf=ce:GetValue()
sg2=Duel.GetMatchingGroup(c12011017.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,mf,chkf) sg2=Duel.GetMatchingGroup(c12011017.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,mf,chkf)
end end
if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then
local sg=sg1:Clone() local sg=sg1:Clone()
if sg2 then sg:Merge(sg2) end if sg2 then sg:Merge(sg2) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=sg:Select(tp,1,1,nil) local tg=sg:Select(tp,1,1,nil)
local tc=tg:GetFirst() local tc=tg:GetFirst()
if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then
local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf) local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf)
tc:SetMaterial(mat1) e:SetLabel(mat1:GetCount())
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
Duel.BreakEffect() tc:CompleteProcedure()
local cs=mat1:GetCount() Duel.BreakEffect()
local sg=Duel.GetMatchingGroup(c12011017.thfilter,tp,LOCATION_DECK,0,nil) local cs=e:GetLabel()
if ( not tc:IsType(TYPE_EFFECT) ) and sg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(12011017,3)) then local sg=Duel.GetMatchingGroup(c12011017.thfilter,tp,LOCATION_DECK,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) if ( not tc:IsType(TYPE_EFFECT) ) and sg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(12011017,3)) then
sg=sg:Select(tp,cs,cs,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
Duel.BreakEffect() sg=sg:Select(tp,cs,cs,nil)
Duel.SendtoHand(sg,nil,REASON_EFFECT) Duel.BreakEffect()
Duel.ConfirmCards(1-tp,sg) Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ShuffleDeck(tp) Duel.ConfirmCards(1-tp,sg)
end Duel.ShuffleDeck(tp)
end end
end end
function c12011017.thfilter(c) end
return c:IsSetCard(0x3fbe) and c:IsAbleToHand() function c12011017.thfilter(c)
end return c:IsSetCard(0x3fbe) and c:IsAbleToHand()
function c12011017.spfilter1(c,e) end
return c:IsSetCard(0x3fbe) and not c:IsImmuneToEffect(e) function c12011017.spfilter1(c,e)
end return c:IsSetCard(0x3fbe) and not c:IsImmuneToEffect(e)
function c12011017.spfilter2(c,e,tp,m,f,chkf) end
return c:IsType(TYPE_FUSION) and (not f or f(c)) function c12011017.spfilter2(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 c12011017.spfilter3(c) end
return c:IsCanBeFusionMaterial() and c:IsSetCard(0x10f3) function c12011017.spfilter3(c)
end return c:IsCanBeFusionMaterial() and c:IsSetCard(0x10f3)
function c12011017.sptg(e,tp,eg,ep,ev,re,r,rp,chk) end
if chk==0 then function c12011017.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local chkf=tp if chk==0 then
local mg1=Duel.GetFusionMaterial(tp):Filter(Card.IsSetCard,nil,0x3fbe) local chkf=tp
local res=Duel.IsExistingMatchingCard(c12011017.spfilter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf) local mg1=Duel.GetFusionMaterial(tp):Filter(Card.IsSetCard,nil,0x3fbe)
if not res then local res=Duel.IsExistingMatchingCard(c12011017.spfilter2,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):Filter(c12011017.spfilter3,nil) local fgroup=ce:GetTarget()
local mf=ce:GetValue() local mg2=fgroup(ce,e,tp):Filter(c12011017.spfilter3,nil)
res=Duel.IsExistingMatchingCard(c12011017.spfilter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg2,mf,chkf) local mf=ce:GetValue()
end res=Duel.IsExistingMatchingCard(c12011017.spfilter2,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 c12011017.spop(e,tp,eg,ep,ev,re,r,rp) end
local chkf=tp function c12011017.spop(e,tp,eg,ep,ev,re,r,rp)
local mg1=Duel.GetFusionMaterial(tp):Filter(c12011017.spfilter1,nil,e) local chkf=tp
local sg1=Duel.GetMatchingGroup(c12011017.spfilter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf) local mg1=Duel.GetFusionMaterial(tp):Filter(c12011017.spfilter1,nil,e)
local mg2=nil local sg1=Duel.GetMatchingGroup(c12011017.spfilter2,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):Filter(c12011017.spfilter3,nil) local fgroup=ce:GetTarget()
local mf=ce:GetValue() mg2=fgroup(ce,e,tp):Filter(c12011017.spfilter3,nil)
sg2=Duel.GetMatchingGroup(c12011017.spfilter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,mf,chkf) local mf=ce:GetValue()
end sg2=Duel.GetMatchingGroup(c12011017.spfilter2,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
local sg=Duel.GetMatchingGroup(c12011017.thfilter1,tp,LOCATION_EXTRA,0,nil) tc:CompleteProcedure()
if ( not tc:IsType(TYPE_EFFECT) ) and sg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(12011017,4)) then local sg=Duel.GetMatchingGroup(c12011017.thfilter1,tp,LOCATION_EXTRA,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) if ( not tc:IsType(TYPE_EFFECT) ) and sg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(12011017,4)) then
sg=sg:Select(tp,1,2,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
Duel.BreakEffect() sg=sg:Select(tp,1,2,nil)
Duel.SendtoGrave(sg,nil,REASON_EFFECT) Duel.BreakEffect()
end Duel.SendtoGrave(sg,nil,REASON_EFFECT)
end end
end end
function c12011017.thfilter1(c) end
return c:IsSetCard(0x3fbe) and c:IsAbleToGrave() and c:IsFaceup() function c12011017.thfilter1(c)
return c:IsSetCard(0x3fbe) and c:IsAbleToGrave() and c:IsFaceup()
end end
\ No newline at end of file
--盖马克 --盖马克
local m=47530012 local m=47530012
local cm=_G["c"..m] local cm=_G["c"..m]
function c47530012.initial_effect(c) function c47530012.initial_effect(c)
--link summon --link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsRace,RACE_MACHINE),3,5) aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsRace,RACE_MACHINE),3,5)
c:EnableReviveLimit() c:EnableReviveLimit()
--todeck --todeck
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(47530012,0)) e1:SetDescription(aux.Stringid(47530012,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOGRAVE+CATEGORY_TOKEN) e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCost(c47530012.cost) e1:SetCost(c47530012.tkcost)
e1:SetTarget(c47530012.tktg) e1:SetTarget(c47530012.tktg)
e1:SetOperation(c47530012.tkop) e1:SetOperation(c47530012.tkop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--full fire --full fire
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_DESTROY) e2:SetCategory(CATEGORY_DESTROY)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET) e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetTarget(c47530012.destg) e2:SetTarget(c47530012.destg)
e2:SetOperation(c47530012.desop) e2:SetOperation(c47530012.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c47530012.cfilter(c) function c47530012.cfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToDeckAsCost() and c:IsRace(RACE_MACHINE) return c:IsAbleToDeckAsCost() and c:IsRace(RACE_MACHINE)
end end
function c47530012.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c47530012.tkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c47530012.cfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c47530012.cfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,c47530012.cfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c47530012.cfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil)
if g:GetFirst():IsLocation(LOCATION_REMOVED) and g:GetFirst():IsFacedown() then Duel.SendtoDeck(g,nil,2,REASON_COST)
Duel.ConfirmCards(1-tp,g) end
end function c47530012.tktg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoDeck(g,nil,2,REASON_COST) if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
end and Duel.IsPlayerCanSpecialSummonMonster(tp,47531012,0,0x4011,0,0,1,RACE_MACHINE,ATTRIBUTE_LIGHT) end
function c47530012.tktg(e,tp,eg,ep,ev,re,r,rp,chk) Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
and Duel.IsPlayerCanSpecialSummonMonster(tp,47531012,0,0x4011,0,0,1,RACE_CYBERSE,ATTRIBUTE_LIGHT) end end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0) function c47530012.tkop(e,tp,eg,ep,ev,re,r,rp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0) local c=e:GetHandler()
end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
function c47530012.tkop(e,tp,eg,ep,ev,re,r,rp) if Duel.IsPlayerCanSpecialSummonMonster(tp,47531012,0,0x4011,2000,2000,1,RACE_MACHINE,ATTRIBUTE_LIGHT) then
local c=e:GetHandler() local token=Duel.CreateToken(tp,47531012)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP)
if Duel.IsPlayerCanSpecialSummonMonster(tp,47531012,0,0x4011,2000,2000,1,RACE_MACHINE,ATTRIBUTE_LIGHT) then local e1=Effect.CreateEffect(c)
local token=Duel.CreateToken(tp,47531012) e1:SetType(EFFECT_TYPE_SINGLE)
Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP) e1:SetCode(EFFECT_ATTACK_ALL)
local e1=Effect.CreateEffect(c) e1:SetValue(1)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_ATTACK_ALL) token:RegisterEffect(e1,true)
e1:SetValue(1) if Duel.SpecialSummonComplete() then
e1:SetReset(RESET_EVENT+RESETS_STANDARD) local cg=token:GetColumnGroup():Filter(Card.IsControler,nil,1-tp)
token:RegisterEffect(e1,true) if cg:GetCount()>0 then
if Duel.SpecialSummonComplete() then Duel.HintSelection(cg)
local cg=token:GetColumnGroup():Filter(Card.IsControler,nil,1-tp) Duel.SendtoGrave(cg,REASON_RULE)
if cg:GetCount()>0 then end
Duel.HintSelection(cg) end
Duel.SendtoGrave(cg,REASON_RULE) end
end end
end function c47530012.destg(e,tp,eg,ep,ev,re,r,rp,chk)
end local c=e:GetHandler()
end if chk==0 then return Duel.IsExistingTarget(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,4,c) end
function c47530012.destg(e,tp,eg,ep,ev,re,r,rp,chk) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local c=e:GetHandler() local g=Duel.SelectTarget(tp,nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,4,4,c)
if chk==0 then return Duel.IsExistingTarget(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,4,c) end Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,4,0,0)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,4,0,0)
local g=Duel.SelectTarget(tp,nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,4,4,c) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,4,0,0) function c47530012.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,4,0,0) local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
end Duel.Destroy(g,REASON_EFFECT,LOCATION_REMOVED)
function c47530012.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
Duel.Destroy(g,REASON_EFFECT,LOCATION_REMOVED)
end end
\ No newline at end of file
--吉姆强袭型改 --吉姆强袭型改
function c47530026.initial_effect(c) function c47530026.initial_effect(c)
--pendulum summon --pendulum summon
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
--splimit --splimit
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_PZONE) e1:SetRange(LOCATION_PZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
e1:SetTarget(c47530026.psplimit) e1:SetTarget(c47530026.psplimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--summon --summon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(47530026,1)) e2:SetDescription(aux.Stringid(47530026,1))
e2:SetCategory(CATEGORY_SUMMON) e2:SetCategory(CATEGORY_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_PZONE) e2:SetRange(LOCATION_PZONE)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END) e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e2:SetTarget(c47530026.sumtg) e2:SetTarget(c47530026.sumtg)
e2:SetOperation(c47530026.sumop) e2:SetOperation(c47530026.sumop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--spsummon proc --spsummon proc
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(47530026,0)) e3:SetDescription(aux.Stringid(47530026,0))
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_SUMMON_PROC) e3:SetCode(EFFECT_SUMMON_PROC)
e3:SetValue(SUMMON_TYPE_ADVANCE) e3:SetValue(SUMMON_TYPE_ADVANCE)
e3:SetCondition(c47530026.otcon) e3:SetCondition(c47530026.otcon)
e3:SetOperation(c47530026.otop) e3:SetOperation(c47530026.otop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e3:Clone() local e4=e3:Clone()
e4:SetCode(EFFECT_SET_PROC) e4:SetCode(EFFECT_SET_PROC)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--tribute check --tribute check
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE) e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_MATERIAL_CHECK) e5:SetCode(EFFECT_MATERIAL_CHECK)
e5:SetValue(c47530026.valcheck) e5:SetValue(c47530026.valcheck)
c:RegisterEffect(e5) c:RegisterEffect(e5)
--buff --buff
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE) e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e6:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e6:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e6:SetRange(LOCATION_MZONE) e6:SetRange(LOCATION_MZONE)
e6:SetCondition(c47530026.advcon) e6:SetCondition(c47530026.advcon)
e6:SetValue(1) e6:SetValue(1)
c:RegisterEffect(e6) c:RegisterEffect(e6)
local e7=Effect.CreateEffect(c) local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE) e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetCode(EFFECT_IMMUNE_EFFECT) e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetRange(LOCATION_MZONE) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c47530026.advcon) e7:SetCondition(c47530026.advcon)
e7:SetValue(c47530026.efilter) e7:SetValue(c47530026.efilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_SINGLE) e8:SetType(EFFECT_TYPE_SINGLE)
e8:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e8:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e8:SetCode(EFFECT_EXTRA_ATTACK) e8:SetCode(EFFECT_EXTRA_ATTACK)
e8:SetRange(LOCATION_MZONE) e8:SetRange(LOCATION_MZONE)
e8:SetCondition(c47530026.advcon) e8:SetCondition(c47530026.advcon)
e8:SetValue(1) e8:SetValue(1)
c:RegisterEffect(e8) c:RegisterEffect(e8)
--actlimit --actlimit
local e9=Effect.CreateEffect(c) local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_FIELD) e9:SetType(EFFECT_TYPE_FIELD)
e9:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e9:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e9:SetCode(EFFECT_CANNOT_ACTIVATE) e9:SetCode(EFFECT_CANNOT_ACTIVATE)
e9:SetRange(LOCATION_MZONE) e9:SetRange(LOCATION_MZONE)
e9:SetTargetRange(0,1) e9:SetTargetRange(0,1)
e9:SetValue(c47530026.aclimit) e9:SetValue(c47530026.aclimit)
e9:SetCondition(c47530026.actcon) e9:SetCondition(c47530026.actcon)
c:RegisterEffect(e9) c:RegisterEffect(e9)
--remove --remove
local e10=Effect.CreateEffect(c) local e10=Effect.CreateEffect(c)
e10:SetDescription(aux.Stringid(47530026,0)) e10:SetDescription(aux.Stringid(47530026,0))
e10:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e10:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e10:SetCode(EVENT_DAMAGE_STEP_END) e10:SetCode(EVENT_DAMAGE_STEP_END)
e10:SetCondition(c47530026.rmcon) e10:SetCondition(c47530026.rmcon)
e10:SetOperation(c47530026.rmop) e10:SetOperation(c47530026.rmop)
c:RegisterEffect(e10) c:RegisterEffect(e10)
end end
function c47530026.IsEFSF(c) function c47530026.IsEFSF(c)
local m=_G["c"..c:GetCode()] local m=_G["c"..c:GetCode()]
return m and m.is_named_with_EFSF return m and m.is_named_with_EFSF
end end
function c47530026.rmcon(e,tp,eg,ep,ev,re,r,rp) function c47530026.rmcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local bc=c:GetBattleTarget() local bc=c:GetBattleTarget()
e:SetLabelObject(bc) e:SetLabelObject(bc)
return c==Duel.GetAttacker() and bc and c:IsStatus(STATUS_OPPO_BATTLE) and bc:IsOnField() and bc:IsRelateToBattle() return c==Duel.GetAttacker() and bc and c:IsStatus(STATUS_OPPO_BATTLE) and bc:IsOnField() and bc:IsRelateToBattle()
end end
function c47530026.rmop(e,tp,eg,ep,ev,re,r,rp) function c47530026.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local bc=e:GetLabelObject() local bc=e:GetLabelObject()
local atk1=bc:GetAttack() local atk1=bc:GetAttack()
local atk2=c:GetAttack() local atk2=c:GetAttack()
local atk=atk1+atk2 local atk=atk1+atk2
if bc:IsRelateToBattle() then if bc:IsRelateToBattle() then
local lp=Duel.GetLP(1-tp) local lp=Duel.GetLP(1-tp)
Duel.SetLP(1-tp,lp-atk) Duel.SetLP(1-tp,lp-atk)
end end
end end
function c47530026.aclimit(e,re,tp) function c47530026.aclimit(e,re,tp)
return not re:GetHandler():IsImmuneToEffect(e) return not re:GetHandler():IsImmuneToEffect(e)
end end
function c47530026.actcon(e) function c47530026.actcon(e)
return Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler() and e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE) return Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler() and e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE)
end end
function c47530026.efilter(e,te) function c47530026.efilter(e,te)
return te:IsActiveType(TYPE_MONSTER) and te:GetHandler():IsSummonType(SUMMON_TYPE_SPECIAL) return te:IsActiveType(TYPE_MONSTER) and te:GetHandler():IsSummonType(SUMMON_TYPE_SPECIAL)
end end
function c47530026.advcon(e,tp,eg,ep,ev,re,r,rp) function c47530026.advcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE) return e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE)
end end
function c47530026.psplimit(e,c) function c47530026.psplimit(e,c)
return not c:IsRace(RACE_MACHINE) return not c:IsRace(RACE_MACHINE)
end end
function c47530026.setfilter(c) function c47530026.setfilter(c)
return c47530026.IsEFSF(c) and c:IsType(TYPE_TRAP) and c:IsType(TYPE_COUNTER) return c47530026.IsEFSF(c) and c:IsType(TYPE_TRAP) and c:IsType(TYPE_COUNTER)
end end
function c47530026.sumtg(e,tp,eg,ep,ev,re,r,rp,chk) function c47530026.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return c:IsSummonable(true,nil,1) or c:IsMSetable(true,nil,1) end if chk==0 then return c:IsSummonable(true,nil,1) and Duel.IsExistingMatchingCard(c47530026.setfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,0,0)
end end
function c47530026.sumop(e,tp,eg,ep,ev,re,r,rp) function c47530026.sumop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end if not c:IsRelateToEffect(e) then return end
if Duel.Summon(tp,c,true,nil,1)~=0 then if Duel.Summon(tp,c,true,nil,1)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,c47530026.setfilter,tp,LOCATION_DECK,0,1,1,nil,false) local g=Duel.SelectMatchingCard(tp,c47530026.setfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,false)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SSet(tp,g:GetFirst()) Duel.SSet(tp,g:GetFirst())
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
end end
function c47530026.otfilter(c) function c47530026.otfilter(c)
return c:GetSummonLocation()==LOCATION_EXTRA and c:IsRace(RACE_MACHINE) return c:GetSummonLocation()==LOCATION_EXTRA and c:IsRace(RACE_MACHINE)
end end
function c47530026.otcon(e,c,minc) function c47530026.otcon(e,c,minc)
if c==nil then return true end if c==nil then return true end
local mg=Duel.GetMatchingGroup(c47530026.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil) local mg=Duel.GetMatchingGroup(c47530026.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil)
return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg) return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg)
end end
function c47530026.otop(e,tp,eg,ep,ev,re,r,rp,c) function c47530026.otop(e,tp,eg,ep,ev,re,r,rp,c)
local mg=Duel.GetMatchingGroup(c47530026.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil) local mg=Duel.GetMatchingGroup(c47530026.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil)
local sg=Duel.SelectTribute(tp,c,1,1,mg) local sg=Duel.SelectTribute(tp,c,1,1,mg)
c:SetMaterial(sg) c:SetMaterial(sg)
Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL) Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL)
end end
function c47530026.valcheck(e,c) function c47530026.valcheck(e,c)
local g=c:GetMaterial() local g=c:GetMaterial()
local tc=g:GetFirst() local tc=g:GetFirst()
local atk=0 local atk=0
local def=0 local def=0
while tc do while tc do
local catk=tc:GetTextAttack() local catk=tc:GetTextAttack()
local cdef=tc:GetTextDefense() local cdef=tc:GetTextDefense()
atk=atk+(catk>=0 and catk or 0) atk=atk+(catk>=0 and catk or 0)
def=def+(cdef>=0 and cdef or 0) def=def+(cdef>=0 and cdef or 0)
tc=g:GetNext() tc=g:GetNext()
end end
if e:GetLabel()==1 then if e:GetLabel()==1 then
e:SetLabel(0) e:SetLabel(0)
--atk continuous effect --atk continuous effect
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetValue(atk) e1:SetValue(atk)
e1:SetReset(RESET_EVENT+0xff0000) e1:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--def continuous effect --def continuous effect
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE) e2:SetCode(EFFECT_UPDATE_DEFENSE)
e2:SetValue(def) e2:SetValue(def)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
end end
\ No newline at end of file
function c47530027.initial_effect(c) function c47530027.initial_effect(c)
--pendulum summon --pendulum summon
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
--splimit --splimit
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_PZONE) e1:SetRange(LOCATION_PZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
e1:SetTarget(c47530027.psplimit) e1:SetTarget(c47530027.psplimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--summon --summon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(47530027,1)) e2:SetDescription(aux.Stringid(47530027,1))
e2:SetCategory(CATEGORY_SUMMON) e2:SetCategory(CATEGORY_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_PZONE) e2:SetRange(LOCATION_PZONE)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END) e2:SetCountLimit(1)
e2:SetTarget(c47530027.sumtg) e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e2:SetOperation(c47530027.sumop) e2:SetTarget(c47530027.sumtg)
c:RegisterEffect(e2) e2:SetOperation(c47530027.sumop)
--spsummon proc c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c) --spsummon proc
e3:SetDescription(aux.Stringid(47530027,0)) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetDescription(aux.Stringid(47530027,0))
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_SUMMON_PROC) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetValue(SUMMON_TYPE_ADVANCE) e3:SetCode(EFFECT_SUMMON_PROC)
e3:SetCondition(c47530027.otcon) e3:SetValue(SUMMON_TYPE_ADVANCE)
e3:SetOperation(c47530027.otop) e3:SetCondition(c47530027.otcon)
c:RegisterEffect(e3) e3:SetOperation(c47530027.otop)
local e4=e3:Clone() c:RegisterEffect(e3)
e4:SetCode(EFFECT_SET_PROC) local e4=e3:Clone()
c:RegisterEffect(e4) e4:SetCode(EFFECT_SET_PROC)
--tribute check c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c) --tribute check
e5:SetType(EFFECT_TYPE_SINGLE) local e5=Effect.CreateEffect(c)
e5:SetCode(EFFECT_MATERIAL_CHECK) e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetValue(c47530027.valcheck) e5:SetCode(EFFECT_MATERIAL_CHECK)
c:RegisterEffect(e5) e5:SetValue(c47530027.valcheck)
--buff c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c) --buff
e6:SetType(EFFECT_TYPE_SINGLE) local e6=Effect.CreateEffect(c)
e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e6:SetRange(LOCATION_MZONE) e6:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e6:SetCondition(c47530027.advcon) e6:SetRange(LOCATION_MZONE)
e6:SetValue(1) e6:SetCondition(c47530027.advcon)
c:RegisterEffect(e6) e6:SetValue(1)
local e7=Effect.CreateEffect(c) c:RegisterEffect(e6)
e7:SetType(EFFECT_TYPE_SINGLE) local e7=Effect.CreateEffect(c)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_IMMUNE_EFFECT) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetRange(LOCATION_MZONE) e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetCondition(c47530027.advcon) e7:SetRange(LOCATION_MZONE)
e7:SetValue(c47530027.efilter) e7:SetCondition(c47530027.advcon)
c:RegisterEffect(e7) e7:SetValue(c47530027.efilter)
local e8=Effect.CreateEffect(c) c:RegisterEffect(e7)
e8:SetType(EFFECT_TYPE_SINGLE) local e8=Effect.CreateEffect(c)
e8:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e8:SetType(EFFECT_TYPE_SINGLE)
e8:SetCode(EFFECT_EXTRA_ATTACK) e8:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e8:SetRange(LOCATION_MZONE) e8:SetCode(EFFECT_EXTRA_ATTACK)
e8:SetCondition(c47530027.advcon) e8:SetRange(LOCATION_MZONE)
e8:SetValue(1) e8:SetCondition(c47530027.advcon)
c:RegisterEffect(e8) e8:SetValue(1)
--actlimit c:RegisterEffect(e8)
local e9=Effect.CreateEffect(c) --actlimit
e9:SetType(EFFECT_TYPE_FIELD) local e9=Effect.CreateEffect(c)
e9:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e9:SetType(EFFECT_TYPE_FIELD)
e9:SetCode(EFFECT_CANNOT_ACTIVATE) e9:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e9:SetRange(LOCATION_MZONE) e9:SetCode(EFFECT_CANNOT_ACTIVATE)
e9:SetTargetRange(0,1) e9:SetRange(LOCATION_MZONE)
e9:SetValue(c47530027.aclimit) e9:SetTargetRange(0,1)
e9:SetCondition(c47530027.actcon) e9:SetValue(c47530027.aclimit)
c:RegisterEffect(e9) e9:SetCondition(c47530027.actcon)
--remove c:RegisterEffect(e9)
local e10=Effect.CreateEffect(c) --remove
e10:SetDescription(aux.Stringid(47530027,0)) local e10=Effect.CreateEffect(c)
e10:SetCategory(CATEGORY_REMOVE) e10:SetDescription(aux.Stringid(47530027,0))
e10:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e10:SetCategory(CATEGORY_REMOVE)
e10:SetCode(EVENT_BATTLE_START) e10:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e10:SetCondition(c47530027.descon) e10:SetCode(EVENT_BATTLE_START)
e10:SetTarget(c47530027.destg) e10:SetCondition(c47530027.descon)
e10:SetOperation(c47530027.desop) e10:SetTarget(c47530027.destg)
c:RegisterEffect(e10) e10:SetOperation(c47530027.desop)
end c:RegisterEffect(e10)
function c47530027.IsZEON(c) end
local m=_G["c"..c:GetCode()] function c47530027.IsZEON(c)
return m and m.is_named_with_ZEON local m=_G["c"..c:GetCode()]
end return m and m.is_named_with_ZEON
function c47530027.descon(e,tp,eg,ep,ev,re,r,rp) end
local c=e:GetHandler() function c47530027.descon(e,tp,eg,ep,ev,re,r,rp)
local bc=c:GetBattleTarget() local c=e:GetHandler()
return c:IsDualState() and Duel.GetAttacker()==c local bc=c:GetBattleTarget()
and bc and bc:IsSummonType(SUMMON_TYPE_SPECIAL) and bc:IsAbleToRemove() return c:IsDualState() and Duel.GetAttacker()==c
end and bc and bc:IsSummonType(SUMMON_TYPE_SPECIAL) and bc:IsAbleToRemove()
function c47530027.destg(e,tp,eg,ep,ev,re,r,rp,chk) end
if chk==0 then return true end function c47530027.destg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,e:GetHandler():GetBattleTarget(),1,0,0) if chk==0 then return true end
end Duel.SetOperationInfo(0,CATEGORY_REMOVE,e:GetHandler():GetBattleTarget(),1,0,0)
function c47530027.desop(e,tp,eg,ep,ev,re,r,rp) end
local bc=e:GetHandler():GetBattleTarget() function c47530027.desop(e,tp,eg,ep,ev,re,r,rp)
if bc:IsRelateToBattle() and Duel.GetControl(bc,tp)==0 then local bc=e:GetHandler():GetBattleTarget()
local atk=bc:GetAttack() if bc:IsRelateToBattle() and Duel.GetControl(bc,tp)==0 then
local lp=Duel.GetLP(1-tp) local atk=bc:GetAttack()
Duel.SetLP(1-tp,lp-atk) local lp=Duel.GetLP(1-tp)
end Duel.SetLP(1-tp,lp-atk)
end end
function c47530027.aclimit(e,re,tp) end
return not re:GetHandler():IsImmuneToEffect(e) function c47530027.aclimit(e,re,tp)
end return not re:GetHandler():IsImmuneToEffect(e)
function c47530027.actcon(e) end
return Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler() and e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE) function c47530027.actcon(e)
end return Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler() and e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE)
function c47530027.efilter(e,te) end
return te:IsActiveType(TYPE_MONSTER) and te:GetHandler():IsSummonType(SUMMON_TYPE_SPECIAL) function c47530027.efilter(e,te)
end return te:IsActiveType(TYPE_MONSTER) and te:GetHandler():IsSummonType(SUMMON_TYPE_SPECIAL)
function c47530027.advcon(e,tp,eg,ep,ev,re,r,rp) end
return e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE) function c47530027.advcon(e,tp,eg,ep,ev,re,r,rp)
end return e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE)
function c47530027.psplimit(e,c) end
return not c:IsRace(RACE_MACHINE) function c47530027.psplimit(e,c)
end return not c:IsRace(RACE_MACHINE)
function c47530027.setfilter(c) end
return c47530027.IsZEON(c) and c:IsType(TYPE_TRAP) and c:IsType(TYPE_COUNTER) function c47530027.setfilter(c)
end return c47530027.IsZEON(c) and c:IsType(TYPE_TRAP) and c:IsType(TYPE_COUNTER) and c:IsSSetable()
function c47530027.sumtg(e,tp,eg,ep,ev,re,r,rp,chk) end
local c=e:GetHandler() function c47530027.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return c:IsSummonable(true,nil,1) or c:IsMSetable(true,nil,1) end local c=e:GetHandler()
Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,0,0) if chk==0 then return c:IsSummonable(true,nil,1) and Duel.IsExistingMatchingCard(c47530027.setfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
end Duel.SetOperationInfo(0,CATEGORY_SUMMON,c,1,0,0)
function c47530027.sumop(e,tp,eg,ep,ev,re,r,rp) end
local c=e:GetHandler() function c47530027.sumop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end local c=e:GetHandler()
local pos=0 if not c:IsRelateToEffect(e) then return end
if c:IsSummonable(true,nil,1) then pos=pos+POS_FACEUP_ATTACK end if Duel.Summon(tp,c,true,nil,1)~=0 then
if c:IsMSetable(true,nil,1) then pos=pos+POS_FACEDOWN_DEFENSE end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
if pos==0 then return end local g=Duel.SelectMatchingCard(tp,c47530027.setfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,false)
if Duel.SelectPosition(tp,c,pos)==POS_FACEUP_ATTACK then if g:GetCount()>0 then
Duel.Summon(tp,c,true,nil,1) Duel.SSet(tp,g:GetFirst())
else Duel.ConfirmCards(1-tp,g)
Duel.MSet(tp,c,true,nil,1) end
end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET) end
local g=Duel.SelectMatchingCard(tp,c47530027.setfilter,tp,LOCATION_DECK,0,1,1,nil,false) function c47530027.otfilter(c)
if g:GetCount()>0 then return c:GetSummonLocation()==LOCATION_EXTRA and c:IsRace(RACE_MACHINE)
Duel.SSet(tp,g:GetFirst()) end
Duel.ConfirmCards(1-tp,g) function c47530027.otcon(e,c,minc)
end if c==nil then return true end
end local mg=Duel.GetMatchingGroup(c47530027.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil)
function c47530027.otfilter(c) return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg)
return c:GetSummonLocation()==LOCATION_EXTRA and c:IsRace(RACE_MACHINE) end
end function c47530027.otop(e,tp,eg,ep,ev,re,r,rp,c)
function c47530027.otcon(e,c,minc) local mg=Duel.GetMatchingGroup(c47530027.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil)
if c==nil then return true end local sg=Duel.SelectTribute(tp,c,1,1,mg)
local mg=Duel.GetMatchingGroup(c47530027.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil) c:SetMaterial(sg)
return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg) Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL)
end end
function c47530027.otop(e,tp,eg,ep,ev,re,r,rp,c) function c47530027.valcheck(e,c)
local mg=Duel.GetMatchingGroup(c47530027.otfilter,0,LOCATION_MZONE,LOCATION_MZONE,nil) local g=c:GetMaterial()
local sg=Duel.SelectTribute(tp,c,1,1,mg) local tc=g:GetFirst()
c:SetMaterial(sg) local atk=0
Duel.Release(sg,REASON_SUMMON+REASON_MATERIAL) local def=0
end while tc do
function c47530027.valcheck(e,c) local catk=tc:GetTextAttack()
local g=c:GetMaterial() local cdef=tc:GetTextDefense()
local tc=g:GetFirst() atk=atk+(catk>=0 and catk or 0)
local atk=0 def=def+(cdef>=0 and cdef or 0)
local def=0 tc=g:GetNext()
while tc do end
local catk=tc:GetTextAttack() if e:GetLabel()==1 then
local cdef=tc:GetTextDefense() e:SetLabel(0)
atk=atk+(catk>=0 and catk or 0) --atk continuous effect
def=def+(cdef>=0 and cdef or 0) local e1=Effect.CreateEffect(c)
tc=g:GetNext() e1:SetType(EFFECT_TYPE_SINGLE)
end e1:SetCode(EFFECT_UPDATE_ATTACK)
if e:GetLabel()==1 then e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e:SetLabel(0) e1:SetRange(LOCATION_MZONE)
--atk continuous effect e1:SetValue(atk)
local e1=Effect.CreateEffect(c) e1:SetReset(RESET_EVENT+0xff0000)
e1:SetType(EFFECT_TYPE_SINGLE) c:RegisterEffect(e1)
e1:SetCode(EFFECT_UPDATE_ATTACK) --def continuous effect
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) local e2=e1:Clone()
e1:SetRange(LOCATION_MZONE) e2:SetCode(EFFECT_UPDATE_DEFENSE)
e1:SetValue(atk) e2:SetValue(def)
e1:SetReset(RESET_EVENT+0xff0000) c:RegisterEffect(e2)
c:RegisterEffect(e1) end
--def continuous effect
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
e2:SetValue(def)
c:RegisterEffect(e2)
end
end end
\ No newline at end of file
--残落都市的余影 --残落都市的余影
function c65050026.initial_effect(c) function c65050026.initial_effect(c)
--Activate --Activate
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE) e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN) e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0) c:RegisterEffect(e0)
--indes --indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_IMMUNE_EFFECT) e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_FZONE) e1:SetRange(LOCATION_FZONE)
e1:SetTargetRange(LOCATION_ONFIELD,0) e1:SetTargetRange(LOCATION_ONFIELD,0)
e1:SetCondition(c65050026.econ) e1:SetCondition(c65050026.econ)
e1:SetTarget(c65050026.etg) e1:SetTarget(c65050026.etg)
e1:SetValue(c65050026.efilter) e1:SetValue(c65050026.efilter)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--spsummon --spsummon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP) e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetCode(EVENT_LEAVE_FIELD) e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetRange(LOCATION_FZONE) e2:SetRange(LOCATION_FZONE)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetCondition(c65050026.spcon) e2:SetCondition(c65050026.spcon)
e2:SetTarget(c65050026.sptg) e2:SetTarget(c65050026.sptg)
e2:SetOperation(c65050026.spop) e2:SetOperation(c65050026.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--todeck --todeck
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK) e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_GRAVE) e3:SetRange(LOCATION_GRAVE)
e3:SetCost(c65050026.tdcost) e3:SetCost(c65050026.tdcost)
e3:SetTarget(c65050026.tdtg) e3:SetTarget(c65050026.tdtg)
e3:SetOperation(c65050026.tdop) e3:SetOperation(c65050026.tdop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c65050026.efil(c) function c65050026.efil(c)
return not c:IsType(TYPE_NORMAL) or not c:IsFaceup() return not c:IsType(TYPE_NORMAL) or not c:IsFaceup()
end end
function c65050026.econ(e,c) function c65050026.econ(e,c)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)>0 and Duel.GetMatchingGroupCount(c65050026.efil,tp,LOCATION_MZONE,0,nil)==0 return Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)>0 and Duel.GetMatchingGroupCount(c65050026.efil,tp,LOCATION_MZONE,0,nil)==0
end end
function c65050026.etg(e,c) function c65050026.etg(e,c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) return c:IsType(TYPE_SPELL+TYPE_TRAP)
end end
function c65050026.efilter(e,re) function c65050026.efilter(e,re)
return e:GetHandlerPlayer()~=re:GetOwnerPlayer() and re:IsActiveType(TYPE_MONSTER) return e:GetHandlerPlayer()~=re:GetOwnerPlayer() and re:IsActiveType(TYPE_MONSTER)
end end
function c65050026.confil(c,tp) function c65050026.confil(c,tp)
return c:IsType(TYPE_MONSTER) and c:IsType(TYPE_NORMAL) and c:IsPreviousLocation(LOCATION_MZONE) and c:GetPreviousControler()==tp and not c:IsType(TYPE_TOKEN) return c:IsType(TYPE_MONSTER) and c:IsType(TYPE_NORMAL) and c:IsPreviousLocation(LOCATION_MZONE) and c:GetPreviousControler()==tp and not c:IsType(TYPE_TOKEN)
end end
function c65050026.spcon(e,tp,eg,ep,ev,re,r,rp) function c65050026.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c65050026.confil,1,nil,tp) return eg:IsExists(c65050026.confil,1,nil,tp)
end end
function c65050026.spfil(c,e,tp) function c65050026.spfil(c,e,tp)
return c:IsType(TYPE_NORMAL) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsType(TYPE_NORMAL) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c65050026.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050026.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c65050026.spfil,tp,LOCATION_HAND,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(c65050026.spfil,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end end
function c65050026.spop(e,tp,eg,ep,ev,re,r,rp) function c65050026.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c65050026.spfil,tp,LOCATION_HAND,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c65050026.spfil,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
end end
function c65050026.tdcostfil(c) function c65050026.tdcostfil(c)
return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup() return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup()
end end
function c65050026.tdcost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050026.tdcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050026.costfil,tp,LOCATION_EXTRA,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65050026.tdcostfil,tp,LOCATION_EXTRA,0,1,nil) end
local g=Duel.SelectMatchingCard(tp,c65050026.costfil,tp,LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050026.tdcostfil,tp,LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c65050026.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050026.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeck() end if chk==0 then return e:GetHandler():IsAbleToDeck() end
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
function c65050026.tdop(e,tp,eg,ep,ev,re,r,rp) function c65050026.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,2,REASON_EFFECT) Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
end end
end end
\ No newline at end of file
--残落都市的锈音 --残落都市的锈音
function c65050027.initial_effect(c) function c65050027.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c65050027.target) e1:SetTarget(c65050027.target)
e1:SetOperation(c65050027.activate) e1:SetOperation(c65050027.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--todeck --todeck
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TODECK) e2:SetCategory(CATEGORY_TODECK)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCost(c65050027.tdcost) e2:SetCost(c65050027.tdcost)
e2:SetTarget(c65050027.tdtg) e2:SetTarget(c65050027.tdtg)
e2:SetOperation(c65050027.tdop) e2:SetOperation(c65050027.tdop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c65050027.filter(c,e,tp) function c65050027.filter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsType(TYPE_NORMAL) and c:IsFaceup() return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsType(TYPE_NORMAL) and c:IsFaceup()
end end
function c65050027.target(e,tp,eg,ep,ev,re,r,rp,chk) function c65050027.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCountFromEx(tp)>0 if chk==0 then return Duel.GetLocationCountFromEx(tp)>0
and Duel.IsExistingMatchingCard(c65050027.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(c65050027.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
function c65050027.activate(e,tp,eg,ep,ev,re,r,rp) function c65050027.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c65050027.filter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp) local g=Duel.SelectTarget(tp,c65050027.filter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
if g:GetCount()>0 and Duel.GetLocationCountFromEx(tp)>0 then if g:GetCount()>0 and Duel.GetLocationCountFromEx(tp)>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
end end
function c65050027.tdcostfil(c) function c65050027.tdcostfil(c)
return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup() return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup()
end end
function c65050027.tdcost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050027.tdcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050027.costfil,tp,LOCATION_EXTRA,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65050027.tdcostfil,tp,LOCATION_EXTRA,0,1,nil) end
local g=Duel.SelectMatchingCard(tp,c65050027.costfil,tp,LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050027.tdcostfil,tp,LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c65050027.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050027.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeck() end if chk==0 then return e:GetHandler():IsAbleToDeck() end
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
function c65050027.tdop(e,tp,eg,ep,ev,re,r,rp) function c65050027.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,2,REASON_EFFECT) Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
end end
end end
\ No newline at end of file
--残落都市的遗存 --残落都市的遗存
function c65050028.initial_effect(c) function c65050028.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TODECK) e1:SetCategory(CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_ATTACK,0x11e0) e1:SetHintTiming(TIMING_ATTACK,0x11e0)
e1:SetCost(c65050028.cost) e1:SetCost(c65050028.cost)
e1:SetTarget(c65050028.target) e1:SetTarget(c65050028.target)
e1:SetOperation(c65050028.activate) e1:SetOperation(c65050028.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--todeck --todeck
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TODECK) e2:SetCategory(CATEGORY_TODECK)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCost(c65050028.tdcost) e2:SetCost(c65050028.tdcost)
e2:SetTarget(c65050028.tdtg) e2:SetTarget(c65050028.tdtg)
e2:SetOperation(c65050028.tdop) e2:SetOperation(c65050028.tdop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c65050028.costfil(c) function c65050028.costfil(c)
return c:IsType(TYPE_MONSTER) and c:IsType(TYPE_NORMAL) and (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) and c:IsAbleToGraveAsCost() return c:IsType(TYPE_MONSTER) and c:IsType(TYPE_NORMAL) and (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) and c:IsAbleToGraveAsCost()
end end
function c65050028.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050028.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050028.costfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65050028.costfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil) end
local g=Duel.SelectMatchingCard(tp,c65050028.costfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050028.costfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c65050028.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c65050028.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and chkc~=e:GetHandler() end if chkc then return chkc:IsOnField() and chkc~=e:GetHandler() end
if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,e:GetHandler()) end if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,e:GetHandler()) local g=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,0,0)
end end
function c65050028.activate(e,tp,eg,ep,ev,re,r,rp) function c65050028.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then if tc:IsRelateToEffect(e) then
Duel.SendtoDeck(tc,nil,2,REASON_EFFECT) Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)
end end
end end
function c65050028.tdcostfil(c) function c65050028.tdcostfil(c)
return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup() return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup()
end end
function c65050028.tdcost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050028.tdcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050028.costfil,tp,LOCATION_EXTRA,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65050028.tdcostfil,tp,LOCATION_EXTRA,0,1,nil) end
local g=Duel.SelectMatchingCard(tp,c65050028.costfil,tp,LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050028.tdcostfil,tp,LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c65050028.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050028.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeck() end if chk==0 then return e:GetHandler():IsAbleToDeck() end
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
function c65050028.tdop(e,tp,eg,ep,ev,re,r,rp) function c65050028.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,2,REASON_EFFECT) Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
end end
end end
\ No newline at end of file
--于残落都市的流离 --于残落都市的流离
function c65050029.initial_effect(c) function c65050029.initial_effect(c)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(c65050029.con) e1:SetCondition(c65050029.con)
e1:SetCost(c65050029.cost) e1:SetCost(c65050029.cost)
e1:SetTarget(c65050029.tg) e1:SetTarget(c65050029.tg)
e1:SetOperation(c65050029.op) e1:SetOperation(c65050029.op)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--todeck --todeck
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TODECK) e2:SetCategory(CATEGORY_TODECK)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCost(c65050029.tdcost) e2:SetCost(c65050029.tdcost)
e2:SetTarget(c65050029.tdtg) e2:SetTarget(c65050029.tdtg)
e2:SetOperation(c65050029.tdop) e2:SetOperation(c65050029.tdop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--act in hand --act in hand
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_TRAP_ACT_IN_HAND) e3:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e3:SetCondition(c65050029.actcon) e3:SetCondition(c65050029.actcon)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c65050029.hdcostfil(c) function c65050029.hdcostfil(c)
return c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsAbleToGraveAsCost() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) return c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsAbleToGraveAsCost() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup())
end end
function c65050029.actcon(e,c) function c65050029.actcon(e,c)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return Duel.IsExistingMatchingCard(c65050029.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil) return Duel.IsExistingMatchingCard(c65050029.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil)
end end
function c65050029.confil(c) function c65050029.confil(c)
return c:IsFacedown() or not c:IsType(TYPE_NORMAL) return c:IsFacedown() or not c:IsType(TYPE_NORMAL)
end end
function c65050029.con(e,tp,eg,ep,ev,re,r,rp) function c65050029.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetMatchingGroupCount(c65050029.confil,tp,LOCATION_MZONE,0,nil)==0 return Duel.GetMatchingGroupCount(c65050029.confil,tp,LOCATION_MZONE,0,nil)==0
end end
function c65050029.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050029.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
if e:GetHandler():IsStatus(STATUS_ACT_FROM_HAND) then if e:GetHandler():IsStatus(STATUS_ACT_FROM_HAND) then
local g=Duel.SelectMatchingCard(tp,c65050029.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050029.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
end end
function c65050029.tgfil(c) function c65050029.tgfil(c)
return c:IsSetCard(0xada4) and c:IsType(TYPE_PENDULUM) and not c:IsForbidden() return c:IsSetCard(0xada4) and c:IsType(TYPE_PENDULUM) and not c:IsForbidden()
end end
function c65050029.tg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050029.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050029.tgfil,tp,LOCATION_DECK,0,1,nil) and (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) and Duel.GetLocationCount(tp,LOCATION_SZONE)>1 end if chk==0 then return Duel.IsExistingMatchingCard(c65050029.tgfil,tp,LOCATION_DECK,0,1,nil) and (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) and Duel.GetLocationCount(tp,LOCATION_SZONE)>1 end
end end
function c65050029.spfil(c,e,tp) function c65050029.spfil(c,e,tp)
return c:IsType(TYPE_NORMAL) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsType(TYPE_NORMAL) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c65050029.op(e,tp,eg,ep,ev,re,r,rp) function c65050029.op(e,tp,eg,ep,ev,re,r,rp)
if not (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) then return end if not (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,c65050029.tgfil,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050029.tgfil,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc then
if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)==0 and Duel.IsExistingMatchingCard(c65050029.spfil,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp) and Duel.SelectYesNo(tp,aux.Stringid(65050029,0)) then if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)==0 and Duel.IsExistingMatchingCard(c65050029.spfil,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp) and Duel.SelectYesNo(tp,aux.Stringid(65050029,0)) then
local gg=Duel.SelectMatchingCard(tp,c65050029.spfil,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp) local gg=Duel.SelectMatchingCard(tp,c65050029.spfil,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SpecialSummon(gg,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(gg,0,tp,tp,false,false,POS_FACEUP)
end end
end end
end end
function c65050029.tdcostfil(c) function c65050029.tdcostfil(c)
return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup() return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup()
end end
function c65050029.tdcost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050029.tdcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050029.costfil,tp,LOCATION_EXTRA,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65050029.tdcostfil,tp,LOCATION_EXTRA,0,1,nil) end
local g=Duel.SelectMatchingCard(tp,c65050029.costfil,tp,LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050029.tdcostfil,tp,LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c65050029.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050029.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeck() end if chk==0 then return e:GetHandler():IsAbleToDeck() end
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
function c65050029.tdop(e,tp,eg,ep,ev,re,r,rp) function c65050029.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,2,REASON_EFFECT) Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
end end
end end
\ No newline at end of file
--在残落都市的晚宴 --在残落都市的晚宴
function c65050030.initial_effect(c) function c65050030.initial_effect(c)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DRAW) e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCost(c65050030.cost) e1:SetCost(c65050030.cost)
e1:SetTarget(c65050030.tg) e1:SetTarget(c65050030.tg)
e1:SetOperation(c65050030.op) e1:SetOperation(c65050030.op)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--todeck --todeck
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TODECK) e2:SetCategory(CATEGORY_TODECK)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCost(c65050030.tdcost) e2:SetCost(c65050030.tdcost)
e2:SetTarget(c65050030.tdtg) e2:SetTarget(c65050030.tdtg)
e2:SetOperation(c65050030.tdop) e2:SetOperation(c65050030.tdop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--act in hand --act in hand
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_TRAP_ACT_IN_HAND) e3:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e3:SetCondition(c65050030.actcon) e3:SetCondition(c65050030.actcon)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c65050030.hdcostfil(c) function c65050030.hdcostfil(c)
return c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsAbleToGraveAsCost() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) return c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsAbleToGraveAsCost() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup())
end end
function c65050030.actcon(e,c) function c65050030.actcon(e,c)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return Duel.IsExistingMatchingCard(c65050030.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil) return Duel.IsExistingMatchingCard(c65050030.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil)
end end
function c65050030.confil(c) function c65050030.confil(c)
return c:IsFacedown() or not c:IsType(TYPE_NORMAL) return c:IsFacedown() or not c:IsType(TYPE_NORMAL)
end end
function c65050030.con(e,tp,eg,ep,ev,re,r,rp) function c65050030.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetMatchingGroupCount(c65050030.confil,tp,LOCATION_MZONE,0,nil)==0 return Duel.GetMatchingGroupCount(c65050030.confil,tp,LOCATION_MZONE,0,nil)==0
end end
function c65050030.costfil(c) function c65050030.costfil(c)
return c:IsAbleToDeckAsCost() and c:IsType(TYPE_MONSTER) and c:IsType(TYPE_NORMAL) and (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup()) return c:IsAbleToDeckAsCost() and c:IsType(TYPE_MONSTER) and c:IsType(TYPE_NORMAL) and (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup())
end end
function c65050030.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050030.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050030.costfil,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,5,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65050030.costfil,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,5,nil) end
if e:GetHandler():IsStatus(STATUS_ACT_FROM_HAND) then if e:GetHandler():IsStatus(STATUS_ACT_FROM_HAND) then
local g=Duel.SelectMatchingCard(tp,c65050030.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050030.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
local g=Duel.SelectMatchingCard(tp,c65050030.costfil,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,5,5,nil) local g=Duel.SelectMatchingCard(tp,c65050030.costfil,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,5,5,nil)
Duel.SendtoDeck(g,nil,2,REASON_COST) Duel.SendtoDeck(g,nil,2,REASON_COST)
end end
function c65050030.tg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050030.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp) Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2) Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end end
function c65050030.op(e,tp,eg,ep,ev,re,r,rp) function c65050030.op(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM) local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT) Duel.Draw(p,d,REASON_EFFECT)
end end
function c65050030.tdcostfil(c) function c65050030.tdcostfil(c)
return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup() return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup()
end end
function c65050030.tdcost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050030.tdcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050030.costfil,tp,LOCATION_EXTRA,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65050030.tdcostfil,tp,LOCATION_EXTRA,0,1,nil) end
local g=Duel.SelectMatchingCard(tp,c65050030.costfil,tp,LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050030.tdcostfil,tp,LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c65050030.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050030.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeck() end if chk==0 then return e:GetHandler():IsAbleToDeck() end
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
function c65050030.tdop(e,tp,eg,ep,ev,re,r,rp) function c65050030.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,2,REASON_EFFECT) Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
end end
end end
--自残落都市的佚页 --自残落都市的佚页
function c65050031.initial_effect(c) function c65050031.initial_effect(c)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_NEGATE+CATEGORY_SEARCH+CATEGORY_TOHAND) e1:SetCategory(CATEGORY_NEGATE+CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetCountLimit(1,65050031+EFFECT_COUNT_CODE_OATH) e1:SetCountLimit(1,65050031+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(c65050031.con) e1:SetCondition(c65050031.con)
e1:SetCost(c65050031.cost) e1:SetCost(c65050031.cost)
e1:SetTarget(c65050031.tg) e1:SetTarget(c65050031.tg)
e1:SetOperation(c65050031.op) e1:SetOperation(c65050031.op)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--todeck --todeck
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TODECK) e2:SetCategory(CATEGORY_TODECK)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCost(c65050031.tdcost) e2:SetCost(c65050031.tdcost)
e2:SetTarget(c65050031.tdtg) e2:SetTarget(c65050031.tdtg)
e2:SetOperation(c65050031.tdop) e2:SetOperation(c65050031.tdop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--act in hand --act in hand
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_TRAP_ACT_IN_HAND) e3:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e3:SetCondition(c65050031.actcon) e3:SetCondition(c65050031.actcon)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c65050031.hdcostfil(c) function c65050031.hdcostfil(c)
return c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsAbleToGraveAsCost() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) return c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsAbleToGraveAsCost() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup())
end end
function c65050031.actcon(e,c) function c65050031.actcon(e,c)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return Duel.IsExistingMatchingCard(c65050031.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil) return Duel.IsExistingMatchingCard(c65050031.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,nil)
end end
function c65050031.confil(c) function c65050031.confil(c)
return c:IsFacedown() or not c:IsType(TYPE_NORMAL) or c:IsType(TYPE_TOKEN) return c:IsFacedown() or not c:IsType(TYPE_NORMAL) or c:IsType(TYPE_TOKEN)
end end
function c65050031.con(e,tp,eg,ep,ev,re,r,rp) function c65050031.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetMatchingGroupCount(c65050031.confil,tp,LOCATION_MZONE,0,nil)==0 and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)>0 and (Duel.IsChainNegatable(ev) or Duel.IsChainDisablable(ev)) and re:GetHandlerPlayer()~=tp return Duel.GetMatchingGroupCount(c65050031.confil,tp,LOCATION_MZONE,0,nil)==0 and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)>0 and (Duel.IsChainNegatable(ev) or Duel.IsChainDisablable(ev)) and re:GetHandlerPlayer()~=tp
end end
function c65050031.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050031.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
if e:GetHandler():IsStatus(STATUS_ACT_FROM_HAND) then if e:GetHandler():IsStatus(STATUS_ACT_FROM_HAND) then
local g=Duel.SelectMatchingCard(tp,c65050031.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050031.hdcostfil,tp,LOCATION_HAND+LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
end end
function c65050031.tgfil(c) function c65050031.tgfil(c)
return c:IsType(TYPE_MONSTER) and c:IsType(TYPE_NORMAL) and c:IsAbleToHand() return c:IsType(TYPE_MONSTER) and c:IsType(TYPE_NORMAL) and c:IsAbleToHand()
end end
function c65050031.tg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050031.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050031.tgfil,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65050031.tgfil,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function c65050031.op(e,tp,eg,ep,ev,re,r,rp) function c65050031.op(e,tp,eg,ep,ev,re,r,rp)
local num=0 local num=0
if Duel.NegateActivation(ev) then num=1 end if Duel.NegateActivation(ev) then num=1 end
if num==0 and Duel.NegateEffect(ev) then num=1 end if num==0 and Duel.NegateEffect(ev) then num=1 end
if num==1 then if num==1 then
local g=Duel.SelectMatchingCard(tp,c65050031.tgfil,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050031.tgfil,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SendtoHand(g,tp,REASON_EFFECT) Duel.SendtoHand(g,tp,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
end end
function c65050031.tdcostfil(c) function c65050031.tdcostfil(c)
return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup() return c:IsAbleToGraveAsCost() and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsFaceup()
end end
function c65050031.tdcost(e,tp,eg,ep,ev,re,r,rp,chk) function c65050031.tdcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65050031.costfil,tp,LOCATION_EXTRA,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65050031.tdcostfil,tp,LOCATION_EXTRA,0,1,nil) end
local g=Duel.SelectMatchingCard(tp,c65050031.costfil,tp,LOCATION_EXTRA,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c65050031.tdcostfil,tp,LOCATION_EXTRA,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c65050031.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c65050031.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeck() end if chk==0 then return e:GetHandler():IsAbleToDeck() end
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
function c65050031.tdop(e,tp,eg,ep,ev,re,r,rp) function c65050031.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,2,REASON_EFFECT) Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
end end
end end
...@@ -11,7 +11,7 @@ function c75646502.initial_effect(c) ...@@ -11,7 +11,7 @@ function c75646502.initial_effect(c)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,75646502) e1:SetCountLimit(1,75646502)
e1:SetCondition(c18940556.condition) e1:SetCondition(c75646502.condition)
e1:SetTarget(c75646502.target) e1:SetTarget(c75646502.target)
e1:SetOperation(c75646502.operation) e1:SetOperation(c75646502.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
......
ygopro.exe 44e30d7dddeffa0acba31435632a7c80 ygopro.exe 44e30d7dddeffa0acba31435632a7c80
deck/2019.6.8_new_card1.ydk 6112722b7b9a6b4618c6923786fa7b49 deck/2019.6.8_new_card1.ydk 6112722b7b9a6b4618c6923786fa7b49
deck/2019.6.8_new_card2.ydk b7b42b082ea473bb3934982ae9cf6a7d deck/2019.6.8_new_card2.ydk b7b42b082ea473bb3934982ae9cf6a7d
deck/2019.6.8_new_card3.ydk 042b34e4671b1e326082460f68a5590f deck/2019.6.8_new_card3.ydk 042b34e4671b1e326082460f68a5590f
...@@ -7,7 +7,7 @@ deck/2019.6.8_new_card5.ydk 3552c713927f7c4e38e0c883210d63bd ...@@ -7,7 +7,7 @@ deck/2019.6.8_new_card5.ydk 3552c713927f7c4e38e0c883210d63bd
deck/2019.6.8_new_card6.ydk cb6d0fa9ffd37fa9be52ba48b41b0992 deck/2019.6.8_new_card6.ydk cb6d0fa9ffd37fa9be52ba48b41b0992
deck/2019.6.8_new_card7.ydk 5511a5f23236c723140693cf3cd0cf01 deck/2019.6.8_new_card7.ydk 5511a5f23236c723140693cf3cd0cf01
expansions/222DIY.cdb 7d5a270ea6aa44fe56866dc7ac9c5351 expansions/222DIY.cdb 7d5a270ea6aa44fe56866dc7ac9c5351
expansions/lflist.conf db8f62dadd719d43cb79cc136a15f980 expansions/lflist.conf a0e5c8c0aa96a7169324d5bf7eab2c5f
expansions/strings.conf ffdc5173327cd91803c7345f5d1c62fc expansions/strings.conf ffdc5173327cd91803c7345f5d1c62fc
expansions/pics/08209710.jpg ed0e60085631bfa641ffeebd6abbd910 expansions/pics/08209710.jpg ed0e60085631bfa641ffeebd6abbd910
expansions/pics/1000360.jpg d1aa6f44fcd413402141a6bf4b886c2a expansions/pics/1000360.jpg d1aa6f44fcd413402141a6bf4b886c2a
......
2019/6/9 14:19:06 2019/6/17 20:16:06
\ No newline at end of file \ 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