Commit ce0e0358 authored by Tachibana's avatar Tachibana

1145141919810

parent e55a7690
...@@ -67,12 +67,13 @@ function c37900999.remop(e,tp,eg,ep,ev,re,r,rp) ...@@ -67,12 +67,13 @@ function c37900999.remop(e,tp,eg,ep,ev,re,r,rp)
if sg:GetCount()>0 and Duel.Remove(sg,POS_FACEUP,REASON_EFFECT)~=0 then if sg:GetCount()>0 and Duel.Remove(sg,POS_FACEUP,REASON_EFFECT)~=0 then
local tc=sg:GetFirst() local tc=sg:GetFirst()
for tc in aux.Next(sg) do for tc in aux.Next(sg) do
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_CANNOT_TRIGGER) e3:SetCode(EFFECT_CANNOT_TRIGGER)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_REMOVED) e3:SetRange(LOCATION_REMOVED)
e3:SetReset(RESET_EVENT+RESETS_STANDARD) e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3)
end end
end end
end end
......
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
local m=40006881 local m=40006881
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_AShapeShifter=1 cm.named_with_AShapeShifter=1
function cm.AShapeShifter(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_AShapeShifter
end
function cm.initial_effect(c) function cm.initial_effect(c)
--search --search
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -9,6 +13,7 @@ function cm.initial_effect(c) ...@@ -9,6 +13,7 @@ function cm.initial_effect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE) e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,m)
e1:SetCost(cm.sscost) e1:SetCost(cm.sscost)
e1:SetTarget(cm.sstg) e1:SetTarget(cm.sstg)
e1:SetOperation(cm.ssop) e1:SetOperation(cm.ssop)
...@@ -20,23 +25,23 @@ function cm.initial_effect(c) ...@@ -20,23 +25,23 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,m) e2:SetCountLimit(1,m+1)
e2:SetCondition(cm.spcon2) e2:SetCondition(cm.spcon2)
e2:SetTarget(cm.eqtg) e2:SetTarget(cm.eqtg)
e2:SetOperation(cm.eqop) e2:SetOperation(cm.eqop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--search --search
--local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
--e3:SetDescription(aux.Stringid(m,2)) e3:SetDescription(aux.Stringid(m,2))
--e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
--e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
--e3:SetProperty(EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DELAY)
--e3:SetCode(EVENT_TO_GRAVE) e3:SetCode(EVENT_TO_GRAVE)
--e3:SetCountLimit(1,m) e3:SetCountLimit(1,40007999)
--e3:SetCondition(cm.thcon) e3:SetCondition(cm.thcon)
--e3:SetTarget(cm.thtg) e3:SetTarget(cm.thtg)
--e3:SetOperation(cm.thop) e3:SetOperation(cm.thop)
--c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function cm.sscost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sscost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeckAsCost,tp,LOCATION_HAND,0,1,e:GetHandler()) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeckAsCost,tp,LOCATION_HAND,0,1,e:GetHandler()) end
...@@ -59,7 +64,7 @@ function cm.ssop(e,tp,eg,ep,ev,re,r,rp) ...@@ -59,7 +64,7 @@ function cm.ssop(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp) function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return cm.AShapeShifter(c) return re and cm.AShapeShifter(re)
end end
function cm.eqfilter(c) function cm.eqfilter(c)
return c:IsRace(RACE_PSYCHO) and c:IsAttribute(ATTRIBUTE_DARK) and not c:IsForbidden() return c:IsRace(RACE_PSYCHO) and c:IsAttribute(ATTRIBUTE_DARK) and not c:IsForbidden()
......
...@@ -5,13 +5,13 @@ cm.named_with_ZerothDragon=1 ...@@ -5,13 +5,13 @@ cm.named_with_ZerothDragon=1
function cm.initial_effect(c) function cm.initial_effect(c)
--fusion material --fusion material
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,aux.FilterBoolFunction(Card.IsFusionType,TYPE_MONSTER),2,true) aux.AddFusionProcFunRep(c,aux.FilterBoolFunction(Card.IsFusionType,TYPE_MONSTER),5,true)
--material limit --spsummon condition
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE) e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_MATERIAL_LIMIT) e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(cm.matlimit) e0:SetValue(cm.splimit)
c:RegisterEffect(e0) c:RegisterEffect(e0)
--spsummon condition --spsummon condition
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -81,13 +81,8 @@ function cm.initial_effect(c) ...@@ -81,13 +81,8 @@ function cm.initial_effect(c)
e8:SetLabelObject(e4) e8:SetLabelObject(e4)
c:RegisterEffect(e8) c:RegisterEffect(e8)
end end
function cm.matlimit(e,c,fc,st) function cm.splimit(e,se,sp,st)
if st~=SUMMON_TYPE_FUSION then return true end return se:GetHandler():IsCode(24094653)
return c:IsControler(fc:GetControler()) and c:IsLocation(LOCATION_ONFIELD+LOCATION_HAND)
end
function cm.matlimit(e,c,st)
if st~=SUMMON_TYPE_FUSION then return true end
return c:IsControler()==e:GetHandlerPlayer() and c:IsLocation(LOCATION_ALL)
end end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp) function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return bit.band(sumpos,POS_FACEDOWN)>0 return bit.band(sumpos,POS_FACEDOWN)>0
......
...@@ -117,11 +117,15 @@ end ...@@ -117,11 +117,15 @@ end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m) return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m)
end end
function cm.ogfilter(c)
return c:IsOriginalCodeRule(40009582)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp) function cm.fdop(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)
local c=e:GetHandler() local c=e:GetHandler()
local mg=e:GetHandler():GetReasonCard():GetMaterialCount() local mg=e:GetHandler():GetReasonCard():GetMaterialCount()
if Duel.Recover(p,d,REASON_EFFECT) and mg>=3 then local og=e:GetHandler():GetReasonCard():GetMaterial():IsExists(cm.ogfilter,1,nil)
if Duel.Recover(p,d,REASON_EFFECT) and (mg>=3 or og>0) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
if g2:GetCount()>0 then if g2:GetCount()>0 then
......
...@@ -117,11 +117,15 @@ end ...@@ -117,11 +117,15 @@ end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m) return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m)
end end
function cm.ogfilter(c)
return c:IsOriginalCodeRule(40009582)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp) function cm.fdop(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)
local c=e:GetHandler() local c=e:GetHandler()
local mg=e:GetHandler():GetReasonCard():GetMaterialCount() local mg=e:GetHandler():GetReasonCard():GetMaterialCount()
if Duel.Draw(p,d,REASON_EFFECT) and mg>=3 then local og=e:GetHandler():GetReasonCard():GetMaterial():IsExists(cm.ogfilter,1,nil)
if Duel.Draw(p,d,REASON_EFFECT) and (mg>=3 or og>0) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
if g2:GetCount()>0 then if g2:GetCount()>0 then
......
...@@ -118,14 +118,18 @@ end ...@@ -118,14 +118,18 @@ end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m) return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m)
end end
function cm.ogfilter(c)
return c:IsOriginalCodeRule(40009582)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp) function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.tffilter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst() local tc=Duel.SelectMatchingCard(tp,cm.tffilter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
local c=e:GetHandler() local c=e:GetHandler()
local mg=e:GetHandler():GetReasonCard():GetMaterialCount() local mg=e:GetHandler():GetReasonCard():GetMaterialCount()
local og=e:GetHandler():GetReasonCard():GetMaterial():IsExists(cm.ogfilter,1,nil)
if tc then if tc then
if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) and mg>=3 then if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) and (mg>=3 or og>0) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
if g2:GetCount()>0 then if g2:GetCount()>0 then
......
...@@ -118,13 +118,17 @@ end ...@@ -118,13 +118,17 @@ end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m) return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m)
end end
function cm.ogfilter(c)
return c:IsOriginalCodeRule(40009582)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp) function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local mg=e:GetHandler():GetReasonCard():GetMaterialCount() local mg=e:GetHandler():GetReasonCard():GetMaterialCount()
local og=e:GetHandler():GetReasonCard():GetMaterial():IsExists(cm.ogfilter,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.tffilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.tffilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
if Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 and Duel.ConfirmCards(1-tp,g) and mg>=3 then if Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 and Duel.ConfirmCards(1-tp,g) and (mg>=3 or og>0) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
if g2:GetCount()>0 then if g2:GetCount()>0 then
......
...@@ -115,10 +115,14 @@ end ...@@ -115,10 +115,14 @@ end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m) return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m)
end end
function cm.ogfilter(c)
return c:IsOriginalCodeRule(40009582)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp) function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local mg=e:GetHandler():GetReasonCard():GetMaterialCount() local mg=e:GetHandler():GetReasonCard():GetMaterialCount()
if Duel.DiscardDeck(tp,3,REASON_EFFECT)~=0 and mg>=3 then local og=e:GetHandler():GetReasonCard():GetMaterial():IsExists(cm.ogfilter,1,nil)
if Duel.DiscardDeck(tp,3,REASON_EFFECT)~=0 and (mg>=3 or og>0) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
if g2:GetCount()>0 then if g2:GetCount()>0 then
......
...@@ -115,9 +115,13 @@ end ...@@ -115,9 +115,13 @@ end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m) return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m)
end end
function cm.ogfilter(c)
return c:IsOriginalCodeRule(40009582)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp) function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local mg=e:GetHandler():GetReasonCard():GetMaterialCount() local mg=e:GetHandler():GetReasonCard():GetMaterialCount()
local og=e:GetHandler():GetReasonCard():GetMaterial():IsExists(cm.ogfilter,1,nil)
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil) local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
local tc=g:GetFirst() local tc=g:GetFirst()
while tc do while tc do
...@@ -134,7 +138,7 @@ function cm.fdop(e,tp,eg,ep,ev,re,r,rp) ...@@ -134,7 +138,7 @@ function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
if mg>=3 then if (mg>=3 or og>0) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
if g2:GetCount()>0 then if g2:GetCount()>0 then
......
...@@ -118,14 +118,18 @@ end ...@@ -118,14 +118,18 @@ end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m) return (cm.Chrono(c) or c:IsSetCard(0x126)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(m)
end end
function cm.ogfilter(c)
return c:IsOriginalCodeRule(40009582)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp) function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.tffilter,tp,LOCATION_GRAVE,0,1,1,nil,tp):GetFirst() local tc=Duel.SelectMatchingCard(tp,cm.tffilter,tp,LOCATION_GRAVE,0,1,1,nil,tp):GetFirst()
local c=e:GetHandler() local c=e:GetHandler()
local mg=e:GetHandler():GetReasonCard():GetMaterialCount() local mg=e:GetHandler():GetReasonCard():GetMaterialCount()
local og=e:GetHandler():GetReasonCard():GetMaterial():IsExists(cm.ogfilter,1,nil)
if tc then if tc then
if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) and mg>=3 then if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) and (mg>=3 or og>0) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
if g2:GetCount()>0 then if g2:GetCount()>0 then
......
...@@ -116,14 +116,18 @@ function cm.fdtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -116,14 +116,18 @@ function cm.fdtg(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end end
function cm.ogfilter(c)
return c:IsOriginalCodeRule(40009582)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp) function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local mg=e:GetHandler():GetReasonCard():GetMaterialCount() local mg=e:GetHandler():GetReasonCard():GetMaterialCount()
local og=e:GetHandler():GetReasonCard():GetMaterial():IsExists(cm.ogfilter,1,nil)
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,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
if Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 and mg>=3 then if Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 and (mg>=3 or og>0) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
if g2:GetCount()>0 then if g2:GetCount()>0 then
......
...@@ -124,7 +124,7 @@ function c40008674.scop(e,tp,eg,ep,ev,re,r,rp) ...@@ -124,7 +124,7 @@ function c40008674.scop(e,tp,eg,ep,ev,re,r,rp)
end end
function c40008674.cfilter(c,tp) function c40008674.cfilter(c,tp)
return c:IsSetCard(0xf14) and c:IsAbleToRemoveAsCost() return c:IsSetCard(0x10c5) and c:IsAbleToRemoveAsCost()
end end
function c40008674.thcost(e,tp,eg,ep,ev,re,r,rp,chk) function c40008674.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -144,7 +144,7 @@ function c40008674.dbop(e,tp,eg,ep,ev,re,r,rp) ...@@ -144,7 +144,7 @@ function c40008674.dbop(e,tp,eg,ep,ev,re,r,rp)
if ct==0 then return end if ct==0 then return end
local tc=Duel.GetOperatedGroup():GetFirst() local tc=Duel.GetOperatedGroup():GetFirst()
if tc:IsSetCard(0xf14) then if tc:IsSetCard(0x10c5) then
if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008674,2)) then if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008674,2)) then
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect() Duel.BreakEffect()
......
...@@ -8,7 +8,7 @@ if not rsv.InfernalKnight then ...@@ -8,7 +8,7 @@ if not rsv.InfernalKnight then
rsik=rsv.InfernalKnight rsik=rsv.InfernalKnight
function rsik.costfilter(c,tp) function rsik.costfilter(c,tp)
if c:IsLocation(LOCATION_HAND) then return c:IsDiscardable() end if c:IsLocation(LOCATION_HAND) then return c:IsDiscardable() end
return Duel.IsPlayerAffectedByEffect(tp,m) and c:IsLocation(LOCATION_DECK) and c:IsSetCard(0xf14) and c:IsAbleToGraveAsCost() return Duel.IsPlayerAffectedByEffect(tp,m) and c:IsLocation(LOCATION_DECK) and c:IsSetCard(0x10c5) and c:IsAbleToGraveAsCost()
end end
function rsik.cost(extrafun) function rsik.cost(extrafun)
return function(e,tp,eg,ep,ev,re,r,rp,chk) return function(e,tp,eg,ep,ev,re,r,rp,chk)
...@@ -44,7 +44,7 @@ function cm.initial_effect(c) ...@@ -44,7 +44,7 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_QP_ACT_IN_NTPHAND) e2:SetCode(EFFECT_QP_ACT_IN_NTPHAND)
e2:SetRange(LOCATION_FZONE) e2:SetRange(LOCATION_FZONE)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0xf14)) e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x10c5))
e2:SetTargetRange(LOCATION_HAND,0) e2:SetTargetRange(LOCATION_HAND,0)
e2:SetCondition(cm.actcon) e2:SetCondition(cm.actcon)
c:RegisterEffect(e2) c:RegisterEffect(e2)
...@@ -78,7 +78,7 @@ function cm.initial_effect(c) ...@@ -78,7 +78,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e6) c:RegisterEffect(e6)
end end
function cm.thfilter(c) function cm.thfilter(c)
return c:IsSetCard(0xf14) and (c:IsAbleToHand() or c:IsAbleToGrave()) return c:IsSetCard(0x10c5) and (c:IsAbleToHand() or c:IsAbleToGrave())
end end
function cm.activate(e,tp) function cm.activate(e,tp)
if not e:GetHandler():IsRelateToEffect(e) then return end if not e:GetHandler():IsRelateToEffect(e) then return end
...@@ -119,10 +119,10 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp) ...@@ -119,10 +119,10 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
Duel.Remove(g,POS_FACEUP,REASON_COST) Duel.Remove(g,POS_FACEUP,REASON_COST)
end end
function cm.eftg(e,c) function cm.eftg(e,c)
return c:IsSetCard(0xf14) and c:IsType(TYPE_QUICKPLAY) return c:IsSetCard(0x10c5) and c:IsType(TYPE_QUICKPLAY)
end end
function cm.atkfilter(c) function cm.atkfilter(c)
return c:IsFaceup() and c:IsSetCard(0xf14) and c:IsType(TYPE_MONSTER) return c:IsFaceup() and c:IsSetCard(0x10c5) and c:IsType(TYPE_MONSTER)
end end
function cm.atkcon(e) function cm.atkcon(e)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -46,7 +46,7 @@ function c40008678.thcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -46,7 +46,7 @@ function c40008678.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO) return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end end
function c40008678.thfilter(c,tp) function c40008678.thfilter(c,tp)
return c:IsSetCard(0xf14) and c:IsType(TYPE_SPELL) and c:IsAbleToHand() return c:IsSetCard(0x10c5) and c:IsType(TYPE_SPELL) and c:IsAbleToHand()
and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_GRAVE,0,1,nil,c:GetCode()) and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_GRAVE,0,1,nil,c:GetCode())
end end
function c40008678.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c40008678.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
...@@ -66,7 +66,7 @@ function c40008678.atktg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -66,7 +66,7 @@ function c40008678.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetEffectCount(EFFECT_EXTRA_ATTACK)==0 end if chk==0 then return e:GetHandler():GetEffectCount(EFFECT_EXTRA_ATTACK)==0 end
end end
function c40008678.afilter(c) function c40008678.afilter(c)
return c:IsSetCard(0xf14) return c:IsSetCard(0x10c5)
end end
function c40008678.thaop(e,tp,eg,ep,ev,re,r,rp) function c40008678.thaop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -117,7 +117,7 @@ function c40008680.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -117,7 +117,7 @@ function c40008680.thop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c40008680.cfilter(c,tp) function c40008680.cfilter(c,tp)
return c:IsSetCard(0xf14) and c:IsAbleToRemoveAsCost() return c:IsSetCard(0x10c5) and c:IsAbleToRemoveAsCost()
end end
function c40008680.thcost(e,tp,eg,ep,ev,re,r,rp,chk) function c40008680.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -125,7 +125,7 @@ function c40008683.scop(e,tp,eg,ep,ev,re,r,rp) ...@@ -125,7 +125,7 @@ function c40008683.scop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c40008683.cfilter(c,tp) function c40008683.cfilter(c,tp)
return c:IsSetCard(0xf14) and c:IsAbleToRemoveAsCost() return c:IsSetCard(0x10c5) and c:IsAbleToRemoveAsCost()
end end
function c40008683.thcost(e,tp,eg,ep,ev,re,r,rp,chk) function c40008683.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -167,7 +167,7 @@ function c40008683.dbop(e,tp,eg,ep,ev,re,r,rp) ...@@ -167,7 +167,7 @@ function c40008683.dbop(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2) tc:RegisterEffect(e2)
end end
if tc:IsSetCard(0xf14) then if tc:IsSetCard(0x10c5) then
if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008683,3)) then if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008683,3)) then
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect() Duel.BreakEffect()
......
...@@ -46,7 +46,7 @@ function c40008686.thcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -46,7 +46,7 @@ function c40008686.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO) return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end end
function c40008686.spfilter(c,e,tp,ft) function c40008686.spfilter(c,e,tp,ft)
return c:IsSetCard(0xf14) and (c:IsAbleToHand() or (ft>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false))) return c:IsSetCard(0x10c5) and (c:IsAbleToHand() or (ft>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false)))
end end
function c40008686.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c40008686.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
...@@ -68,7 +68,7 @@ function c40008686.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -68,7 +68,7 @@ function c40008686.spop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c40008686.lvfilter(c) function c40008686.lvfilter(c)
return c:IsFaceup() and c:IsSetCard(0xf14) and not c:IsLevel(2) and c:IsLevelAbove(1) return c:IsFaceup() and c:IsSetCard(0x10c5) and not c:IsLevel(2) and c:IsLevelAbove(1)
end end
function c40008686.target(e,tp,eg,ep,ev,re,r,rp,chk) function c40008686.target(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -99,7 +99,7 @@ function c40008688.eftg(e,c) ...@@ -99,7 +99,7 @@ function c40008688.eftg(e,c)
return e:GetHandler():GetEquipTarget()==c return e:GetHandler():GetEquipTarget()==c
end end
function c40008688.thfilter(c) function c40008688.thfilter(c)
return c:IsSetCard(0xf14) and not c:IsCode(40008688) and c:IsAbleToHand() return c:IsSetCard(0x10c5) and not c:IsCode(40008688) and c:IsAbleToHand()
end end
function c40008688.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c40008688.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end if chk==0 then return true end
...@@ -114,7 +114,7 @@ function c40008688.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -114,7 +114,7 @@ function c40008688.thop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c40008688.cfilter(c,tp) function c40008688.cfilter(c,tp)
return c:IsSetCard(0xf14) and c:IsAbleToRemoveAsCost() return c:IsSetCard(0x10c5) and c:IsAbleToRemoveAsCost()
end end
function c40008688.thcost(e,tp,eg,ep,ev,re,r,rp,chk) function c40008688.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -148,7 +148,7 @@ function c40008688.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -148,7 +148,7 @@ function c40008688.desop(e,tp,eg,ep,ev,re,r,rp)
e1:SetOwnerPlayer(tp) e1:SetOwnerPlayer(tp)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
if tc:IsSetCard(0xf14) then if tc:IsSetCard(0x10c5) then
if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008688,3)) then if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008688,3)) then
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect() Duel.BreakEffect()
......
...@@ -60,7 +60,7 @@ function c40008691.thcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,7 +60,7 @@ function c40008691.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO) return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end end
function c40008691.tdfilter(c) function c40008691.tdfilter(c)
return c:IsSetCard(0xf14) and c:IsAbleToDeck() and c:IsFaceup() return c:IsSetCard(0x10c5) and c:IsAbleToDeck() and c:IsFaceup()
end end
function c40008691.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c40008691.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp) if chk==0 then return Duel.IsPlayerCanDraw(tp)
...@@ -102,7 +102,7 @@ function c40008691.thcon2(e,tp,eg,ep,ev,re,r,rp) ...@@ -102,7 +102,7 @@ function c40008691.thcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end end
function c40008691.thfilter(c) function c40008691.thfilter(c)
return c:IsSetCard(0xf14) and c:IsAbleToHand() and c:IsCode(40008691) return c:IsSetCard(0x10c5) and c:IsAbleToHand() and c:IsCode(40008691)
end end
function c40008691.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c40008691.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40008691.thfilter,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c40008691.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
......
...@@ -79,7 +79,7 @@ function cm.spcon(e,tp) ...@@ -79,7 +79,7 @@ function cm.spcon(e,tp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsSetCard(0xf14) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 return c:IsSetCard(0x10c5) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
end end
function cm.spop(e,tp) function cm.spop(e,tp)
rsof.SelectHint(tp,"sp") rsof.SelectHint(tp,"sp")
......
...@@ -124,7 +124,7 @@ function c40008694.scop(e,tp,eg,ep,ev,re,r,rp) ...@@ -124,7 +124,7 @@ function c40008694.scop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c40008694.cfilter(c,tp) function c40008694.cfilter(c,tp)
return c:IsSetCard(0xf14) and c:IsAbleToRemoveAsCost() return c:IsSetCard(0x10c5) and c:IsAbleToRemoveAsCost()
end end
function c40008694.thcost(e,tp,eg,ep,ev,re,r,rp,chk) function c40008694.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -157,7 +157,7 @@ function c40008694.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -157,7 +157,7 @@ function c40008694.thop(e,tp,eg,ep,ev,re,r,rp)
local e5=e1:Clone() local e5=e1:Clone()
e5:SetCode(EFFECT_AVOID_BATTLE_DAMAGE) e5:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
c:RegisterEffect(e5) c:RegisterEffect(e5)
if tc:IsSetCard(0xf14) then if tc:IsSetCard(0x10c5) then
if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008694,3)) then if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008694,3)) then
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect() Duel.BreakEffect()
......
...@@ -100,7 +100,7 @@ function c40008697.eftg(e,c) ...@@ -100,7 +100,7 @@ function c40008697.eftg(e,c)
return e:GetHandler():GetEquipTarget()==c return e:GetHandler():GetEquipTarget()==c
end end
function c40008697.thfilter(c) function c40008697.thfilter(c)
return c:IsSetCard(0xf14) and not c:IsCode(40008697) and c:IsAbleToGrave() return c:IsSetCard(0x10c5) and not c:IsCode(40008697) and c:IsAbleToGrave()
end end
function c40008697.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c40008697.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40008697.thfilter,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c40008697.thfilter,tp,LOCATION_DECK,0,1,nil) end
...@@ -114,7 +114,7 @@ function c40008697.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -114,7 +114,7 @@ function c40008697.thop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c40008697.cfilter(c,tp) function c40008697.cfilter(c,tp)
return c:IsSetCard(0xf14) and c:IsAbleToRemoveAsCost() return c:IsSetCard(0x10c5) and c:IsAbleToRemoveAsCost()
end end
function c40008697.thcost(e,tp,eg,ep,ev,re,r,rp,chk) function c40008697.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -148,7 +148,7 @@ function c40008697.dbop(e,tp,eg,ep,ev,re,r,rp) ...@@ -148,7 +148,7 @@ function c40008697.dbop(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(c40008697.aclimit) e1:SetValue(c40008697.aclimit)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE) e1:SetReset(RESET_PHASE+PHASE_DAMAGE)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
if tc:IsSetCard(0xf14) then if tc:IsSetCard(0x10c5) then
if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008697,3)) then if Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(40008697,3)) then
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect() Duel.BreakEffect()
......
...@@ -65,7 +65,7 @@ function c40008706.thcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -65,7 +65,7 @@ function c40008706.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD) Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end end
function c40008706.cfilter(c) function c40008706.cfilter(c)
return c:IsSetCard(0xf14) return c:IsSetCard(0x10c5)
end end
function c40008706.thfilter(c,lv) function c40008706.thfilter(c,lv)
return c:IsLevelBelow(lv) and c:IsRace(RACE_DRAGON) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsLevelBelow(lv) and c:IsRace(RACE_DRAGON) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
...@@ -4,7 +4,7 @@ function c40009014.initial_effect(c) ...@@ -4,7 +4,7 @@ function c40009014.initial_effect(c)
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(40009014,0)) e6:SetDescription(aux.Stringid(40009014,0))
e6:SetCategory(CATEGORY_SPECIAL_SUMMON) e6:SetCategory(CATEGORY_SPECIAL_SUMMON)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_QUICK_O) e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_TO_GRAVE) e6:SetCode(EVENT_TO_GRAVE)
e6:SetProperty(EFFECT_FLAG_DELAY) e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetCountLimit(1,40009017) e6:SetCountLimit(1,40009017)
...@@ -51,8 +51,8 @@ function c40009014.scop(e,tp,eg,ep,ev,re,r,rp) ...@@ -51,8 +51,8 @@ function c40009014.scop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c40009014.spcon(e,tp,eg,ep,ev,re,r,rp) function c40009014.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER) return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and re:GetHandler():IsRace(RACE_FAIRY) and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_RACE)&RACE_FAIRY>0
end end
function c40009014.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c40009014.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
......
...@@ -4,7 +4,7 @@ function c40009015.initial_effect(c) ...@@ -4,7 +4,7 @@ function c40009015.initial_effect(c)
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(40009015,0)) e6:SetDescription(aux.Stringid(40009015,0))
e6:SetCategory(CATEGORY_SPECIAL_SUMMON) e6:SetCategory(CATEGORY_SPECIAL_SUMMON)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_QUICK_O) e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_TO_GRAVE) e6:SetCode(EVENT_TO_GRAVE)
e6:SetProperty(EFFECT_FLAG_DELAY) e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetCountLimit(1,40009018) e6:SetCountLimit(1,40009018)
...@@ -51,8 +51,8 @@ function c40009015.scop(e,tp,eg,ep,ev,re,r,rp) ...@@ -51,8 +51,8 @@ function c40009015.scop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c40009015.spcon(e,tp,eg,ep,ev,re,r,rp) function c40009015.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER) return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and re:GetHandler():IsRace(RACE_FAIRY) and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_RACE)&RACE_FAIRY>0
end end
function c40009015.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c40009015.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
......
...@@ -43,7 +43,7 @@ function c40009016.initial_effect(c) ...@@ -43,7 +43,7 @@ function c40009016.initial_effect(c)
--return --return
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(40009016,2)) e5:SetDescription(aux.Stringid(40009016,2))
e5:SetCategory(CATEGORY_TODECK+CATEGORY_DESTROY) e5:SetCategory(CATEGORY_TODECK+CATEGORY_SPECIAL_SUMMON)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F) e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e5:SetCode(EVENT_PHASE+PHASE_END) e5:SetCode(EVENT_PHASE+PHASE_END)
e5:SetRange(LOCATION_MZONE) e5:SetRange(LOCATION_MZONE)
...@@ -92,16 +92,16 @@ function c40009016.spfilter2(c,e,tp) ...@@ -92,16 +92,16 @@ function c40009016.spfilter2(c,e,tp)
return c:IsRace(RACE_FAIRY) and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsRace(RACE_FAIRY) and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c40009016.rettg(e,tp,eg,ep,ev,re,r,rp,chk) function c40009016.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009016.spfilter2,tp,LOCATION_DECK,0,1,nil,e,tp) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,1,1,e:GetHandler()) and Duel.IsExistingMatchingCard(c40009016.spfilter2,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
function c40009016.retop(e,tp,eg,ep,ev,re,r,rp) function c40009016.retop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
Duel.SendtoDeck(c,nil,2,REASON_EFFECT) Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
if c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then if c:IsLocation(LOCATION_EXTRA) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c40009016.spfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c40009016.spfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
...@@ -110,4 +110,3 @@ function c40009016.retop(e,tp,eg,ep,ev,re,r,rp) ...@@ -110,4 +110,3 @@ function c40009016.retop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
...@@ -3,6 +3,14 @@ local m=40009152 ...@@ -3,6 +3,14 @@ local m=40009152
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_BLASTER=1 cm.named_with_BLASTER=1
cm.named_with_ALFRED=1 cm.named_with_ALFRED=1
function cm.BLASTER(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTER
end
function cm.BLASTERBlade(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTERBlade
end
function cm.initial_effect(c) function cm.initial_effect(c)
--link summon --link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkAttribute,ATTRIBUTE_LIGHT),2) aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkAttribute,ATTRIBUTE_LIGHT),2)
...@@ -75,21 +83,28 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -75,21 +83,28 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD) Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end end
function cm.filter(c,e,tp,zone) function cm.filter(c)
return c:IsCode(40009154) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone) return cm.BLASTERBlade(c) and c:IsFaceup()
end
function cm.spfilter(c,e,tp,check,zone)
return cm.BLASTER(c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone)
and (check or cm.BLASTERBlade(c))
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local zone=e:GetHandler():GetLinkedZone(tp) local zone=e:GetHandler():GetLinkedZone(tp)
return zone~=0 and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,e,tp,zone) local chk1=Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil)
return zone~=0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp,chk1,zone)
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local zone=e:GetHandler():GetLinkedZone(tp) local zone=e:GetHandler():GetLinkedZone(tp)
if zone==0 then return end if zone==0 then return end
local chk1=Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp,zone) local sg=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,chk1,zone)
local tc=sg:GetFirst() local tc=sg:GetFirst()
if tc and Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP,zone) then if tc and Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP,zone) then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
...@@ -102,7 +117,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -102,7 +117,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
end end
function cm.atkfilter(c) function cm.atkfilter(c)
return c:IsFaceup() and c:IsCode(40009154) return c:IsFaceup() and cm.BLASTERBlade(c)
end end
function cm.atkcon(e) function cm.atkcon(e)
return Duel.IsExistingMatchingCard(cm.atkfilter,e:GetHandler():GetControler(),LOCATION_MZONE,0,1,nil) return Duel.IsExistingMatchingCard(cm.atkfilter,e:GetHandler():GetControler(),LOCATION_MZONE,0,1,nil)
......
...@@ -4,19 +4,20 @@ local cm=_G["c"..m] ...@@ -4,19 +4,20 @@ local cm=_G["c"..m]
cm.named_with_BLASTER=1 cm.named_with_BLASTER=1
cm.named_with_BLASTERBlade=1 cm.named_with_BLASTERBlade=1
function cm.initial_effect(c) function cm.initial_effect(c)
--spsummon --search
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetProperty(EFFECT_FLAG_DELAY) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetCountLimit(1,m) e2:SetCountLimit(1,m)
e2:SetTarget(cm.sptg) e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop) e2:SetOperation(cm.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone() local e3=e2:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS) e3:SetRange(LOCATION_HAND)
e3:SetCountLimit(1,m)
e3:SetCost(cm.spcost)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--to grave --to grave
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -45,6 +46,11 @@ function cm.BLASTER(c) ...@@ -45,6 +46,11 @@ function cm.BLASTER(c)
local m=_G["c"..c:GetCode()] local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTER return m and m.named_with_BLASTER
end end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsDiscardable() end
Duel.SendtoGrave(c,REASON_COST+REASON_DISCARD)
end
function cm.filter1(c,e,tp) function cm.filter1(c,e,tp)
return cm.BLASTER(c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return cm.BLASTER(c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
...@@ -60,14 +66,6 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,14 +66,6 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
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
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end end
function cm.splimit(e,c) function cm.splimit(e,c)
return not cm.BLASTER(c) and c:IsLocation(LOCATION_EXTRA) return not cm.BLASTER(c) and c:IsLocation(LOCATION_EXTRA)
......
...@@ -2,9 +2,17 @@ ...@@ -2,9 +2,17 @@
local m=40009156 local m=40009156
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_BLASTER=1 cm.named_with_BLASTER=1
function cm.BLASTER(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTER
end
function cm.BLASTERBlade(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTERBlade
end
function cm.initial_effect(c) function cm.initial_effect(c)
--link summon --link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkCode,40009154),1,1) aux.AddLinkProcedure(c,cm.matfilter,1,1)
c:EnableReviveLimit() c:EnableReviveLimit()
--effect --effect
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -29,12 +37,12 @@ function cm.initial_effect(c) ...@@ -29,12 +37,12 @@ function cm.initial_effect(c)
e3:SetOperation(cm.spop) e3:SetOperation(cm.spop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function cm.BLASTER(c) function cm.matfilter(c)
local m=_G["c"..c:GetCode()] return cm.BLASTERBlade(c)
return m and m.named_with_BLASTER
end end
function cm.cfilter1(c) function cm.cfilter1(c)
return c:IsCode(40009154) and ((c:IsFaceup() and c:IsLocation(LOCATION_MZONE)) or c:IsLocation(LOCATION_HAND)) and c:IsAbleToGraveAsCost() return cm.BLASTERBlade(c) and ((c:IsFaceup() and c:IsLocation(LOCATION_MZONE)) or c:IsLocation(LOCATION_HAND)) and c:IsAbleToGraveAsCost()
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter1,tp,LOCATION_HAND+LOCATION_MZONE,0,1,nil,tp) end if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter1,tp,LOCATION_HAND+LOCATION_MZONE,0,1,nil,tp) end
...@@ -83,15 +91,4 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -83,15 +91,4 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if tc:IsRelateToEffect(e) then if tc:IsRelateToEffect(e) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.splimit(e,c)
return not cm.BLASTER(c) and c:IsLocation(LOCATION_EXTRA)
end end
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
local m=40009158 local m=40009158
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_BLASTER=1 cm.named_with_BLASTER=1
function cm.BLASTERBlade(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTERBlade
end
function cm.initial_effect(c) function cm.initial_effect(c)
--tohand --tohand
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -22,7 +26,7 @@ function cm.initial_effect(c) ...@@ -22,7 +26,7 @@ function cm.initial_effect(c)
e3:SetDescription(aux.Stringid(m,1)) e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e3:SetCountLimit(1,m+1) e3:SetCountLimit(1,m+1)
e3:SetCost(cm.spcost) e3:SetCost(cm.spcost)
e3:SetTarget(cm.sptg) e3:SetTarget(cm.sptg)
...@@ -49,13 +53,17 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -49,13 +53,17 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.cfilter(c) function cm.cfilter(c)
return c:IsCode(40009154) and c:IsAbleToDeckAsCost() return cm.BLASTERBlade(c) and c:IsAbleToDeckAsCost()
end end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return (e:GetHandler():IsReleasable() and e:GetHandler():IsLocation(LOCATION_MZONE)) or (e:GetHandler():IsAbleToRemoveAsCost() and e:GetHandler():IsLocation(LOCATION_GRAVE)) and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil)
if e:GetHandler():IsLocation(LOCATION_MZONE) then
Duel.Release(e:GetHandler(),REASON_COST) Duel.Release(e:GetHandler(),REASON_COST)
else
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
end
Duel.SendtoDeck(g,nil,2,REASON_COST) Duel.SendtoDeck(g,nil,2,REASON_COST)
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
...@@ -74,15 +82,4 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -74,15 +82,4 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
end end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.splimit(e,c)
return not cm.BLASTER(c) and c:IsLocation(LOCATION_EXTRA)
end end
\ No newline at end of file
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
local m=40009160 local m=40009160
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_BLASTER=1 cm.named_with_BLASTER=1
function cm.BLASTERBlade(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTERBlade
end
function cm.initial_effect(c) function cm.initial_effect(c)
--tohand --tohand
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -21,7 +25,7 @@ function cm.initial_effect(c) ...@@ -21,7 +25,7 @@ function cm.initial_effect(c)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1)) e3:SetDescription(aux.Stringid(m,1))
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e3:SetCountLimit(1,m+1) e3:SetCountLimit(1,m+1)
e3:SetCost(cm.spcost) e3:SetCost(cm.spcost)
e3:SetTarget(cm.settg) e3:SetTarget(cm.settg)
...@@ -47,13 +51,17 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,13 +51,17 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.cfilter(c) function cm.cfilter(c)
return c:IsCode(40009154) and c:IsAbleToDeckAsCost() return cm.BLASTERBlade(c) and c:IsAbleToDeckAsCost()
end end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return (e:GetHandler():IsReleasable() and e:GetHandler():IsLocation(LOCATION_MZONE)) or (e:GetHandler():IsAbleToRemoveAsCost() and e:GetHandler():IsLocation(LOCATION_GRAVE)) and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil)
if e:GetHandler():IsLocation(LOCATION_MZONE) then
Duel.Release(e:GetHandler(),REASON_COST) Duel.Release(e:GetHandler(),REASON_COST)
else
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
end
Duel.SendtoDeck(g,nil,2,REASON_COST) Duel.SendtoDeck(g,nil,2,REASON_COST)
end end
function cm.setfilter(c) function cm.setfilter(c)
......
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
local m=40009162 local m=40009162
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_BLASTER=1 cm.named_with_BLASTER=1
function cm.BLASTERBlade(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTERBlade
end
function cm.initial_effect(c) function cm.initial_effect(c)
--tohand --tohand
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -22,7 +26,7 @@ function cm.initial_effect(c) ...@@ -22,7 +26,7 @@ function cm.initial_effect(c)
e3:SetDescription(aux.Stringid(m,1)) e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e3:SetCountLimit(1,m+1) e3:SetCountLimit(1,m+1)
e3:SetCost(cm.spcost) e3:SetCost(cm.spcost)
e3:SetTarget(cm.thtg) e3:SetTarget(cm.thtg)
...@@ -49,26 +53,19 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -49,26 +53,19 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
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
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.splimit(e,c)
return not cm.BLASTER(c) and c:IsLocation(LOCATION_EXTRA)
end end
function cm.cfilter(c) function cm.cfilter(c)
return c:IsCode(40009154) and c:IsAbleToDeckAsCost() return cm.BLASTERBlade(c) and c:IsAbleToDeckAsCost()
end end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return (e:GetHandler():IsReleasable() and e:GetHandler():IsLocation(LOCATION_MZONE)) or (e:GetHandler():IsAbleToRemoveAsCost() and e:GetHandler():IsLocation(LOCATION_GRAVE)) and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil)
if e:GetHandler():IsLocation(LOCATION_MZONE) then
Duel.Release(e:GetHandler(),REASON_COST) Duel.Release(e:GetHandler(),REASON_COST)
else
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
end
Duel.SendtoDeck(g,nil,2,REASON_COST) Duel.SendtoDeck(g,nil,2,REASON_COST)
end end
function cm.thfilter(c) function cm.thfilter(c)
......
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
local m=40009164 local m=40009164
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_BLASTER=1 cm.named_with_BLASTER=1
function cm.BLASTERBlade(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTERBlade
end
function cm.initial_effect(c) function cm.initial_effect(c)
--tohand --tohand
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -17,63 +21,73 @@ function cm.initial_effect(c) ...@@ -17,63 +21,73 @@ function cm.initial_effect(c)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--special summon --
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1)) e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TODECK+CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET) e3:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,m+1) e3:SetCountLimit(1,m+1)
e3:SetCost(cm.spcost) e3:SetCost(cm.spcost)
e3:SetTarget(cm.tdtg) e3:SetTarget(cm.settg)
e3:SetOperation(cm.tdop) e3:SetOperation(cm.setop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function cm.filter(c) function cm.filter(c)
return c:IsCode(40009154) and c:IsAbleToGrave() return cm.BLASTERBlade(c) and c:IsAbleToGrave()
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK+LOCATION_HAND,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK+LOCATION_HAND,0,1,nil) and Duel.IsPlayerCanSummon(tp) and Duel.IsPlayerCanAdditionalSummon(tp) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK+LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK+LOCATION_HAND)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK+LOCATION_HAND,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK+LOCATION_HAND,0,1,1,nil)
if Duel.SendtoGrave(g,REASON_EFFECT)~=0 then return end if g:GetCount()>0 then
if Duel.SendtoGrave(g,REASON_EFFECT)~=0 then
Duel.BreakEffect()
if Duel.IsExistingMatchingCard(Card.IsType,tp,0,LOCATION_ONFIELD,1,nil,TYPE_SPELL+TYPE_TRAP) and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local sg=Duel.SelectMatchingCard(tp,Card.IsType,tp,0,LOCATION_ONFIELD,1,1,nil,TYPE_SPELL+TYPE_TRAP) local sg=Duel.SelectMatchingCard(tp,Card.IsType,tp,0,LOCATION_ONFIELD,1,1,nil,TYPE_SPELL+TYPE_TRAP)
if sg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.BreakEffect()
Duel.HintSelection(sg) Duel.HintSelection(sg)
Duel.Destroy(sg,REASON_EFFECT) Duel.Destroy(sg,REASON_EFFECT)
end end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(m,3))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_EXTRA_SUMMON_COUNT)
e1:SetTargetRange(LOCATION_HAND+LOCATION_MZONE,0)
e1:SetTarget(aux.TargetBoolFunction(Card.IsRace,RACE_WARRIOR))
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
end
end end
function cm.cfilter(c) function cm.cfilter(c)
return c:IsCode(40009154) and c:IsAbleToDeckAsCost() return cm.BLASTERBlade(c) and c:IsAbleToDeckAsCost()
end end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return (e:GetHandler():IsReleasable() and e:GetHandler():IsLocation(LOCATION_MZONE)) or (e:GetHandler():IsAbleToRemoveAsCost() and e:GetHandler():IsLocation(LOCATION_GRAVE)) and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil)
if e:GetHandler():IsLocation(LOCATION_MZONE) then
Duel.Release(e:GetHandler(),REASON_COST) Duel.Release(e:GetHandler(),REASON_COST)
else
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
end
Duel.SendtoDeck(g,nil,2,REASON_COST) Duel.SendtoDeck(g,nil,2,REASON_COST)
end end
function cm.tdfilter(c) function cm.setfilter(c)
return c:IsRace(RACE_WARRIOR) and c:IsAbleToDeck() return c:IsCode(40009261) and c:IsSSetable()
end end
function cm.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.settg(e,tp,eg,ep,ev,re,r,rp,chk)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and cm.tdfilter(chkc) end if chk==0 then return Duel.IsExistingMatchingCard(cm.setfilter,tp,LOCATION_DECK,0,1,nil) end
if chk==0 then return Duel.IsExistingTarget(cm.tdfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectTarget(tp,cm.tdfilter,tp,LOCATION_GRAVE,0,1,3,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,g:GetCount(),0,0)
end end
function cm.tdop(e,tp,eg,ep,ev,re,r,rp) function cm.setop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
if Duel.SendtoDeck(g,nil,2,REASON_EFFECT)~=0 then local g=Duel.SelectMatchingCard(tp,cm.setfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.ShuffleDeck(tp) if #g>0 then
Duel.BreakEffect() Duel.SSet(tp,g)
Duel.Draw(tp,1,REASON_EFFECT)
end end
end end
\ No newline at end of file
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
local m=40009166 local m=40009166
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_BLASTER=1 cm.named_with_BLASTER=1
function cm.BLASTERBlade(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTERBlade
end
function cm.initial_effect(c) function cm.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -39,7 +43,7 @@ function cm.BLASTER(c) ...@@ -39,7 +43,7 @@ function cm.BLASTER(c)
return m and m.named_with_BLASTER return m and m.named_with_BLASTER
end end
function cm.tgfilter(c) function cm.tgfilter(c)
return c:IsCode(40009154) and c:IsAbleToGrave() return cm.BLASTERBlade(c) and c:IsAbleToGrave()
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
...@@ -69,18 +73,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -69,18 +73,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
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
local e1=Effect.CreateEffect(e:GetHandler()) end
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function cm.splimit(e,c)
return not cm.BLASTER(c) and c:IsLocation(LOCATION_EXTRA)
end end
function cm.atkcon2(e,tp,eg,ep,ev,re,r,rp) function cm.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsCode,1,nil,tp,SUMMON_TYPE_LINK,40009156) return eg:IsExists(Card.IsCode,1,nil,tp,SUMMON_TYPE_LINK,40009156)
......
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
local m=40009168 local m=40009168
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_ALFRED=1 cm.named_with_ALFRED=1
function cm.BLASTERBlade(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTERBlade
end
function cm.initial_effect(c) function cm.initial_effect(c)
--effect --effect
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -32,7 +36,7 @@ function cm.battlecheck(tp) ...@@ -32,7 +36,7 @@ function cm.battlecheck(tp)
return res,a return res,a
end end
function cm.gvfilter(c) function cm.gvfilter(c)
return c:IsFaceup() and c:IsCode(40009154) and c:IsAbleToGrave() return c:IsFaceup() and cm.BLASTERBlade(c) and c:IsAbleToGrave()
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return (cm.SAVER(c) or c:IsCode(82593786)) and c:IsCanBeSpecialSummoned(e,0,tp,true,false) return (cm.SAVER(c) or c:IsCode(82593786)) and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
......
...@@ -3,18 +3,14 @@ local m=40009173 ...@@ -3,18 +3,14 @@ local m=40009173
local cm=_G["c"..m] local cm=_G["c"..m]
cm.named_with_BLASTER=1 cm.named_with_BLASTER=1
cm.named_with_BLASTERBlade=1 cm.named_with_BLASTERBlade=1
function cm.BLASTERBlade(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_BLASTERBlade
end
function cm.initial_effect(c) function cm.initial_effect(c)
--xyz summon --xyz summon
aux.AddXyzProcedure(c,cm.mfilter,7,2,cm.ovfilter,aux.Stringid(m,0),2,cm.xyzop) aux.AddXyzProcedure(c,cm.mfilter,7,2,cm.ovfilter,aux.Stringid(m,0),2,cm.xyzop)
c:EnableReviveLimit() c:EnableReviveLimit()
--code
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_CHANGE_CODE)
e1:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e1:SetValue(40009154)
c:RegisterEffect(e1)
--to hand --to hand
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0)) e2:SetDescription(aux.Stringid(m,0))
...@@ -45,7 +41,7 @@ function cm.mfilter(c) ...@@ -45,7 +41,7 @@ function cm.mfilter(c)
return c:IsRace(RACE_WARRIOR) return c:IsRace(RACE_WARRIOR)
end end
function cm.ovfilter(c) function cm.ovfilter(c)
return c:IsFaceup() and c:IsCode(40009154) return c:IsFaceup() and cm.BLASTERBlade(c) and not c:IsType(TYPE_XYZ)
end end
function cm.xyzop(e,tp,chk) function cm.xyzop(e,tp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,m)==0 end if chk==0 then return Duel.GetFlagEffect(tp,m)==0 end
......
...@@ -55,6 +55,7 @@ function cm.xyzop(e,tp) ...@@ -55,6 +55,7 @@ function cm.xyzop(e,tp)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING) e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetCondition(cm.negcon) e1:SetCondition(cm.negcon)
e1:SetOperation(cm.negop) e1:SetOperation(cm.negop)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
......
--时机降神 神工巨匠 --时机降神 神工巨匠
function c40009209.initial_effect(c) function c40009209.initial_effect(c)
--xyz summon --xyz summon
aux.AddXyzProcedure(c,nil,11,3) aux.AddXyzProcedure(c,nil,11,3,c40009209.ovfilter,aux.Stringid(40009209,3),3,c40009209.xyzop)
c:EnableReviveLimit() c:EnableReviveLimit()
--spsummon limit --spsummon limit
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
...@@ -58,6 +58,13 @@ function c40009209.initial_effect(c) ...@@ -58,6 +58,13 @@ function c40009209.initial_effect(c)
e1:SetOperation(c40009209.retop) e1:SetOperation(c40009209.retop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c40009209.ovfilter(c)
return c:IsFaceup() and c:IsSetCard(0xf1c) and c:IsType(TYPE_XYZ)
end
function c40009209.xyzop(e,tp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,40009209)==0 end
Duel.RegisterFlagEffect(tp,40009209,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end
function c40009209.nnegcost(e,tp,eg,ep,ev,re,r,rp,chk) function c40009209.nnegcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0xf2c,3,REASON_COST) end if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0xf2c,3,REASON_COST) end
Duel.RemoveCounter(tp,1,0,0xf2c,3,REASON_COST) Duel.RemoveCounter(tp,1,0,0xf2c,3,REASON_COST)
...@@ -81,22 +88,20 @@ function c40009209.tdfilter(c) ...@@ -81,22 +88,20 @@ function c40009209.tdfilter(c)
return c:IsAbleToDeck() return c:IsAbleToDeck()
end end
function c40009209.destg(e,tp,eg,ep,ev,re,r,rp,chk) function c40009209.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009209.tdfilter,tp,LOCATION_GRAVE,0,6,nil) and Duel.IsPlayerCanDraw(tp,3) if chk==0 then return Duel.IsPlayerCanDraw(tp,3)
end end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,6,tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,6,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,3) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,3)
end end
function c40009209.desop(e,tp,eg,ep,ev,re,r,rp) function c40009209.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER) --local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,c40009209.tdfilter,tp,LOCATION_GRAVE,0,6,6,nil) local g=Duel.SelectMatchingCard(tp,c40009209.tdfilter,tp,LOCATION_GRAVE,0,6,6,nil)
if #g>0 and Duel.SendtoDeck(g,nil,2,REASON_EFFECT)~=0 then if g:GetCount()>0 and Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)~=0 then
Duel.ShuffleDeck(p)
Duel.BreakEffect() Duel.BreakEffect()
Duel.ShuffleDeck(tp)
Duel.Draw(tp,3,REASON_EFFECT) Duel.Draw(tp,3,REASON_EFFECT)
end
if c:IsRelateToEffect(e) and c:IsFaceup() then
c:RegisterFlagEffect(40009209,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1) c:RegisterFlagEffect(40009209,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end end
end end
...@@ -106,11 +111,8 @@ end ...@@ -106,11 +111,8 @@ end
function c40009209.tdcon2(e,tp,eg,ep,ev,re,r,rp) function c40009209.tdcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentChain()>0 and Duel.IsPlayerAffectedByEffect(tp,40009208) and e:GetHandler():GetFlagEffect(40009209)~=0 return Duel.GetCurrentChain()>0 and Duel.IsPlayerAffectedByEffect(tp,40009208) and e:GetHandler():GetFlagEffect(40009209)~=0
end end
function c40009209.tdfilter(c)
return c:IsAbleToDeck()
end
function c40009209.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c40009209.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009209.tdfilter,tp,0,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,0,0)
Duel.SetChainLimit(c40009209.chlimit) Duel.SetChainLimit(c40009209.chlimit)
end end
...@@ -118,7 +120,7 @@ function c40009209.chlimit(e,ep,tp) ...@@ -118,7 +120,7 @@ function c40009209.chlimit(e,ep,tp)
return tp==ep return tp==ep
end end
function c40009209.tdop(e,tp,eg,ep,ev,re,r,rp) function c40009209.tdop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c40009209.tdfilter,tp,0,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE,nil) local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE,nil)
if g:GetCount()<=0 then return end if g:GetCount()<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg=g:Select(tp,1,3,nil) local sg=g:Select(tp,1,3,nil)
......
--宇宙勇机 雄伟救援 --宇宙勇机 雄伟救援
function c40009236.initial_effect(c) local m=40009236
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
--spsummon --spsummon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009236,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1,40009236) e1:SetCountLimit(1,m)
e1:SetTarget(c40009236.sptg) e1:SetTarget(cm.sptg)
e1:SetOperation(c40009236.spop) e1:SetOperation(cm.spop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--material --material
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(40009236,1)) e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_XMATERIAL+EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_XMATERIAL+EFFECT_TYPE_IGNITION)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET) e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetCondition(c40009236.spcon) e2:SetCondition(cm.spcon)
e2:SetCost(c40009236.spcost) e2:SetCost(cm.spcost)
e2:SetTarget(c40009236.target) e2:SetTarget(cm.target)
e2:SetOperation(c40009236.operation) e2:SetOperation(cm.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c40009236.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsSetCard(0x1f1b) and not c:IsCode(40009236) and (c:IsLevel(4) or c:IsLevel(8)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) return cm.CosmosHero(c) and not c:IsCode(m) and (c:IsLevel(4) or c:IsLevel(8)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
end end
function c40009236.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c40009236.spfilter(chkc,e,tp) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and cm.spfilter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c40009236.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end and Duel.IsExistingTarget(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c40009236.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectTarget(tp,cm.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end end
function c40009236.spop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE) then if tc:IsRelateToEffect(e) and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE) then
...@@ -52,24 +59,24 @@ function c40009236.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -52,24 +59,24 @@ function c40009236.spop(e,tp,eg,ep,ev,re,r,rp)
end end
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
end end
function c40009236.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetRace()==RACE_MACHINE return e:GetHandler():GetRace()==RACE_MACHINE
end end
function c40009236.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end end
function c40009236.filter(c) function cm.filter(c)
return c:IsSetCard(0x1f1b) and c:IsCanOverlay() return cm.CosmosHero(c) and c:IsCanOverlay()
end end
function c40009236.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c40009236.filter(chkc) and chkc~=e:GetHandler() end if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.filter(chkc) and chkc~=e:GetHandler() end
if chk==0 then return e:GetHandler():IsType(TYPE_XYZ) if chk==0 then return e:GetHandler():IsType(TYPE_XYZ)
and Duel.IsExistingTarget(c40009236.filter,tp,LOCATION_GRAVE,0,1,e:GetHandler()) end and Duel.IsExistingTarget(cm.filter,tp,LOCATION_GRAVE,0,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
Duel.SelectTarget(tp,c40009236.filter,tp,LOCATION_GRAVE,0,1,1,e:GetHandler()) Duel.SelectTarget(tp,cm.filter,tp,LOCATION_GRAVE,0,1,1,e:GetHandler())
end end
function c40009236.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then
......
--宇宙勇机 雄伟警察 --宇宙勇机 雄伟警察
function c40009237.initial_effect(c) local m=40009237
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
--to hand --to hand
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,40009237) e1:SetCountLimit(1,m)
e1:SetTarget(c40009237.thtg) e1:SetTarget(cm.thtg)
e1:SetOperation(c40009237.thop) e1:SetOperation(cm.thop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--effect gain --effect gain
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_BE_MATERIAL) e2:SetCode(EVENT_BE_MATERIAL)
e2:SetProperty(EFFECT_FLAG_EVENT_PLAYER) e2:SetProperty(EFFECT_FLAG_EVENT_PLAYER)
e2:SetCondition(c40009237.efcon) e2:SetCondition(cm.efcon)
e2:SetOperation(c40009237.efop) e2:SetOperation(cm.efop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c40009237.filter(c) function cm.filter(c)
return c:IsSetCard(0x1f1b) and c:IsAbleToHand() and c:IsType(TYPE_SPELL+TYPE_TRAP) return cm.CosmosHero(c) and c:IsAbleToHand() and c:IsType(TYPE_SPELL+TYPE_TRAP)
end end
function c40009237.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009237.filter,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function c40009237.thop(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c40009237.filter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT) Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
function c40009237.efcon(e,tp,eg,ep,ev,re,r,rp) function cm.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_XYZ return r==REASON_XYZ
end end
function c40009237.efop(e,tp,eg,ep,ev,re,r,rp) function cm.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local rc=c:GetReasonCard() local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(rc) local e1=Effect.CreateEffect(rc)
e1:SetDescription(aux.Stringid(40009237,1)) e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_ATKCHANGE) e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c40009237.atkcon) e1:SetCondition(cm.atkcon)
e1:SetOperation(c40009237.atkop) e1:SetOperation(cm.atkop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1,true) rc:RegisterEffect(e1,true)
if not rc:IsType(TYPE_EFFECT) then if not rc:IsType(TYPE_EFFECT) then
...@@ -57,10 +64,10 @@ function c40009237.efop(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,10 +64,10 @@ function c40009237.efop(e,tp,eg,ep,ev,re,r,rp)
rc:RegisterEffect(e2,true) rc:RegisterEffect(e2,true)
end end
end end
function c40009237.atkcon(e,tp,eg,ep,ev,re,r,rp) function cm.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ)
end end
function c40009237.atkop(e,tp,eg,ep,ev,re,r,rp) function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--宇宙勇机 雄伟别动队 --宇宙勇机 雄伟别动队
function c40009238.initial_effect(c) local m=40009238
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
--spsummon --spsummon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009238,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,40009238) e1:SetCountLimit(1,m)
e1:SetCost(c40009238.spcost) e1:SetCost(cm.spcost)
e1:SetTarget(c40009238.sptg) e1:SetTarget(cm.sptg)
e1:SetOperation(c40009238.spop) e1:SetOperation(cm.spop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--spsummon --spsummon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(40009238,1)) e2:SetDescription(aux.Stringid(m,1))
e2:SetProperty(EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DELAY)
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:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCountLimit(1,40009239) e2:SetCountLimit(1,m+1)
e2:SetCondition(c40009238.spcon) e2:SetCondition(cm.spcon)
e2:SetTarget(c40009238.sptg1) e2:SetTarget(cm.sptg1)
e2:SetOperation(c40009238.spop1) e2:SetOperation(cm.spop1)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone() local e3=e2:Clone()
e3:SetCode(EVENT_SUMMON_SUCCESS) e3:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c40009238.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() end if chk==0 then return e:GetHandler():IsReleasable() end
Duel.Release(e:GetHandler(),REASON_COST) Duel.Release(e:GetHandler(),REASON_COST)
end end
function c40009238.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsSetCard(0x1f1b) and not c:IsCode(40009238) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return cm.CosmosHero(c) and not c:IsCode(m) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c40009238.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.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(c40009238.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK)
end end
function c40009238.spop(e,tp,eg,ep,ev,re,r,rp) function cm.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,c40009238.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_HAND+LOCATION_DECK,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
...@@ -52,24 +59,24 @@ function c40009238.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -52,24 +59,24 @@ function c40009238.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
e1:SetTarget(c40009238.splimit) e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function c40009238.splimit(e,c,sump,sumtype,sumpos,targetp,se) function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return not c:IsType(TYPE_XYZ) and c:IsLocation(LOCATION_EXTRA) return not c:IsType(TYPE_XYZ) and c:IsLocation(LOCATION_EXTRA)
end end
function c40009238.cfilter(c) function cm.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x1f1b) and not c:IsCode(40009238) return c:IsFaceup() and cm.CosmosHero(c) and not c:IsCode(m)
end end
function c40009238.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return not eg:IsContains(e:GetHandler()) and eg:IsExists(c40009238.cfilter,1,nil) return not eg:IsContains(e:GetHandler()) and eg:IsExists(cm.cfilter,1,nil)
end end
function c40009238.sptg1(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) end if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c40009238.spop1(e,tp,eg,ep,ev,re,r,rp) function cm.spop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP_DEFENSE)~=0 then if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP_DEFENSE)~=0 then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--宇宙勇机 雄伟粉碎者 --宇宙勇机 雄伟粉碎者
function c40009240.initial_effect(c) local m=40009240
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
--extra summon --extra summon
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_SUMMON_SUCCESS) e6:SetCode(EVENT_SUMMON_SUCCESS)
e6:SetOperation(c40009240.sumop) e6:SetOperation(cm.sumop)
c:RegisterEffect(e6) c:RegisterEffect(e6)
local e7=e6:Clone() local e7=e6:Clone()
e7:SetCode(EVENT_SPSUMMON_SUCCESS) e7:SetCode(EVENT_SPSUMMON_SUCCESS)
...@@ -15,49 +22,50 @@ function c40009240.initial_effect(c) ...@@ -15,49 +22,50 @@ function c40009240.initial_effect(c)
e2:SetCode(EFFECT_XYZ_LEVEL) e2:SetCode(EFFECT_XYZ_LEVEL)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetValue(c40009240.xyzlv) e2:SetValue(cm.xyzlv)
e2:SetLabel(4) e2:SetLabel(4)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--effect gain --effect gain
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BE_MATERIAL) e1:SetCode(EVENT_BE_MATERIAL)
e1:SetCountLimit(1,m)
e1:SetProperty(EFFECT_FLAG_EVENT_PLAYER) e1:SetProperty(EFFECT_FLAG_EVENT_PLAYER)
e1:SetCondition(c40009240.efcon) e1:SetCondition(cm.efcon)
e1:SetOperation(c40009240.efop) e1:SetOperation(cm.efop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c40009240.sumop(e,tp,eg,ep,ev,re,r,rp) function cm.sumop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,40009240)~=0 then return end if Duel.GetFlagEffect(tp,m)~=0 then return end
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(40009240,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetTargetRange(LOCATION_HAND+LOCATION_MZONE,0) e1:SetTargetRange(LOCATION_HAND+LOCATION_MZONE,0)
e1:SetTarget(aux.TargetBoolFunction(Card.IsRace,RACE_MACHINE)) e1:SetTarget(aux.TargetBoolFunction(Card.IsRace,RACE_MACHINE))
e1:SetCode(EFFECT_EXTRA_SUMMON_COUNT) e1:SetCode(EFFECT_EXTRA_SUMMON_COUNT)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
Duel.RegisterFlagEffect(tp,40009240,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end end
function c40009240.xyzlv(e,c,rc) function cm.xyzlv(e,c,rc)
if rc:IsRace(RACE_MACHINE) then if rc:IsRace(RACE_MACHINE) then
return c:GetLevel()+0x10000*e:GetLabel() return c:GetLevel()+0x10000*e:GetLabel()
else else
return c:GetLevel() return c:GetLevel()
end end
end end
function c40009240.efcon(e,tp,eg,ep,ev,re,r,rp) function cm.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_XYZ return r==REASON_XYZ
end end
function c40009240.efop(e,tp,eg,ep,ev,re,r,rp) function cm.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local rc=c:GetReasonCard() local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(rc) local e1=Effect.CreateEffect(rc)
e1:SetDescription(aux.Stringid(40009240,1)) e1:SetDescription(aux.Stringid(m,1))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c40009240.defcon) e1:SetCondition(cm.defcon)
e1:SetOperation(c40009240.setop) e1:SetOperation(cm.setop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1,true) rc:RegisterEffect(e1,true)
if not rc:IsType(TYPE_EFFECT) then if not rc:IsType(TYPE_EFFECT) then
...@@ -69,15 +77,15 @@ function c40009240.efop(e,tp,eg,ep,ev,re,r,rp) ...@@ -69,15 +77,15 @@ function c40009240.efop(e,tp,eg,ep,ev,re,r,rp)
rc:RegisterEffect(e2,true) rc:RegisterEffect(e2,true)
end end
end end
function c40009240.defcon(e,tp,eg,ep,ev,re,r,rp) function cm.defcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ)
end end
function c40009240.setfilter(c) function cm.setfilter(c)
return c:IsSetCard(0x95) and c:IsType(TYPE_SPELL) and c:IsSSetable() return c:IsSetCard(0x95) and c:IsType(TYPE_SPELL) and c:IsSSetable()
end end
function c40009240.setop(e,tp,eg,ep,ev,re,r,rp) function cm.setop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,c40009240.setfilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.setfilter,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc and Duel.SSet(tp,tc)~=0 then if tc and Duel.SSet(tp,tc)~=0 then
if tc:IsType(TYPE_QUICKPLAY) then if tc:IsType(TYPE_QUICKPLAY) then
......
--新宇宙勇机 雄伟疾驰 --新宇宙勇机 雄伟疾驰
function c40009241.initial_effect(c) local m=40009241
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
--spsummon --spsummon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009241,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,40009241) e1:SetCountLimit(1,m)
e1:SetTarget(c40009241.target) e1:SetTarget(cm.target)
e1:SetOperation(c40009241.operation) e1:SetOperation(cm.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--xyzlv --xyzlv
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -17,39 +24,39 @@ function c40009241.initial_effect(c) ...@@ -17,39 +24,39 @@ function c40009241.initial_effect(c)
e2:SetCode(EFFECT_XYZ_LEVEL) e2:SetCode(EFFECT_XYZ_LEVEL)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetValue(c40009241.xyzlv) e2:SetValue(cm.xyzlv)
e2:SetLabel(4) e2:SetLabel(4)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--get effect --get effect
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_XMATERIAL) e3:SetType(EFFECT_TYPE_XMATERIAL)
e3:SetCode(EFFECT_PIERCE) e3:SetCode(EFFECT_PIERCE)
e3:SetCondition(c40009241.condition) e3:SetCondition(cm.condition)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c40009241.condition(e) function cm.condition(e)
return e:GetHandler():GetRace()==RACE_MACHINE return e:GetHandler():GetRace()==RACE_MACHINE
end end
function c40009241.xyzlv(e,c,rc) function cm.xyzlv(e,c,rc)
if rc:IsRace(RACE_MACHINE) then if rc:IsRace(RACE_MACHINE) then
return c:GetLevel()+0x10000*e:GetLabel() return c:GetLevel()+0x10000*e:GetLabel()
else else
return c:GetLevel() return c:GetLevel()
end end
end end
function c40009241.filter(c) function cm.filter(c)
return c:IsFaceup() and c:GetCounter(0x1f1b)==0 and c:IsType(TYPE_XYZ) and c:IsSetCard(0x1f1b) and c:IsCanAddCounter(0x1f1b,1) return c:IsFaceup() and c:GetCounter(0x1f1b)==0 and c:IsType(TYPE_XYZ) and cm.CosmosHero(c) and c:IsCanAddCounter(0x1f1b,1)
end end
function c40009241.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c40009241.filter(chkc) and chkc:IsCanAddCounter(0x1f1b,1) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.filter(chkc) and chkc:IsCanAddCounter(0x1f1b,1) end
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.IsExistingTarget(c40009241.filter,tp,LOCATION_MZONE,0,1,nil) if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c40009241.filter,tp,LOCATION_MZONE,0,1,1,nil) Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end end
function c40009241.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsImmuneToEffect(e) or tc:GetCounter(0x1f1b)>0 then return end if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsImmuneToEffect(e) or tc:GetCounter(0x1f1b)>0 then return end
local c=e:GetHandler() local c=e:GetHandler()
......
--大宇宙勇机 雄伟疾驰 --大宇宙勇机 雄伟疾驰
function c40009242.initial_effect(c) local m=40009242
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
c:EnableCounterPermit(0x1f1b) c:EnableCounterPermit(0x1f1b)
--xyz summon --xyz summon
aux.AddXyzProcedure(c,nil,4,2) aux.AddXyzProcedure(c,nil,4,2)
...@@ -7,17 +14,17 @@ function c40009242.initial_effect(c) ...@@ -7,17 +14,17 @@ function c40009242.initial_effect(c)
--attack up --attack up
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_COUNTER) e1:SetCategory(CATEGORY_COUNTER)
e1:SetDescription(aux.Stringid(40009242,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP) e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_DAMAGE_STEP) e1:SetHintTiming(TIMING_DAMAGE_STEP)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(c40009242.ctcon) e1:SetCondition(cm.ctcon)
e1:SetCost(c40009242.ctcost) e1:SetCost(cm.ctcost)
e1:SetTarget(c40009242.cttg) e1:SetTarget(cm.cttg)
e1:SetOperation(c40009242.ctop) e1:SetOperation(cm.ctop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--get effect --get effect
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -28,42 +35,42 @@ function c40009242.initial_effect(c) ...@@ -28,42 +35,42 @@ function c40009242.initial_effect(c)
e2:SetValue(2000) e2:SetValue(2000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c40009242.ctcon(e,tp,eg,ep,ev,re,r,rp) function cm.ctcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local ph=Duel.GetCurrentPhase() local ph=Duel.GetCurrentPhase()
return ph==PHASE_DAMAGE and Duel.GetBattleMonster(tp)==c and not Duel.IsDamageCalculated() and c:IsAttackAbove(c:GetBaseAttack()+2000) return ph==PHASE_DAMAGE and Duel.GetBattleMonster(tp)==c and not Duel.IsDamageCalculated() and c:IsAttackAbove(c:GetBaseAttack()+2000)
end end
function c40009242.ctcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.ctcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end end
function c40009242.cttg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x1f1b,1) end if chk==0 then return e:GetHandler():IsCanAddCounter(0x1f1b,1) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0x1f1b) Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0x1f1b)
end end
function c40009242.ctop(e,tp,eg,ep,ev,re,r,rp) function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
c:AddCounter(0x1f1b,1) c:AddCounter(0x1f1b,1)
end end
local g=Duel.GetMatchingGroup(c40009242.ctfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local g=Duel.GetMatchingGroup(cm.ctfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
for tc in aux.Next(g) do for tc in aux.Next(g) do
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009242,2)) e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLE_DAMAGE) e1:SetCode(EVENT_BATTLE_DAMAGE)
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT) e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCondition(c40009242.damcon) e1:SetCondition(cm.damcon)
e1:SetOperation(c40009242.damop) e1:SetOperation(cm.damop)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
end end
function c40009242.damcon(e,tp,eg,ep,ev,re,r,rp) function cm.damcon(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp and e:GetHandler():GetCounter(0x1f1b)>0 return ep~=tp and e:GetHandler():GetCounter(0x1f1b)>0
end end
function c40009242.damop(e,tp) function cm.damop(e,tp)
Duel.Hint(HINT_CARD,0,40009242) Duel.Hint(HINT_CARD,0,m)
local c=e:GetHandler() local c=e:GetHandler()
local ct=c:GetCounter(0x1f1b) local ct=c:GetCounter(0x1f1b)
local atk=c:GetAttack() local atk=c:GetAttack()
...@@ -73,22 +80,22 @@ function c40009242.damop(e,tp) ...@@ -73,22 +80,22 @@ function c40009242.damop(e,tp)
if Duel.GetLP(1-tp)<=0 then return end if Duel.GetLP(1-tp)<=0 then return end
end end
end end
function c40009242.ctfilter(c) function cm.ctfilter(c)
return c:GetCounter(0x1f1b)>0 return c:GetCounter(0x1f1b)>0
end end
function c40009242.efcon(e,tp,eg,ep,ev,re,r,rp) function cm.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_XYZ return r==REASON_XYZ
end end
function c40009242.efop(e,tp,eg,ep,ev,re,r,rp) function cm.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local rc=c:GetReasonCard() local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(rc) local e1=Effect.CreateEffect(rc)
e1:SetDescription(aux.Stringid(40009242,1)) e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_ATKCHANGE) e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c40009242.atkcon) e1:SetCondition(cm.atkcon)
e1:SetOperation(c40009242.atkop) e1:SetOperation(cm.atkop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1,true) rc:RegisterEffect(e1,true)
if not rc:IsType(TYPE_EFFECT) then if not rc:IsType(TYPE_EFFECT) then
...@@ -100,10 +107,10 @@ function c40009242.efop(e,tp,eg,ep,ev,re,r,rp) ...@@ -100,10 +107,10 @@ function c40009242.efop(e,tp,eg,ep,ev,re,r,rp)
rc:RegisterEffect(e2,true) rc:RegisterEffect(e2,true)
end end
end end
function c40009242.atkcon(e,tp,eg,ep,ev,re,r,rp) function cm.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ)
end end
function c40009242.atkop(e,tp,eg,ep,ev,re,r,rp) function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -114,6 +121,6 @@ function c40009242.atkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -114,6 +121,6 @@ function c40009242.atkop(e,tp,eg,ep,ev,re,r,rp)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
end end
function c40009242.xmatcon(e) function cm.xmatcon(e)
return e:GetHandler():GetOriginalType()==TYPE_XYZ return e:GetHandler():GetOriginalType()==TYPE_XYZ
end end
\ No newline at end of file
--超宇宙勇机 雄伟疾驰EX --超宇宙勇机 雄伟疾驰EX
function c40009244.initial_effect(c) local m=40009244
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
c:EnableCounterPermit(0x1f1b) c:EnableCounterPermit(0x1f1b)
--xyz summon --xyz summon
aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsRace,RACE_MACHINE),8,2) aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsRace,RACE_MACHINE),8,2)
c:EnableReviveLimit() c:EnableReviveLimit()
--spsummon --spsummon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009244,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_COUNTER) e1:SetCategory(CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCost(c40009244.spcost) e1:SetCost(cm.spcost)
e1:SetTarget(c40009244.cttg) e1:SetTarget(cm.cttg)
e1:SetOperation(c40009244.ctop) e1:SetOperation(cm.ctop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atkup --atkup
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -21,33 +28,35 @@ function c40009244.initial_effect(c) ...@@ -21,33 +28,35 @@ function c40009244.initial_effect(c)
e2:SetCode(EFFECT_IMMUNE_EFFECT) e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetCondition(c40009244.atkcon) e2:SetCondition(cm.atkcon)
e2:SetValue(c40009244.efilter) e2:SetValue(cm.efilter)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c40009244.efilter(e,te) function cm.efilter(e,te)
return not te:GetOwner():IsSetCard(0x1f1b) --local ct=te:GetOwner()
return not cm.CosmosHero(te:GetOwner())
--return not te:GetOwner():IsSetCard(0x1f1b)
end end
function c40009244.filter(c) function cm.filter(c)
return c:IsSetCard(0x1f1b) and c:IsType(TYPE_XYZ) return cm.CosmosHero(c) and c:IsType(TYPE_XYZ)
end end
function c40009244.atkcon(e) function cm.atkcon(e)
return e:GetHandler():GetOverlayGroup():IsExists(c40009244.filter,1,nil) return e:GetHandler():GetOverlayGroup():IsExists(cm.filter,1,nil)
end end
function c40009244.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
local ct=Duel.GetOperatedGroup():GetFirst() local ct=Duel.GetOperatedGroup():GetFirst()
e:SetLabelObject(ct) e:SetLabelObject(ct)
end end
function c40009244.cttg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x1f1b,1) end if chk==0 then return e:GetHandler():IsCanAddCounter(0x1f1b,1) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0x1f1b) Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0x1f1b)
end end
function c40009244.ctop(e,tp,eg,ep,ev,re,r,rp) function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
if c:AddCounter(0x1f1b,1) and (e:GetLabelObject():IsType(TYPE_MONSTER) and e:GetLabelObject():IsSetCard(0x1f1b)) then if c:AddCounter(0x1f1b,1) and (e:GetLabelObject():IsType(TYPE_MONSTER) and cm.CosmosHero(e:GetLabelObject()) ) then
local atk=e:GetLabelObject():GetAttack() local atk=e:GetLabelObject():GetAttack()
local def=e:GetLabelObject():GetDefense() local def=e:GetLabelObject():GetDefense()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -63,25 +72,25 @@ function c40009244.ctop(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,25 +72,25 @@ function c40009244.ctop(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE) e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
local g=Duel.GetMatchingGroup(c40009244.ctfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local g=Duel.GetMatchingGroup(cm.ctfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
for tc in aux.Next(g) do for tc in aux.Next(g) do
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009244,1)) e1:SetDescription(aux.Stringid(m,1))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLE_DAMAGE) e1:SetCode(EVENT_BATTLE_DAMAGE)
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT) e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCondition(c40009244.damcon) e1:SetCondition(cm.damcon)
e1:SetOperation(c40009244.damop) e1:SetOperation(cm.damop)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
end end
end end
function c40009244.damcon(e,tp,eg,ep,ev,re,r,rp) function cm.damcon(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp and e:GetHandler():GetCounter(0x1f1b)>0 return ep~=tp and e:GetHandler():GetCounter(0x1f1b)>0
end end
function c40009244.damop(e,tp) function cm.damop(e,tp)
Duel.Hint(HINT_CARD,0,40009244) Duel.Hint(HINT_CARD,0,m)
local c=e:GetHandler() local c=e:GetHandler()
local ct=c:GetCounter(0x1f1b) local ct=c:GetCounter(0x1f1b)
local atk=c:GetAttack() local atk=c:GetAttack()
......
--升阶魔法-宇宙勇机升华 --升阶魔法-宇宙勇机升华
function c40009245.initial_effect(c) local m=40009245
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
--equip --equip
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(40009245,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_ACTIVATE) e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET) e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetTarget(c40009245.sptg1) e2:SetTarget(cm.sptg1)
e2:SetOperation(c40009245.spop1) e2:SetOperation(cm.spop1)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--spsummon --spsummon
local e3=e2:Clone() local e3=e2:Clone()
e3:SetDescription(aux.Stringid(40009245,1)) e3:SetDescription(aux.Stringid(m,1))
e3:SetTarget(c40009245.target) e3:SetTarget(cm.target)
e3:SetOperation(c40009245.activate) e3:SetOperation(cm.activate)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--atkup --atkup
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009245,2)) e1:SetDescription(aux.Stringid(m,2))
e1:SetCategory(CATEGORY_ATKCHANGE) e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
...@@ -26,36 +33,36 @@ function c40009245.initial_effect(c) ...@@ -26,36 +33,36 @@ function c40009245.initial_effect(c)
e1:SetRange(LOCATION_GRAVE) e1:SetRange(LOCATION_GRAVE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP) e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCost(aux.bfgcost) e1:SetCost(aux.bfgcost)
e1:SetTarget(c40009245.atktg) e1:SetTarget(cm.atktg)
e1:SetOperation(c40009245.atkop) e1:SetOperation(cm.atkop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c40009245.tgfilter(c) function cm.tgfilter(c)
return c:IsFaceup() and c:IsRace(RACE_MACHINE) and c:IsType(TYPE_XYZ) return c:IsFaceup() and c:IsRace(RACE_MACHINE) and c:IsType(TYPE_XYZ)
end end
function c40009245.spfilter1(c,e,tp) function cm.spfilter1(c,e,tp)
return c40009245.tgfilter(c) return cm.tgfilter(c)
and Duel.IsExistingMatchingCard(c40009245.spfilter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c) and Duel.IsExistingMatchingCard(cm.spfilter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c)
and aux.MustMaterialCheck(c,tp,EFFECT_MUST_BE_XMATERIAL) and aux.MustMaterialCheck(c,tp,EFFECT_MUST_BE_XMATERIAL)
end end
function c40009245.spfilter2(c,e,tp,mc) function cm.spfilter2(c,e,tp,mc)
return c:IsSetCard(0x1f1b) and c:IsType(TYPE_XYZ) and not c:IsCode(mc:GetCode()) and c:IsRank(mc:GetRank()) and mc:IsCanBeXyzMaterial(c) return cm.CosmosHero(c) and c:IsType(TYPE_XYZ) and not c:IsCode(mc:GetCode()) and c:IsRank(mc:GetRank()) and mc:IsCanBeXyzMaterial(c)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,mc,c)>0 and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,mc,c)>0
end end
function c40009245.sptg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.sptg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c40009245.spfilter1(chkc,e,tp) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and cm.spfilter1(chkc,e,tp) end
if chk==0 then return Duel.IsExistingTarget(c40009245.spfilter1,tp,LOCATION_MZONE,0,1,nil,e,tp) end if chk==0 then return Duel.IsExistingTarget(cm.spfilter1,tp,LOCATION_MZONE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.SelectTarget(tp,c40009245.spfilter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp) Duel.SelectTarget(tp,cm.spfilter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
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 c40009245.spop1(e,tp,eg,ep,ev,re,r,rp) function cm.spop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if not aux.MustMaterialCheck(tc,tp,EFFECT_MUST_BE_XMATERIAL) then return end if not aux.MustMaterialCheck(tc,tp,EFFECT_MUST_BE_XMATERIAL) then return end
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) then return end if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c40009245.spfilter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc) local g=Duel.SelectMatchingCard(tp,cm.spfilter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc)
local sc=g:GetFirst() local sc=g:GetFirst()
if sc then if sc then
local mg=tc:GetOverlayGroup() local mg=tc:GetOverlayGroup()
...@@ -68,29 +75,29 @@ function c40009245.spop1(e,tp,eg,ep,ev,re,r,rp) ...@@ -68,29 +75,29 @@ function c40009245.spop1(e,tp,eg,ep,ev,re,r,rp)
sc:CompleteProcedure() sc:CompleteProcedure()
end end
end end
function c40009245.filter1(c,e,tp) function cm.filter1(c,e,tp)
local rk=c:GetRank() local rk=c:GetRank()
return c40009245.tgfilter(c) return cm.tgfilter(c)
and Duel.IsExistingMatchingCard(c40009245.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c,rk+4) and Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,c,rk+4)
and aux.MustMaterialCheck(c,tp,EFFECT_MUST_BE_XMATERIAL) and aux.MustMaterialCheck(c,tp,EFFECT_MUST_BE_XMATERIAL)
end end
function c40009245.filter2(c,e,tp,mc,rk) function cm.filter2(c,e,tp,mc,rk)
return c:IsRank(rk) and c:IsSetCard(0x1f1b) and mc:IsCanBeXyzMaterial(c) return c:IsRank(rk) and cm.CosmosHero(c) and mc:IsCanBeXyzMaterial(c)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,mc,c)>0 and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,mc,c)>0
end end
function c40009245.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c40009245.filter1(chkc,e,tp) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and cm.filter1(chkc,e,tp) end
if chk==0 then return Duel.IsExistingTarget(c40009245.filter1,tp,LOCATION_MZONE,0,1,nil,e,tp) end if chk==0 then return Duel.IsExistingTarget(cm.filter1,tp,LOCATION_MZONE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.SelectTarget(tp,c40009245.filter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp) Duel.SelectTarget(tp,cm.filter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
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 c40009245.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if not aux.MustMaterialCheck(tc,tp,EFFECT_MUST_BE_XMATERIAL) then return end if not aux.MustMaterialCheck(tc,tp,EFFECT_MUST_BE_XMATERIAL) then return end
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) then return end if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c40009245.filter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc,tc:GetRank()+4) local g=Duel.SelectMatchingCard(tp,cm.filter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc,tc:GetRank()+4)
local sc=g:GetFirst() local sc=g:GetFirst()
if sc then if sc then
local mg=tc:GetOverlayGroup() local mg=tc:GetOverlayGroup()
...@@ -103,16 +110,16 @@ function c40009245.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -103,16 +110,16 @@ function c40009245.activate(e,tp,eg,ep,ev,re,r,rp)
sc:CompleteProcedure() sc:CompleteProcedure()
end end
end end
function c40009245.filter(c) function cm.filter(c)
return c:IsFaceup() and c:IsSetCard(0x1f1b) return c:IsFaceup() and cm.CosmosHero(c)
end end
function c40009245.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c40009245.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c40009245.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c40009245.filter,tp,LOCATION_MZONE,0,1,1,nil) Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
end end
function c40009245.atkop(e,tp,eg,ep,ev,re,r,rp) function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
......
--宇宙勇机 敌阵突破 --宇宙勇机 敌阵突破
function c40009386.initial_effect(c) local m=40009386
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009386,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY) e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_TOHAND+TIMINGS_CHECK_MONSTER) e1:SetHintTiming(0,TIMING_TOHAND+TIMINGS_CHECK_MONSTER)
--e1:SetCost(c40009386.cost) --e1:SetCost(cm.cost)
e1:SetTarget(c40009386.target) e1:SetTarget(cm.target)
e1:SetOperation(c40009386.activate) e1:SetOperation(cm.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atkup --atkup
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(40009386,1)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_ATKCHANGE) e2:SetCategory(CATEGORY_ATKCHANGE)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
...@@ -21,34 +28,34 @@ function c40009386.initial_effect(c) ...@@ -21,34 +28,34 @@ function c40009386.initial_effect(c)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP) e2:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e2:SetCost(aux.bfgcost) e2:SetCost(aux.bfgcost)
e2:SetTarget(c40009386.atktg) e2:SetTarget(cm.atktg)
e2:SetOperation(c40009386.atkop) e2:SetOperation(cm.atkop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c40009386.costfilter(c,matk) function cm.costfilter(c,matk)
return c:IsAttribute(ATTRIBUTE_DARK) and c:IsAttackAbove(matk) and c:IsFaceup() and c:IsSetCard(0x1f1b) return c:IsAttribute(ATTRIBUTE_DARK) and c:IsAttackAbove(matk) and c:IsFaceup() and cm.CosmosHero(c)
end end
--function c40009386.cost(e,tp,eg,ep,ev,re,r,rp,chk) --function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
--e:SetLabel(100) --e:SetLabel(100)
--return true --return true
--end --end
function c40009386.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local dc=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND+LOCATION_ONFIELD) local dc=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND+LOCATION_ONFIELD)
local matk=math.min(2000,dc*2000) local matk=math.min(2000,dc*2000)
if chk==0 then if chk==0 then
--if e:GetLabel()~=100 then return false end --if e:GetLabel()~=100 then return false end
-- e:SetLabel(0) -- e:SetLabel(0)
return matk>0 and Duel.IsExistingTarget(c40009386.costfilter,tp,LOCATION_MZONE,0,1,nil,matk) --Duel.CheckReleaseGroup(tp,c40009386.costfilter,1,nil,matk) return matk>0 and Duel.IsExistingTarget(cm.costfilter,tp,LOCATION_MZONE,0,1,nil,matk) --Duel.CheckReleaseGroup(tp,cm.costfilter,1,nil,matk)
end end
-- local g=Duel.SelectReleaseGroup(tp,c40009386.costfilter,1,1,nil,matk) -- local g=Duel.SelectReleaseGroup(tp,cm.costfilter,1,1,nil,matk)
local g=Duel.SelectTarget(tp,c40009386.costfilter,tp,LOCATION_MZONE,0,1,1,nil,matk) local g=Duel.SelectTarget(tp,cm.costfilter,tp,LOCATION_MZONE,0,1,1,nil,matk)
local atk=g:GetFirst():GetAttack() local atk=g:GetFirst():GetAttack()
--e:SetLabel(atk) --e:SetLabel(atk)
--Duel.Release(g,REASON_COST) --Duel.Release(g,REASON_COST)
local ct=math.floor(atk/2000) local ct=math.floor(atk/2000)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,ct,1-tp,LOCATION_ONFIELD+LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,ct,1-tp,LOCATION_ONFIELD+LOCATION_HAND)
end end
function c40009386.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
local atk=tc:GetAttack() local atk=tc:GetAttack()
...@@ -61,16 +68,16 @@ function c40009386.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,16 +68,16 @@ function c40009386.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
end end
function c40009386.filter(c) function cm.filter(c)
return c:IsFaceup() and c:IsSetCard(0x1f1b) return c:IsFaceup() and cm.CosmosHero(c)
end end
function c40009386.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c40009386.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c40009386.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c40009386.filter,tp,LOCATION_MZONE,0,1,1,nil) Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
end end
function c40009386.atkop(e,tp,eg,ep,ev,re,r,rp) function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
......
--宇宙勇机 崇高敬意 --宇宙勇机 崇高敬意
function c40009401.initial_effect(c) local m=40009401
local cm=_G["c"..m]
cm.named_with_CosmosHero=1
function cm.CosmosHero(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_CosmosHero
end
function cm.initial_effect(c)
--equip --equip
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(40009401,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_ACTIVATE) e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(1,40009401) e2:SetCountLimit(1,m)
e2:SetTarget(c40009401.thtg) e2:SetTarget(cm.thtg)
e2:SetOperation(c40009401.thop) e2:SetOperation(cm.thop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--atkup --atkup
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009401,1)) e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_ATKCHANGE) e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetHintTiming(TIMING_DAMAGE_STEP) e1:SetHintTiming(TIMING_DAMAGE_STEP)
e1:SetRange(LOCATION_GRAVE) e1:SetRange(LOCATION_GRAVE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP) e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCost(aux.bfgcost) e1:SetCost(aux.bfgcost)
e1:SetTarget(c40009401.atktg) e1:SetTarget(cm.atktg)
e1:SetOperation(c40009401.atkop) e1:SetOperation(cm.atkop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c40009401.thfilter(c) function cm.thfilter(c)
return c:IsSetCard(0x1f1b) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() return cm.CosmosHero(c) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end end
function c40009401.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local g=Duel.GetMatchingGroup(c40009401.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(cm.thfilter,tp,LOCATION_DECK,0,nil)
return g:GetClassCount(Card.GetCode)>=2 return g:GetClassCount(Card.GetCode)>=2
end end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK)
end end
function c40009401.thop(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c40009401.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(cm.thfilter,tp,LOCATION_DECK,0,nil)
if g:GetClassCount(Card.GetCode)<2 then return end if g:GetClassCount(Card.GetCode)<2 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tg1=g:SelectSubGroup(tp,aux.dncheck,false,2,2) local tg1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.SendtoHand(tg1,nil,REASON_EFFECT) Duel.SendtoHand(tg1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tg1) Duel.ConfirmCards(1-tp,tg1)
end end
function c40009401.filter(c) function cm.filter(c)
return c:IsFaceup() and c:IsSetCard(0x1f1b) return c:IsFaceup() and cm.CosmosHero(c)
end end
function c40009401.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c40009401.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c40009401.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c40009401.filter,tp,LOCATION_MZONE,0,1,1,nil) Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
end end
function c40009401.atkop(e,tp,eg,ep,ev,re,r,rp) function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
......
...@@ -105,7 +105,7 @@ function c40009414.thcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -105,7 +105,7 @@ function c40009414.thcon(e,tp,eg,ep,ev,re,r,rp)
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsSummonType(SUMMON_TYPE_SYNCHRO) return c:IsPreviousLocation(LOCATION_MZONE) and c:IsSummonType(SUMMON_TYPE_SYNCHRO)
end end
function c40009414.thfilter(c) function c40009414.thfilter(c)
return c:IsSetCard(0xf14) and c:IsAbleToHand() and (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE)) return c:IsSetCard(0x10c5) and c:IsAbleToHand() and (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE))
end end
function c40009414.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c40009414.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009414.thfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c40009414.thfilter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end
......
...@@ -56,7 +56,7 @@ function c40009491.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,7 +56,7 @@ function c40009491.operation(e,tp,eg,ep,ev,re,r,rp)
end end
function c40009491.spxcon(e,tp,eg,ep,ev,re,r,rp) function c40009491.spxcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return Duel.GetAttacker()==c return Duel.GetAttacker()==c and c:IsChainAttackable(0,true)
end end
function c40009491.spxfilter(c,e,tp,mc) function c40009491.spxfilter(c,e,tp,mc)
return c:IsRankBelow(10) and c:IsType(TYPE_PENDULUM) and mc:IsCanBeXyzMaterial(c) return c:IsRankBelow(10) and c:IsType(TYPE_PENDULUM) and mc:IsCanBeXyzMaterial(c)
......
--魔惧会 暴虐之布鲁斯 --魔惧会 暴虐之布鲁斯
function c40009560.initial_effect(c) local m=40009560
local cm=_G["c"..m]
cm.named_with_Diablotherhood=1
function cm.Diablotherhood(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_Diablotherhood
end
function cm.initial_effect(c)
-- --
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009560,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SUMMON_SUCCESS) e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e1:SetOperation(c40009560.op) e1:SetOperation(cm.op)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e1:Clone() local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,0))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_PHASE+PHASE_STANDBY) e3:SetCode(EVENT_PHASE+PHASE_STANDBY)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1) e3:SetCountLimit(1)
e3:SetCondition(c40009560.con) e3:SetCondition(cm.con)
e3:SetOperation(cm.op)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--spsummon --spsummon
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(40009560,1)) e4:SetDescription(aux.Stringid(m,1))
-- e4:SetCategory(CATEGORY_SPECIAL_SUMMON) -- e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetType(EFFECT_TYPE_IGNITION) e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_HAND) e4:SetRange(LOCATION_HAND)
e4:SetCountLimit(1,40009560) e4:SetCountLimit(1,m)
e4:SetCost(c40009560.spcost) e4:SetCost(cm.spcost)
e4:SetTarget(c40009560.sptg) e4:SetTarget(cm.sptg)
e4:SetOperation(c40009560.spop) e4:SetOperation(cm.spop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--immune --immune
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
...@@ -35,28 +44,28 @@ function c40009560.initial_effect(c) ...@@ -35,28 +44,28 @@ function c40009560.initial_effect(c)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE) e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_IMMUNE_EFFECT) e5:SetCode(EFFECT_IMMUNE_EFFECT)
e5:SetCondition(c40009560.immcon) e5:SetCondition(cm.immcon)
e5:SetValue(c40009560.efilter) e5:SetValue(cm.efilter)
c:RegisterEffect(e5) c:RegisterEffect(e5)
end end
function c40009560.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
end end
function c40009560.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Hint(HINT_MESSAGE,1-tp,aux.Stringid(40009560,0)) Duel.Hint(HINT_MESSAGE,1-tp,aux.Stringid(m,0))
Duel.Hint(HINT_MESSAGE,tp,aux.Stringid(40009560,0)) Duel.Hint(HINT_MESSAGE,tp,aux.Stringid(m,0))
Duel.RegisterFlagEffect(tp,40009560,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1) Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
c:RegisterFlagEffect(0,RESET_EVENT+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(40009560,0)) c:RegisterFlagEffect(0,RESET_EVENT+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,0))
end end
function c40009560.rfilter(c,tp) function cm.rfilter(c,tp)
return Duel.GetMZoneCount(tp,c)>0 and c:IsSetCard(0xcf1b) return Duel.GetMZoneCount(tp,c)>0 and cm.Diablotherhood(c)
end end
function c40009560.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,c40009560.rfilter,1,nil,tp) end if chk==0 then return Duel.CheckReleaseGroup(tp,cm.rfilter,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectReleaseGroup(tp,c40009560.rfilter,1,1,nil,tp) local g=Duel.SelectReleaseGroup(tp,cm.rfilter,1,1,nil,tp)
local ct=g:FilterCount(Card.IsCode,nil,40009560) local ct=g:FilterCount(Card.IsCode,nil,m)
e:SetValue(ct) e:SetValue(ct)
if ct>0 then if ct>0 then
e:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_ATKCHANGE) e:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_ATKCHANGE)
...@@ -65,11 +74,11 @@ function c40009560.spcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -65,11 +74,11 @@ function c40009560.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
Duel.Release(g,REASON_COST) Duel.Release(g,REASON_COST)
end end
function c40009560.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c40009560.spop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetValue() local ct=e:GetValue()
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
...@@ -85,10 +94,13 @@ function c40009560.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -85,10 +94,13 @@ function c40009560.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
end end
function c40009560.immcon(e,tp,eg,ep,ev,re,r,rp) function cm.dfilter(c)
return Duel.GetFlagEffect(tp,40009560)>0 return c:IsFaceup() and c:IsCode(40010230)
end
function cm.immcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,m)>0 or Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_MZONE,0,1,nil)
end end
function c40009560.efilter(e,re,rp) function cm.efilter(e,re,rp)
if e:GetHandlerPlayer()==re:GetHandlerPlayer() then return false end if e:GetHandlerPlayer()==re:GetHandlerPlayer() then return false end
local c=e:GetHandler() local c=e:GetHandler()
local ec=re:GetHandler() local ec=re:GetHandler()
......
--魔惧会 愤怒之理查德 --魔惧会 愤怒之理查德
function c40009625.initial_effect(c) local m=40009625
local cm=_G["c"..m]
cm.named_with_Diablotherhood=1
function cm.Diablotherhood(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_Diablotherhood
end
function cm.initial_effect(c)
--Special Summon from Grave --Special Summon from Grave
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(40009625,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
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,40009625) e2:SetCountLimit(1,m)
e2:SetTarget(c40009625.sptg) e2:SetTarget(cm.sptg)
e2:SetOperation(c40009625.spop) e2:SetOperation(cm.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--destroy --destroy
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(40009625,1)) e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_DESTROY) e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_QUICK_O) e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET) e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetCode(EVENT_FREE_CHAIN) e3:SetCode(EVENT_FREE_CHAIN)
e3:SetCountLimit(1) e3:SetCountLimit(1)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetCondition(c40009625.descon) e3:SetCondition(cm.descon)
e3:SetTarget(c40009625.destg) e3:SetTarget(cm.destg)
e3:SetOperation(c40009625.desop) e3:SetOperation(cm.desop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c40009625.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsSetCard(0xcf1b) and not c:IsCode(40009625) return cm.Diablotherhood(c) and not c:IsCode(m)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
end end
function c40009625.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c40009625.spfilter(chkc,e,tp) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and cm.spfilter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c40009625.spfilter,tp,LOCATION_GRAVE,0,1,e:GetHandler(),e,tp) end and Duel.IsExistingTarget(cm.spfilter,tp,LOCATION_GRAVE,0,1,e:GetHandler(),e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c40009625.spfilter,tp,LOCATION_GRAVE,0,1,1,e:GetHandler(),e,tp) local g=Duel.SelectTarget(tp,cm.spfilter,tp,LOCATION_GRAVE,0,1,1,e:GetHandler(),e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end end
function c40009625.spop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(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.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE) Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
end end
end end
function c40009625.descon(e,tp,eg,ep,ev,re,r,rp) function cm.dfilter(c)
return Duel.GetFlagEffect(tp,40009560)>0 return c:IsFaceup() and c:IsCode(40010230)
end
function cm.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,40009560)>0 or Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_MZONE,0,1,nil)
end end
function c40009625.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and chkc:IsControler(1-tp) end if chkc then return chkc:IsControler(1-tp) and chkc:IsOnField() end
if chk==0 then return Duel.IsExistingTarget(nil,tp,0,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil) local g=Duel.SelectTarget(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end end
function c40009625.desop(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc,c=Duel.GetFirstTarget(),e:GetHandler() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then if tc:IsRelateToEffect(e) then
Duel.Destroy(tc,REASON_EFFECT) Duel.Destroy(tc,REASON_EFFECT)
end end
end end
function c40009625.immcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,40009560)>0
end
\ No newline at end of file
--魔惧会 恶童之史蒂夫 --魔惧会 恶童之史蒂夫
function c40009627.initial_effect(c) local m=40009627
local cm=_G["c"..m]
cm.named_with_Diablotherhood=1
function cm.Diablotherhood(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_Diablotherhood
end
function cm.initial_effect(c)
--negate --negate
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(40009627,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_DISABLE) e2:SetCategory(CATEGORY_DISABLE)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET) e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1,40009627) e2:SetRange(LOCATION_MZONE)
e2:SetCost(c40009627.descost) e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e2:SetTarget(c40009627.target) e2:SetCountLimit(1,m)
e2:SetOperation(c40009627.operation) e2:SetCost(cm.descost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--actlimit --actlimit
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
...@@ -22,26 +29,26 @@ function c40009627.initial_effect(c) ...@@ -22,26 +29,26 @@ function c40009627.initial_effect(c)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(0,1) e3:SetTargetRange(0,1)
e3:SetValue(1) e3:SetValue(1)
e3:SetCondition(c40009627.actcon) e3:SetCondition(cm.actcon)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c40009627.cfilter(c) function cm.cfilter(c)
return c:IsRace(RACE_FIEND) and c:IsAbleToGraveAsCost() return c:IsRace(RACE_FIEND) and c:IsAbleToGraveAsCost()
end end
function c40009627.descost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.descost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009627.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c40009627.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c40009627.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and aux.disfilter1(chkc) end if chkc then return chkc:IsOnField() and aux.NegateAnyFilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(aux.disfilter1,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingTarget(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectTarget(tp,aux.disfilter1,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil) local g=Duel.SelectTarget(tp,aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0)
end end
function c40009627.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if ((tc:IsFaceup() and not tc:IsDisabled()) or tc:IsType(TYPE_TRAPMONSTER)) and tc:IsRelateToEffect(e) then if ((tc:IsFaceup() and not tc:IsDisabled()) or tc:IsType(TYPE_TRAPMONSTER)) and tc:IsRelateToEffect(e) then
...@@ -69,10 +76,13 @@ function c40009627.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -69,10 +76,13 @@ function c40009627.operation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
end end
function c40009627.actcon(e,tp,eg,ep,ev,re,r,rp) function cm.dfilter(c)
return (Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler()) and Duel.GetFlagEffect(tp,40009560)>0 return c:IsFaceup() and c:IsCode(40010230)
end
function cm.actcon(e,tp,eg,ep,ev,re,r,rp)
return (Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler()) and (Duel.GetFlagEffect(tp,40009560)>0 or Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_MZONE,0,1,nil))
end end
function c40009627.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
c:RegisterFlagEffect(0,RESET_EVENT+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(40009560,0)) c:RegisterFlagEffect(0,RESET_EVENT+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(40009560,0))
end end
......
--魔惧会 无垢之玛特 --魔惧会 无垢之玛特
function c40009629.initial_effect(c) local m=40009629
local cm=_G["c"..m]
cm.named_with_Diablotherhood=1
function cm.Diablotherhood(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_Diablotherhood
end
function cm.initial_effect(c)
--link summon --link summon
aux.AddLinkProcedure(c,c40009629.matfilter,1,1) aux.AddLinkProcedure(c,cm.matfilter,1,1)
c:EnableReviveLimit() c:EnableReviveLimit()
--special summon --special summon
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(40009629,0)) e3:SetDescription(aux.Stringid(m,0))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_SPSUMMON_SUCCESS) e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetCountLimit(1,40009629) e3:SetCountLimit(1,m)
e3:SetCost(c40009629.cost) e3:SetCost(cm.cost)
e3:SetCondition(c40009629.spcon) e3:SetCondition(cm.spcon)
e3:SetTarget(c40009629.sptg) e3:SetTarget(cm.sptg)
e3:SetOperation(c40009629.spop) e3:SetOperation(cm.spop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
-- --
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(EFFECT_UPDATE_ATTACK) e4:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetCondition(c40009629.actcon) e4:SetCondition(cm.actcon)
e4:SetValue(2000) e4:SetValue(2000)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
c:RegisterEffect(e4) c:RegisterEffect(e4)
...@@ -31,47 +38,51 @@ function c40009629.initial_effect(c) ...@@ -31,47 +38,51 @@ function c40009629.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetCondition(c40009629.actcon) e1:SetCondition(cm.actcon)
e1:SetValue(1) e1:SetValue(1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c40009629.matfilter(c) function cm.matfilter(c)
return c:IsLinkRace(RACE_FIEND) and not c:IsLinkType(TYPE_LINK) return c:IsLinkRace(RACE_FIEND) and not c:IsLinkType(TYPE_LINK)
end end
function c40009629.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK) return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end end
function c40009629.cfilter(c) function cm.cfilter(c)
return c:IsFacedown() and c:IsAbleToRemoveAsCost(POS_FACEDOWN) return c:IsFacedown() and c:IsAbleToRemoveAsCost(POS_FACEDOWN)
end end
function c40009629.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009629.cfilter,tp,LOCATION_EXTRA,0,3,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_EXTRA,0,3,nil) end
local g=Duel.GetMatchingGroup(c40009629.cfilter,tp,LOCATION_EXTRA,0,nil) local g=Duel.GetMatchingGroup(cm.cfilter,tp,LOCATION_EXTRA,0,nil)
local rg=g:RandomSelect(tp,3) local rg=g:RandomSelect(tp,3)
Duel.Remove(rg,POS_FACEDOWN,REASON_COST) Duel.Remove(rg,POS_FACEDOWN,REASON_COST)
end end
function c40009629.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsCode(40009560) and c:IsCanBeSpecialSummoned(e,0,tp,true,true) return c:IsCode(40009560) and c:IsCanBeSpecialSummoned(e,0,tp,true,true)
end end
function c40009629.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.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(c40009629.spfilter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
end end
function c40009629.spop(e,tp,eg,ep,ev,re,r,rp) function cm.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,c40009629.spfilter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil,e,tp)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc then
Duel.SpecialSummon(tc,0,tp,tp,true,true,POS_FACEUP) Duel.SpecialSummon(tc,0,tp,tp,true,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end end
function c40009629.actcon(e,tp,eg,ep,ev,re,r,rp) function cm.dfilter(c)
return Duel.GetFlagEffect(tp,40009560)>0 return c:IsFaceup() and c:IsCode(40010230)
end
function cm.actcon(e,c)
local tp=e:GetHandlerPlayer()
return Duel.GetFlagEffect(tp,40009560)>0 or Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_MZONE,0,1,nil)
end end
--魔惧会女孩 麦麦 --魔惧会女孩 麦麦
function c40009631.initial_effect(c) local m=40009631
local cm=_G["c"..m]
cm.named_with_Diablotherhood=1
function cm.Diablotherhood(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_Diablotherhood
end
function cm.initial_effect(c)
--Special Summon --Special Summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009631,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC) e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,40009632+EFFECT_COUNT_CODE_OATH) e1:SetCountLimit(1,40009632+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(c40009631.actcon) e1:SetCondition(cm.actcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e4=e1:Clone() local e4=e1:Clone()
e4:SetRange(LOCATION_GRAVE) e4:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--tohand --tohand
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(40009631,1)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SUMMON_SUCCESS) e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,40009631) e2:SetCountLimit(1,m)
e2:SetCost(c40009631.descost) e2:SetCost(cm.descost)
e2:SetTarget(c40009631.thtg) e2:SetTarget(cm.thtg)
e2:SetOperation(c40009631.thop) e2:SetOperation(cm.thop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone() local e3=e2:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS) e3:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c40009631.actcon(e,tp,eg,ep,ev,re,r,rp) function cm.dfilter(c)
return Duel.GetFlagEffect(tp,40009560)>0 return c:IsFaceup() and c:IsCode(40010230)
end
function cm.actcon(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
return Duel.GetFlagEffect(tp,40009560)>0 or Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_MZONE,0,1,nil)
end end
function c40009631.cfilter(c) function cm.cfilter(c)
return c:IsRace(RACE_FIEND) and c:IsAbleToGraveAsCost() return c:IsRace(RACE_FIEND) and c:IsAbleToGraveAsCost()
end end
function c40009631.descost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.descost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009631.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c40009631.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c40009631.thfilter(c) function cm.thfilter(c)
return c:IsSetCard(0xcf1b) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and not c:IsCode(40009631) return cm.Diablotherhood(c) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and not c:IsCode(m)
end end
function c40009631.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009631.thfilter,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function c40009631.thop(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c40009631.thfilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if #g>0 then if #g>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT) Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
......
--魔惧会女孩 雅莉安娜 --魔惧会女孩 雅莉安娜
function c40009633.initial_effect(c) local m=40009633
local cm=_G["c"..m]
cm.named_with_Diablotherhood=1
function cm.Diablotherhood(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_Diablotherhood
end
function cm.initial_effect(c)
--Special Summon --Special Summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009633,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC) e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,40009634+EFFECT_COUNT_CODE_OATH) e1:SetCountLimit(1,40009634+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(c40009633.actcon) e1:SetCondition(cm.actcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e4=e1:Clone() local e4=e1:Clone()
e4:SetRange(LOCATION_GRAVE) e4:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--tohand --tohand
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(40009633,1)) e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SUMMON_SUCCESS) e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,40009633) e2:SetCountLimit(1,m)
e2:SetCost(c40009633.descost) e2:SetCost(cm.descost)
e2:SetTarget(c40009633.settg) e2:SetTarget(cm.settg)
e2:SetOperation(c40009633.setop) e2:SetOperation(cm.setop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone() local e3=e2:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS) e3:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c40009633.actcon(e,tp,eg,ep,ev,re,r,rp) function cm.dfilter(c)
return Duel.GetFlagEffect(tp,40009560)>0 return c:IsFaceup() and c:IsCode(40010230)
end
function cm.actcon(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
return Duel.GetFlagEffect(tp,40009560)>0 or Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_MZONE,0,1,nil)
end end
function c40009633.cfilter(c) function cm.cfilter(c)
return c:IsRace(RACE_FIEND) and c:IsAbleToGraveAsCost() return c:IsRace(RACE_FIEND) and c:IsAbleToGraveAsCost()
end end
function c40009633.descost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.descost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009633.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c40009633.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c40009633.filter(c) function cm.filter(c)
return c:IsSetCard(0xcf1b) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable() return cm.Diablotherhood(c) and c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable()
end end
function c40009633.settg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.settg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009633.filter,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil) end
end end
function c40009633.setop(e,tp,eg,ep,ev,re,r,rp) function cm.setop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,c40009633.filter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SSet(tp,g:GetFirst()) Duel.SSet(tp,g:GetFirst())
end end
......
--兄弟会之魂 --兄弟会之魂
function c40009635.initial_effect(c) local m=40009635
local cm=_G["c"..m]
cm.named_with_Diablotherhood=1
function cm.Diablotherhood(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_Diablotherhood
end
function cm.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_TODECK) e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(c40009635.cost) e1:SetCost(cm.cost)
e1:SetTarget(c40009635.target) e1:SetTarget(cm.target)
e1:SetOperation(c40009635.activate) e1:SetOperation(cm.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--set --set
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCost(c40009635.setcost) e2:SetCost(cm.setcost)
e2:SetTarget(c40009635.settg) e2:SetTarget(cm.settg)
e2:SetOperation(c40009635.setop) e2:SetOperation(cm.setop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c40009635.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD) Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end end
function c40009635.filter1(c) function cm.filter1(c)
return c:IsSetCard(0xcf1b) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave() return cm.Diablotherhood(c) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
function cm.filter2(c,e,tp)
return cm.Diablotherhood(c) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c40009635.filter2(c,e,tp) function cm.dfilter(c)
return c:IsSetCard(0xcf1b) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsFaceup() and c:IsCode(40010230)
end end
function c40009635.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local b1=Duel.IsExistingMatchingCard(c40009635.filter1,tp,LOCATION_DECK,0,1,nil) local b1=Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_DECK,0,1,nil)
local b2=Duel.IsExistingTarget(c40009635.filter2,tp,LOCATION_DECK,0,1,nil,e,tp) local b2=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_DECK,0,1,nil,e,tp)
if chk==0 then return b1 or b2 end if chk==0 then return b1 or b2 end
local op=0 local op=0
if b1 and b2 then if b1 and b2 then
if Duel.GetFlagEffect(tp,40009560)>0 then if (Duel.GetFlagEffect(tp,40009560)>0 or Duel.IsExistingMatchingCard(cm.dfilter,tp,LOCATION_MZONE,0,1,nil)) then
op=Duel.SelectOption(tp,aux.Stringid(40009635,0),aux.Stringid(40009635,1),aux.Stringid(40009635,2)) op=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1),aux.Stringid(m,2))
else else
op=Duel.SelectOption(tp,aux.Stringid(40009635,0),aux.Stringid(40009635,1)) op=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1))
end end
elseif b1 then elseif b1 then
op=Duel.SelectOption(tp,aux.Stringid(40009635,0)) op=Duel.SelectOption(tp,aux.Stringid(m,0))
else else
op=Duel.SelectOption(tp,aux.Stringid(40009635,1))+1 op=Duel.SelectOption(tp,aux.Stringid(m,1))+1
end end
e:SetLabel(op) e:SetLabel(op)
end end
function c40009635.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local op=e:GetLabel() local op=e:GetLabel()
if op~=1 then if op~=1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c40009635.filter1,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.filter1,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT) Duel.SendtoGrave(g,REASON_EFFECT)
end end
end end
if op~=0 then if op~=0 then
local g1=Duel.SelectMatchingCard(tp,c40009635.filter2,tp,LOCATION_DECK,0,1,1,nil,e,tp) local g1=Duel.SelectMatchingCard(tp,cm.filter2,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g1:GetCount()>0 then if g1:GetCount()>0 then
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
end end
end end
end end
function c40009635.cfilter(c) function cm.cfilter(c)
return c:IsFacedown() and c:IsAbleToRemoveAsCost(POS_FACEDOWN) return c:IsFacedown() and c:IsAbleToRemoveAsCost(POS_FACEDOWN)
end end
function c40009635.setcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.setcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009635.cfilter,tp,LOCATION_EXTRA,0,3,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_EXTRA,0,3,nil) end
local g=Duel.GetMatchingGroup(c40009635.cfilter,tp,LOCATION_EXTRA,0,nil) local g=Duel.GetMatchingGroup(cm.cfilter,tp,LOCATION_EXTRA,0,nil)
local rg=g:RandomSelect(tp,3) local rg=g:RandomSelect(tp,3)
Duel.Remove(rg,POS_FACEDOWN,REASON_COST) Duel.Remove(rg,POS_FACEDOWN,REASON_COST)
end end
function c40009635.settg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.settg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsSSetable() end if chk==0 then return e:GetHandler():IsSSetable() end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0)
end end
function c40009635.setop(e,tp,eg,ep,ev,re,r,rp) function cm.setop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SSet(tp,c)~=0 then if c:IsRelateToEffect(e) and Duel.SSet(tp,c)~=0 then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--兄弟会之毅 --兄弟会之毅
function c40009637.initial_effect(c) local m=40009637
local cm=_G["c"..m]
cm.named_with_Diablotherhood=1
function cm.Diablotherhood(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_Diablotherhood
end
function cm.initial_effect(c)
--Negate --Negate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(40009637,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY) e1:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetCondition(c40009637.discon) e1:SetCondition(cm.discon)
e1:SetTarget(c40009637.distg) e1:SetTarget(cm.distg)
e1:SetOperation(c40009637.disop) e1:SetOperation(cm.disop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--set --set
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCost(c40009637.setcost) e2:SetCost(cm.setcost)
e2:SetTarget(c40009637.settg) e2:SetTarget(cm.settg)
e2:SetOperation(c40009637.setop) e2:SetOperation(cm.setop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c40009637.disfilter(c) function cm.disfilter(c)
return c:IsFaceup() and c:IsSetCard(0xcf1b) and c:IsLevelAbove(5) return c:IsFaceup() and cm.Diablotherhood(c) and c:IsLevelAbove(5)
end end
function c40009637.discon(e,tp,eg,ep,ev,re,r,rp) function cm.discon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsStatus(STATUS_BATTLE_DESTROYED) then return false end if c:IsStatus(STATUS_BATTLE_DESTROYED) then return false end
return Duel.IsChainNegatable(ev) and Duel.IsExistingMatchingCard(c40009637.disfilter,tp,LOCATION_MZONE,0,2,e:GetHandler()) return Duel.IsChainNegatable(ev) and Duel.IsExistingMatchingCard(cm.disfilter,tp,LOCATION_MZONE,0,2,e:GetHandler())
end end
function c40009637.distg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end end
Duel.Hint(HINT_MESSAGE,1-tp,aux.Stringid(40009637,1)) Duel.Hint(HINT_MESSAGE,1-tp,aux.Stringid(m,1))
Duel.Hint(HINT_MESSAGE,tp,aux.Stringid(40009637,1)) Duel.Hint(HINT_MESSAGE,tp,aux.Stringid(m,1))
Duel.RegisterFlagEffect(tp,40009560,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1) Duel.RegisterFlagEffect(tp,40009560,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end end
function c40009637.disop(e,tp,eg,ep,ev,re,r,rp) function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT) Duel.Destroy(eg,REASON_EFFECT)
end end
end end
function c40009637.cfilter(c) function cm.cfilter(c)
return c:IsFacedown() and c:IsAbleToRemoveAsCost(POS_FACEDOWN) return c:IsFacedown() and c:IsAbleToRemoveAsCost(POS_FACEDOWN)
end end
function c40009637.setcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.setcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40009637.cfilter,tp,LOCATION_EXTRA,0,3,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_EXTRA,0,3,nil) end
local g=Duel.GetMatchingGroup(c40009637.cfilter,tp,LOCATION_EXTRA,0,nil) local g=Duel.GetMatchingGroup(cm.cfilter,tp,LOCATION_EXTRA,0,nil)
local rg=g:RandomSelect(tp,3) local rg=g:RandomSelect(tp,3)
Duel.Remove(rg,POS_FACEDOWN,REASON_COST) Duel.Remove(rg,POS_FACEDOWN,REASON_COST)
end end
function c40009637.settg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.settg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsSSetable() end if chk==0 then return e:GetHandler():IsSSetable() end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0)
end end
function c40009637.setop(e,tp,eg,ep,ev,re,r,rp) function cm.setop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SSet(tp,c)~=0 then if c:IsRelateToEffect(e) and Duel.SSet(tp,c)~=0 then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
...@@ -59,7 +59,7 @@ function cm.penop(e,tp,eg,ep,ev,re,r,rp) ...@@ -59,7 +59,7 @@ function cm.penop(e,tp,eg,ep,ev,re,r,rp)
e2:SetCode(EFFECT_EXTRA_PENDULUM_SUMMON) e2:SetCode(EFFECT_EXTRA_PENDULUM_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,0) e2:SetTargetRange(1,0)
e2:SetCountLimit(1,29432356) e2:SetCountLimit(1,40009754)
e2:SetValue(cm.pendvalue) e2:SetValue(cm.pendvalue)
e2:SetReset(RESET_PHASE+PHASE_END) e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
......
...@@ -21,7 +21,6 @@ function cm.initial_effect(c) ...@@ -21,7 +21,6 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+1)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END) e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e2:SetCondition(cm.atkcon) e2:SetCondition(cm.atkcon)
e2:SetCost(cm.atkcost) e2:SetCost(cm.atkcost)
...@@ -101,7 +100,7 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -101,7 +100,7 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
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:SetValue(1500) e1:SetValue(1000)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local ct=e:GetLabel() local ct=e:GetLabel()
......
...@@ -31,10 +31,10 @@ function cm.Foreigner(c) ...@@ -31,10 +31,10 @@ function cm.Foreigner(c)
end end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp) function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
local tc=re:GetHandler() local tc=re:GetHandler()
if e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER) and cm.Foreigner(tc) then if e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER+TYPE_TRAP+TYPE_SPELL) and cm.Foreigner(tc) then
e:SetLabel(1) e:SetLabel(1)
end end
return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE)) return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and (re:IsActiveType(TYPE_MONSTER+TYPE_TRAP+TYPE_SPELL) or re:IsHasType(EFFECT_TYPE_ACTIVATE))
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return cm.Foreigner(c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return cm.Foreigner(c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
...@@ -52,13 +52,13 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -52,13 +52,13 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if Duel.DiscardHand(tp,nil,1,1,REASON_EFFECT+REASON_DISCARD,nil)>0 then if Duel.DiscardHand(tp,nil,1,1,REASON_EFFECT+REASON_DISCARD,nil)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and e:GetLabel()==1 and (Duel.GetFlagEffect(tp,m)==0 or Duel.GetFlagEffect(tp,m+1)==0 or Duel.GetFlagEffect(tp,m+2)==0 or Duel.GetFlagEffect(tp,m+3)==0) then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and e:GetLabel()==1 and Duel.GetFlagEffect(tp,m)==0 then
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
Duel.BreakEffect() Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp) local sg=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end end
end end
end end
......
...@@ -27,7 +27,7 @@ function cm.initial_effect(c) ...@@ -27,7 +27,7 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m) e2:SetCountLimit(1,m)
e1:SetCost(cm.cost) e2:SetCost(cm.cost)
e2:SetTarget(cm.target) e2:SetTarget(cm.target)
e2:SetOperation(cm.operation) e2:SetOperation(cm.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
......
...@@ -60,13 +60,42 @@ function cm.atop(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,13 +60,42 @@ function cm.atop(e,tp,eg,ep,ev,re,r,rp)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false) then if tc:IsCanBeSpecialSummoned(e,0,tp,false,false) then
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE) Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEDOWN_ATTACK)
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET,0,1)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetReset(RESET_PHASE+RESETS_STANDARD-RESET_TURN_SET)
e1:SetCondition(cm.flipcon)
e1:SetOperation(cm.flipop)
e1:SetLabelObject(tc)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CANNOT_FLIP_SUMMON)
--e2:SetCondition(cm.rcon)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_CANNOT_CHANGE_POSITION)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
Duel.RegisterEffect(e3,tp)
Duel.ChainAttack() Duel.ChainAttack()
else else
Duel.MoveSequence(tc,1) Duel.MoveSequence(tc,1)
end end
end end
function cm.flipcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
return tc:IsFacedown() and Duel.GetTurnPlayer()==tc:GetControler() and tc:GetFlagEffect(m)~=0 and Duel.GetFlagEffect(tp,40010160)==0
end
function cm.flipop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
Duel.ChangePosition(tc,POS_FACEUP_ATTACK)
end
function cm.valcheck(e,c) function cm.valcheck(e,c)
local g=c:GetMaterial() local g=c:GetMaterial()
if g:IsExists(Card.IsCode,1,nil,m-2) then if g:IsExists(Card.IsCode,1,nil,m-2) then
...@@ -87,7 +116,7 @@ function cm.descon(e,tp,eg,ep,ev,re,r,rp) ...@@ -87,7 +116,7 @@ function cm.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp and e:GetHandler():GetFlagEffect(m)>0 return Duel.GetTurnPlayer()~=tp and e:GetHandler():GetFlagEffect(m)>0
end end
function cm.desfilter(c) function cm.desfilter(c)
return c:IsPosition(POS_FACEDOWN_DEFENSE) return c:IsPosition(POS_FACEDOWN_ATTACK)
end end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end if chkc then return false end
......
...@@ -13,16 +13,24 @@ function cm.initial_effect(c) ...@@ -13,16 +13,24 @@ function cm.initial_effect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_RELEASE+CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_RELEASE+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
--e1:SetCountLimit(1,m) --e1:SetCountLimit(1,m)
e1:SetCondition(cm.spcon1) e1:SetCondition(cm.spcon1)
e1:SetTarget(cm.sptg) e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop) e1:SetOperation(cm.spop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=e1:Clone() --to hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_RELEASE+CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_RELEASE) e2:SetCode(EVENT_RELEASE)
--e2:SetCountLimit(1,m)
e2:SetCondition(cm.spcon2) e2:SetCondition(cm.spcon2)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--Destroy --Destroy
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
...@@ -50,20 +58,15 @@ function cm.spfilter(c,e,tp) ...@@ -50,20 +58,15 @@ function cm.spfilter(c,e,tp)
end end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
--local loc=LOCATION_MZONE return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,e:GetHandler())
-- if Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then loc=LOCATION_MZONE end
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,e:GetHandler())
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp)
end end
Duel.SetOperationInfo(0,CATEGORY_RELEASE,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_RELEASE,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end end
function cm.spop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
-- local loc=LOCATION_MZONE
--if Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then loc=LOCATION_MZONE end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_MZONE,0,1,1,e:GetHandler()) local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,1,e:GetHandler())
if g:GetCount()>0 and Duel.Release(g,REASON_EFFECT)>0 then if g:GetCount()>0 and Duel.Release(g,REASON_EFFECT)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp) local sg=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
......
...@@ -20,14 +20,6 @@ function cm.initial_effect(c) ...@@ -20,14 +20,6 @@ function cm.initial_effect(c)
e1:SetTarget(cm.target) e1:SetTarget(cm.target)
e1:SetOperation(cm.operation) e1:SetOperation(cm.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--fusion check
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCondition(cm.matcon)
e2:SetOperation(cm.matop)
c:RegisterEffect(e2)
--special summon --special summon
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,2)) e3:SetDescription(aux.Stringid(m,2))
...@@ -42,14 +34,8 @@ function cm.initial_effect(c) ...@@ -42,14 +34,8 @@ function cm.initial_effect(c)
e3:SetOperation(cm.spop) e3:SetOperation(cm.spop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function cm.matcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_RITUAL)
end
function cm.matop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+0xd6c0000,0,1)
end
function cm.descon(e,tp,eg,ep,ev,re,r,rp) function cm.descon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(m)>0 return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end end
function cm.cfilter2(c) function cm.cfilter2(c)
return c:IsType(TYPE_MONSTER) and c:IsReleasableByEffect() return c:IsType(TYPE_MONSTER) and c:IsReleasableByEffect()
...@@ -60,7 +46,7 @@ end ...@@ -60,7 +46,7 @@ end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(Card.IsAbleToGrave,tp,0,LOCATION_ONFIELD,nil) local g=Duel.GetMatchingGroup(Card.IsAbleToGrave,tp,0,LOCATION_ONFIELD,nil)
if chk==0 then if chk==0 then
local loc=LOCATION_MZONE local loc=LOCATION_MZONE+LOCATION_HAND
return Duel.IsExistingMatchingCard(cm.cfilter2,tp,loc,0,4,nil) return Duel.IsExistingMatchingCard(cm.cfilter2,tp,loc,0,4,nil)
and g:GetCount()>0 and g:GetCount()>0
end end
...@@ -73,13 +59,13 @@ function cm.chlimit(e,ep,tp) ...@@ -73,13 +59,13 @@ function cm.chlimit(e,ep,tp)
return tp==ep return tp==ep
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local loc=LOCATION_MZONE local loc=LOCATION_MZONE+LOCATION_HAND
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g1=Duel.SelectMatchingCard(tp,cm.cfilter2,tp,loc,0,4,4,nil) local g1=Duel.SelectMatchingCard(tp,cm.cfilter2,tp,loc,0,4,4,nil)
local g2=Duel.GetMatchingGroup(Card.IsAbleToGrave,tp,0,LOCATION_MZONE,nil) local g2=Duel.GetMatchingGroup(Card.IsAbleToGrave,tp,0,LOCATION_MZONE,nil)
if g1:GetCount()>0 and Duel.Release(g1,REASON_EFFECT)>0 and g2:GetCount()>0 then if g1:GetCount()>0 and Duel.Release(g1,REASON_EFFECT)>0 and g2:GetCount()>0 then
Duel.SendtoGrave(g2,REASON_EFFECT) Duel.SendtoGrave(g2,REASON_EFFECT)
local sg=Duel.GetMatchingGroup(cm.sspfilter2,tp,LOCATION_DECK,0,nil,e,tp) local sg=Duel.GetMatchingGroup(cm.spfilter2,tp,LOCATION_DECK,0,nil,e,tp)
if sg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then if sg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.BreakEffect() Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
......
...@@ -14,7 +14,7 @@ function cm.initial_effect(c) ...@@ -14,7 +14,7 @@ function cm.initial_effect(c)
e2:SetDescription(aux.Stringid(m,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCondition(cm.discon) --e2:SetCondition(cm.discon)
e2:SetTarget(cm.thtg) e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop) e2:SetOperation(cm.thop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
......
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