Commit 046f7d02 authored by salix5's avatar salix5

original card name

parent 1008ab21
...@@ -12,8 +12,7 @@ function c40854824.initial_effect(c) ...@@ -12,8 +12,7 @@ function c40854824.initial_effect(c)
Duel.AddCustomActivityCounter(40854824,ACTIVITY_CHAIN,c40854824.chainfilter) Duel.AddCustomActivityCounter(40854824,ACTIVITY_CHAIN,c40854824.chainfilter)
end end
function c40854824.chainfilter(re,tp,cid) function c40854824.chainfilter(re,tp,cid)
local code1,code2=re:GetHandler():GetOriginalCodeRule() return not (re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsOriginalCodeRule(79407975,79856792))
return not (re:IsActiveType(TYPE_MONSTER) and (code1==79407975 or code1==79856792 or code2==79407975 or code2==79856792))
end end
function c40854824.condition(e,tp,eg,ep,ev,re,r,rp) function c40854824.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCustomActivityCount(40854824,tp,ACTIVITY_CHAIN)~=0 return Duel.GetCustomActivityCount(40854824,tp,ACTIVITY_CHAIN)~=0
......
...@@ -61,26 +61,29 @@ function c42925441.effcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -61,26 +61,29 @@ function c42925441.effcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetFlagEffect(42925441)==0 end if chk==0 then return e:GetHandler():GetFlagEffect(42925441)==0 end
e:GetHandler():RegisterFlagEffect(42925441,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(42925441,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end end
--option 1
function c42925441.costfilter1(c,e,tp) function c42925441.costfilter1(c,e,tp)
return c:IsFaceup() and c:IsSetCard(0x55,0x7b) and Duel.GetMZoneCount(tp,c)>0 and c:IsAbleToGraveAsCost() return c:IsFaceup() and c:IsSetCard(0x55,0x7b) and Duel.GetMZoneCount(tp,c)>0 and c:IsAbleToGraveAsCost()
and Duel.IsExistingMatchingCard(c42925441.spfilter1,tp,LOCATION_DECK,0,1,nil,e,tp,c:GetOriginalCode()) and Duel.IsExistingMatchingCard(c42925441.spfilter1,tp,LOCATION_DECK,0,1,nil,e,tp,c)
end end
function c42925441.spfilter1(c,e,tp,code) function c42925441.spfilter1(c,e,tp,cc)
return c:IsSetCard(0x55) and c:GetOriginalCode()~=code and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x55) and c:IsType(TYPE_MONSTER) and not c:IsOriginalCodeRule(cc:GetOriginalCodeRule())
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
--option 2
function c42925441.costfilter2(c) function c42925441.costfilter2(c)
return c:IsFaceup() and c:IsSetCard(0x55,0x7b) and c:IsAbleToGraveAsCost() return c:IsFaceup() and c:IsSetCard(0x55,0x7b) and c:IsAbleToGraveAsCost()
end end
function c42925441.thfilter(c) function c42925441.thfilter(c)
return c:IsSetCard(0x55) and not c:IsCode(42925441) and c:IsAbleToHand() return c:IsSetCard(0x55) and not c:IsCode(42925441) and c:IsAbleToHand()
end end
--option both
function c42925441.costfilter3(c,e,tp) function c42925441.costfilter3(c,e,tp)
return c:IsFaceup() and c:IsCode(93717133) and Duel.GetMZoneCount(tp,c)>0 and c:IsAbleToGraveAsCost() return c:IsFaceup() and c:IsCode(93717133) and Duel.GetMZoneCount(tp,c)>0 and c:IsAbleToGraveAsCost()
and Duel.IsExistingMatchingCard(c42925441.spfilter2,tp,LOCATION_DECK,0,1,nil,e,tp,c:GetOriginalCode()) and Duel.IsExistingMatchingCard(c42925441.spfilter2,tp,LOCATION_DECK,0,1,nil,e,tp,c)
end end
function c42925441.spfilter2(c,e,tp,code) function c42925441.spfilter2(c,e,tp,cc)
return c:IsSetCard(0x55) and c:GetOriginalCode()~=code and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c42925441.spfilter1(c,e,tp,cc) and Duel.IsExistingMatchingCard(c42925441.thfilter,tp,LOCATION_DECK,0,1,c)
and Duel.IsExistingMatchingCard(c42925441.thfilter,tp,LOCATION_DECK,0,1,c)
end end
function c42925441.efftg(e,tp,eg,ep,ev,re,r,rp,chk) function c42925441.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(c42925441.costfilter1,tp,LOCATION_MZONE,0,1,nil,e,tp) local b1=Duel.IsExistingMatchingCard(c42925441.costfilter1,tp,LOCATION_MZONE,0,1,nil,e,tp)
...@@ -102,7 +105,7 @@ function c42925441.efftg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -102,7 +105,7 @@ function c42925441.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
if op==0 then if op==0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c42925441.costfilter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c42925441.costfilter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
e:SetValue(g:GetFirst():GetOriginalCode()) e:SetLabelObject(g:GetFirst())
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
e:SetCategory(CATEGORY_SPECIAL_SUMMON) e:SetCategory(CATEGORY_SPECIAL_SUMMON)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
...@@ -115,7 +118,7 @@ function c42925441.efftg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -115,7 +118,7 @@ function c42925441.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
else else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c42925441.costfilter3,tp,LOCATION_MZONE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c42925441.costfilter3,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
e:SetValue(g:GetFirst():GetOriginalCode()) e:SetLabelObject(g:GetFirst())
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
e:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOHAND+CATEGORY_SEARCH) e:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOHAND+CATEGORY_SEARCH)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
...@@ -124,10 +127,11 @@ function c42925441.efftg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -124,10 +127,11 @@ function c42925441.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c42925441.effop(e,tp,eg,ep,ev,re,r,rp) function c42925441.effop(e,tp,eg,ep,ev,re,r,rp)
local op=e:GetLabel() local op=e:GetLabel()
local cc=e:GetLabelObject()
if op==0 then if op==0 then
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,c42925441.spfilter1,tp,LOCATION_DECK,0,1,1,nil,e,tp,e:GetValue()) local g=Duel.SelectMatchingCard(tp,c42925441.spfilter1,tp,LOCATION_DECK,0,1,1,nil,e,tp,cc)
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
...@@ -141,7 +145,7 @@ function c42925441.effop(e,tp,eg,ep,ev,re,r,rp) ...@@ -141,7 +145,7 @@ function c42925441.effop(e,tp,eg,ep,ev,re,r,rp)
else else
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 g1=Duel.SelectMatchingCard(tp,c42925441.spfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp,e:GetValue()) local g1=Duel.SelectMatchingCard(tp,c42925441.spfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp,cc)
if g1:GetCount()>0 and Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)~=0 then if g1:GetCount()>0 and Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=Duel.SelectMatchingCard(tp,c42925441.thfilter,tp,LOCATION_DECK,0,1,1,nil) local g2=Duel.SelectMatchingCard(tp,c42925441.thfilter,tp,LOCATION_DECK,0,1,1,nil)
......
...@@ -57,13 +57,12 @@ function c43228023.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,13 +57,12 @@ function c43228023.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e) local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
Duel.Destroy(g,REASON_EFFECT) Duel.Destroy(g,REASON_EFFECT)
end end
function c43228023.spfilter(c,code) function c43228023.spfilter(c)
local code1,code2=c:GetOriginalCodeRule() return c:IsOriginalCodeRule(38517737)
return code1==code or code2==code
end end
function c43228023.valcheck(e,c) function c43228023.valcheck(e,c)
local g=c:GetMaterial() local g=c:GetMaterial()
if g:IsExists(c43228023.spfilter,1,nil,38517737) then if g:IsExists(c43228023.spfilter,1,nil) then
e:GetLabelObject():SetLabel(1) e:GetLabelObject():SetLabel(1)
else else
e:GetLabelObject():SetLabel(0) e:GetLabelObject():SetLabel(0)
......
...@@ -57,19 +57,19 @@ function c43387895.copyop(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,19 +57,19 @@ function c43387895.copyop(e,tp,eg,ep,ev,re,r,rp)
c:RegisterEffect(e1) c:RegisterEffect(e1)
if not tc:IsType(TYPE_TRAPMONSTER) then if not tc:IsType(TYPE_TRAPMONSTER) then
local cid=c:CopyEffect(code,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,1) local cid=c:CopyEffect(code,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,1)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(43387895,1))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCountLimit(1)
e3:SetRange(LOCATION_MZONE)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e3:SetLabelObject(e1)
e3:SetLabel(cid)
e3:SetOperation(c43387895.rstop)
c:RegisterEffect(e3)
end end
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(43387895,1))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCountLimit(1)
e3:SetRange(LOCATION_MZONE)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e3:SetLabelObject(e1)
e3:SetLabel(cid)
e3:SetOperation(c43387895.rstop)
c:RegisterEffect(e3)
end end
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
......
...@@ -26,7 +26,8 @@ function c50669347.desfilter(c,e,tp,g) ...@@ -26,7 +26,8 @@ function c50669347.desfilter(c,e,tp,g)
and Duel.IsExistingMatchingCard(c50669347.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp,c) and Duel.IsExistingMatchingCard(c50669347.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp,c)
end end
function c50669347.spfilter(c,e,tp,dc) function c50669347.spfilter(c,e,tp,dc)
return c:IsSetCard(0x11f) and c:GetOriginalCode()~=dc:GetOriginalCode() and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x11f) and c:IsType(TYPE_MONSTER) and not c:IsOriginalCodeRule(dc:GetOriginalCodeRule())
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c50669347.target(e,tp,eg,ep,ev,re,r,rp,chk) function c50669347.target(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(c50669347.thfilter1,tp,LOCATION_DECK,0,1,nil) local b1=Duel.IsExistingMatchingCard(c50669347.thfilter1,tp,LOCATION_DECK,0,1,nil)
......
...@@ -21,11 +21,12 @@ function c55312487.initial_effect(c) ...@@ -21,11 +21,12 @@ function c55312487.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c55312487.spfilter1(c,e,tp) function c55312487.spfilter1(c,e,tp)
return c:IsSetCard(0xfe,0x116) and Duel.GetMZoneCount(tp,c)>0 return c:IsSetCard(0xfe,0x116) and c:IsType(TYPE_MONSTER) and Duel.GetMZoneCount(tp,c)>0
and Duel.IsExistingMatchingCard(c55312487.spfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp,c:GetOriginalCode()) and Duel.IsExistingMatchingCard(c55312487.spfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp,c)
end end
function c55312487.spfilter2(c,e,tp,code) function c55312487.spfilter2(c,e,tp,rc)
return c:IsSetCard(0xfe,0x116) and c:GetOriginalCode()~=code and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0xfe,0x116) and c:IsType(TYPE_MONSTER) and not c:IsOriginalCodeRule(rc:GetOriginalCodeRule())
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c55312487.target(e,tp,eg,ep,ev,re,r,rp,chk) function c55312487.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
...@@ -34,7 +35,7 @@ function c55312487.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -34,7 +35,7 @@ function c55312487.target(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetCategory(CATEGORY_SPECIAL_SUMMON) e:SetCategory(CATEGORY_SPECIAL_SUMMON)
e:SetOperation(c55312487.activate) e:SetOperation(c55312487.activate)
local rg=Duel.SelectReleaseGroup(tp,c55312487.spfilter1,1,1,nil,e,tp) local rg=Duel.SelectReleaseGroup(tp,c55312487.spfilter1,1,1,nil,e,tp)
e:SetLabel(rg:GetFirst():GetOriginalCode()) e:SetLabelObject(rg:GetFirst())
Duel.Release(rg,REASON_COST) Duel.Release(rg,REASON_COST)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
else else
...@@ -45,9 +46,9 @@ end ...@@ -45,9 +46,9 @@ end
function c55312487.activate(e,tp,eg,ep,ev,re,r,rp) function c55312487.activate(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end if not e:GetHandler():IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local code=e:GetLabel() local rc=e:GetLabelObject()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c55312487.spfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp,code) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c55312487.spfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp,rc)
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
......
...@@ -13,10 +13,11 @@ function c58421530.initial_effect(c) ...@@ -13,10 +13,11 @@ function c58421530.initial_effect(c)
end end
function c58421530.desfilter1(c,e,tp) function c58421530.desfilter1(c,e,tp)
return c:IsFaceup() and Duel.GetMZoneCount(tp,c)>0 return c:IsFaceup() and Duel.GetMZoneCount(tp,c)>0
and Duel.IsExistingMatchingCard(c58421530.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp,c:GetOriginalCode()) and Duel.IsExistingMatchingCard(c58421530.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp,c)
end end
function c58421530.spfilter(c,e,tp,code) function c58421530.spfilter(c,e,tp,tc)
return c:IsSetCard(0x102) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:GetOriginalCode()~=code return c:IsSetCard(0x102) and not c:IsOriginalCodeRule(tc:GetOriginalCodeRule())
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c58421530.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c58421530.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c58421530.desfilter1(chkc,e,tp) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c58421530.desfilter1(chkc,e,tp) end
...@@ -30,7 +31,7 @@ function c58421530.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -30,7 +31,7 @@ function c58421530.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) and Duel.Destroy(tc,REASON_EFFECT)~=0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then if tc and tc:IsRelateToEffect(e) and Duel.Destroy(tc,REASON_EFFECT)~=0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c58421530.spfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp,tc:GetOriginalCode()) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c58421530.spfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp,tc)
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
......
...@@ -45,14 +45,14 @@ function c65172015.initial_effect(c) ...@@ -45,14 +45,14 @@ function c65172015.initial_effect(c)
c:RegisterEffect(e4) c:RegisterEffect(e4)
end end
function c65172015.matfilter(c) function c65172015.matfilter(c)
return (c:GetOriginalCode()==1561110 or c:GetOriginalCode()==91998119) and c:IsAbleToRemoveAsCost() return c:IsOriginalCodeRule(1561110,91998119) and c:IsAbleToRemoveAsCost()
end end
function c65172015.cfilter1(c,tp,g) function c65172015.cfilter1(c,tp,g)
return g:IsExists(c65172015.cfilter2,1,c,tp,c) return g:IsExists(c65172015.cfilter2,1,c,tp,c)
end end
function c65172015.cfilter2(c,tp,mc) function c65172015.cfilter2(c,tp,mc)
return (c:GetOriginalCode()==1561110 and mc:GetOriginalCode()==91998119 return (c:IsOriginalCodeRule(1561110) and mc:IsOriginalCodeRule(91998119)
or c:GetOriginalCode()==91998119 and mc:GetOriginalCode()==1561110) or c:IsOriginalCodeRule(91998119) and mc:IsOriginalCodeRule(1561110))
and Duel.GetLocationCountFromEx(tp,tp,Group.FromCards(c,mc))>0 and Duel.GetLocationCountFromEx(tp,tp,Group.FromCards(c,mc))>0
end end
function c65172015.spcon(e,c) function c65172015.spcon(e,c)
......
...@@ -30,16 +30,17 @@ function c65664792.spfilter(c,e,tp) ...@@ -30,16 +30,17 @@ function c65664792.spfilter(c,e,tp)
end end
function c65664792.spfilter1(c,e,tp) function c65664792.spfilter1(c,e,tp)
return c65664792.spfilter(c,e,tp) return c65664792.spfilter(c,e,tp)
and Duel.IsExistingMatchingCard(c65664792.spfilter2,tp,LOCATION_DECK,0,1,nil,e,tp,c:GetOriginalCode()) and Duel.IsExistingMatchingCard(c65664792.spfilter2,tp,LOCATION_DECK,0,1,nil,e,tp,c)
end end
function c65664792.spfilter2(c,e,tp,code1) function c65664792.spfilter2(c,e,tp,c1)
return c65664792.spfilter(c,e,tp) return c65664792.spfilter(c,e,tp)
and c:GetOriginalCode()~=code1 and not c:IsOriginalCodeRule(c1:GetOriginalCodeRule())
and Duel.IsExistingMatchingCard(c65664792.spfilter3,tp,LOCATION_GRAVE,0,1,nil,e,tp,code1,c:GetOriginalCode()) and Duel.IsExistingMatchingCard(c65664792.spfilter3,tp,LOCATION_GRAVE,0,1,nil,e,tp,c1,c2)
end end
function c65664792.spfilter3(c,e,tp,code1,code2) function c65664792.spfilter3(c,e,tp,c1,c2)
return c65664792.spfilter(c,e,tp) return c65664792.spfilter(c,e,tp)
and c:GetOriginalCode()~=code1 and c:GetOriginalCode()~=code2 and not c:IsOriginalCodeRule(c1:GetOriginalCodeRule())
and not c:IsOriginalCodeRule(c2:GetOriginalCodeRule())
end end
function c65664792.target(e,tp,eg,ep,ev,re,r,rp,chk) function c65664792.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65664792.tdfilter,tp,LOCATION_ONFIELD,0,1,nil,e,tp) end if chk==0 then return Duel.IsExistingMatchingCard(c65664792.tdfilter,tp,LOCATION_ONFIELD,0,1,nil,e,tp) end
...@@ -54,8 +55,8 @@ function c65664792.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,8 +55,8 @@ function c65664792.activate(e,tp,eg,ep,ev,re,r,rp)
and Duel.IsExistingMatchingCard(c65664792.spfilter1,tp,LOCATION_HAND,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c65664792.spfilter1,tp,LOCATION_HAND,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,aux.Stringid(65664792,2)) then and Duel.SelectYesNo(tp,aux.Stringid(65664792,2)) then
local sg1=Duel.SelectMatchingCard(tp,c65664792.spfilter1,tp,LOCATION_HAND,0,1,1,nil,e,tp) local sg1=Duel.SelectMatchingCard(tp,c65664792.spfilter1,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local sg2=Duel.SelectMatchingCard(tp,c65664792.spfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp,sg1:GetFirst():GetOriginalCode()) local sg2=Duel.SelectMatchingCard(tp,c65664792.spfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp,sg1:GetFirst())
local sg3=Duel.SelectMatchingCard(tp,c65664792.spfilter3,tp,LOCATION_GRAVE,0,1,1,nil,e,tp,sg1:GetFirst():GetOriginalCode(),sg2:GetFirst():GetOriginalCode()) local sg3=Duel.SelectMatchingCard(tp,c65664792.spfilter3,tp,LOCATION_GRAVE,0,1,1,nil,e,tp,sg1:GetFirst(),sg2:GetFirst())
sg1:Merge(sg2) sg1:Merge(sg2)
sg1:Merge(sg3) sg1:Merge(sg3)
Duel.BreakEffect() Duel.BreakEffect()
......
...@@ -12,8 +12,7 @@ function c75190122.initial_effect(c) ...@@ -12,8 +12,7 @@ function c75190122.initial_effect(c)
end end
c75190122.card_code_list={46986414,38033121} c75190122.card_code_list={46986414,38033121}
function c75190122.cfilter(c,code) function c75190122.cfilter(c,code)
local code1,code2=c:GetOriginalCodeRule() return c:IsFaceup() and c:IsOriginalCodeRule(code)
return c:IsFaceup() and (code1==code or code2==code)
end end
function c75190122.condition(e,tp,eg,ep,ev,re,r,rp) function c75190122.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c75190122.cfilter,tp,LOCATION_MZONE,0,1,nil,46986414) return Duel.IsExistingMatchingCard(c75190122.cfilter,tp,LOCATION_MZONE,0,1,nil,46986414)
......
...@@ -10,8 +10,7 @@ function c92881099.initial_effect(c) ...@@ -10,8 +10,7 @@ function c92881099.initial_effect(c)
e2:SetDescription(aux.Stringid(92881099,0)) e2:SetDescription(aux.Stringid(92881099,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e2:SetCode(EVENT_BATTLE_DESTROYED)
e2:SetCode(EVENT_DESTROYED)
e2:SetRange(LOCATION_SZONE) e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(1,92881099) e2:SetCountLimit(1,92881099)
e2:SetCondition(c92881099.spcon) e2:SetCondition(c92881099.spcon)
...@@ -32,28 +31,33 @@ function c92881099.initial_effect(c) ...@@ -32,28 +31,33 @@ function c92881099.initial_effect(c)
end end
c92881099.card_code_list={12206212} c92881099.card_code_list={12206212}
function c92881099.cfilter(c,tp) function c92881099.cfilter(c,tp)
return c:IsReason(REASON_BATTLE) and (c:GetPreviousCodeOnField()==76812113 or c:GetPreviousCodeOnField()==12206212) return (c:GetPreviousCodeOnField()==76812113 or c:GetPreviousCodeOnField()==12206212)
and c:GetPreviousControler()==tp and c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousPosition(POS_FACEUP) and c:GetPreviousControler()==tp and c:IsPreviousLocation(LOCATION_MZONE)
end end
function c92881099.spcon(e,tp,eg,ep,ev,re,r,rp) function c92881099.spcon(e,tp,eg,ep,ev,re,r,rp)
if eg:IsExists(c92881099.cfilter,1,nil,tp) then return eg:FilterCount(c92881099.cfilter,nil,tp)>0
local tc=eg:GetFirst()
e:SetLabel(tc:GetOriginalCode())
return Duel.IsExistingMatchingCard(c92881099.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp,tc:GetOriginalCode())
end
end end
function c92881099.spfilter(c,e,tp,code) function c92881099.spfilter(c,e,tp,g)
return c:IsSetCard(0x64) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:GetOriginalCode()~=code local diff=true
for tc in aux.Next(g) do
if c:IsOriginalCodeRule(tc:GetOriginalCodeRule()) then
diff=false
break
end
end
return diff and c:IsSetCard(0x64) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c92881099.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c92881099.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local g0=eg:Filter(c92881099.cfilter,nil,tp)
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(c92881099.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp,e:GetLabel()) end and Duel.IsExistingMatchingCard(c92881099.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp,g0) 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 c92881099.spop(e,tp,eg,ep,ev,re,r,rp) function c92881099.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 or not e:GetHandler():IsRelateToEffect(e) then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 or not e:GetHandler():IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c92881099.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,e:GetLabel()) local g0=eg:Filter(c92881099.cfilter,nil,tp)
local g=Duel.SelectMatchingCard(tp,c92881099.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,g0)
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
......
...@@ -20,8 +20,8 @@ function c96380700.matfilter(c) ...@@ -20,8 +20,8 @@ function c96380700.matfilter(c)
return c:IsLevelBelow(2) and c:IsLinkRace(RACE_CYBERSE) return c:IsLevelBelow(2) and c:IsLinkRace(RACE_CYBERSE)
end end
function c96380700.cfilter(c,e,tp,zone) function c96380700.cfilter(c,e,tp,zone)
return c:IsRace(RACE_CYBERSE) and Duel.GetMZoneCount(tp,c,tp,LOCATION_REASON_TOFIELD,zone)>0 return c:IsRace(RACE_CYBERSE) and c:IsType(TYPE_MONSTER) and Duel.GetMZoneCount(tp,c,tp,LOCATION_REASON_TOFIELD,zone)>0
and Duel.IsExistingTarget(c96380700.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp,c:GetOriginalCode()) and Duel.IsExistingTarget(c96380700.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp,c)
end end
function c96380700.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c96380700.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -31,16 +31,17 @@ function c96380700.spcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -31,16 +31,17 @@ function c96380700.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.Release(g,REASON_COST) Duel.Release(g,REASON_COST)
e:SetLabelObject(g:GetFirst()) e:SetLabelObject(g:GetFirst())
end end
function c96380700.spfilter(c,e,tp,code) function c96380700.spfilter(c,e,tp,rc)
return c:IsSetCard(0x101) and c:GetOriginalCode()~=code and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x101) and c:IsType(TYPE_MONSTER) and not c:IsOriginalCodeRule(rc:GetOriginalCodeRule())
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c96380700.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c96380700.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local cc=e:GetLabelObject() local cc=e:GetLabelObject()
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp)
and chkc~=cc and c96380700.spfilter(chkc,e,tp,cc:GetOriginalCode()) end and c96380700.spfilter(chkc,e,tp,cc) end
if chk==0 then return true end if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c96380700.spfilter,tp,LOCATION_GRAVE,0,1,1,cc,e,tp,cc:GetOriginalCode()) local g=Duel.SelectTarget(tp,c96380700.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp,cc)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end end
function c96380700.spop(e,tp,eg,ep,ev,re,r,rp) function c96380700.spop(e,tp,eg,ep,ev,re,r,rp)
......
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