Commit 366e8449 authored by mercury233's avatar mercury233

update scripts

parent 7f7e6fcf
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100257001.initial_effect(c) function c100257001.initial_effect(c)
--link summon
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddLinkProcedure(c,nil,5,5) aux.AddLinkProcedure(c,nil,5,5)
--spsummon condition --spsummon condition
...@@ -9,7 +10,7 @@ function c100257001.initial_effect(c) ...@@ -9,7 +10,7 @@ function c100257001.initial_effect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(aux.lnklimit) e1:SetValue(aux.linklimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--mat check --mat check
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -24,10 +25,10 @@ function c100257001.initial_effect(c) ...@@ -24,10 +25,10 @@ function c100257001.initial_effect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_SPSUMMON_SUCCESS) e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetProperty(EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetLabelObject(e2)
e3:SetCondition(c100257001.descon) e3:SetCondition(c100257001.descon)
e3:SetTarget(c100257001.destg) e3:SetTarget(c100257001.destg)
e3:SetOperation(c100257001.desop) e3:SetOperation(c100257001.desop)
e3:SetLabelObject(e2)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--immume --immume
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
...@@ -55,12 +56,6 @@ function c100257001.initial_effect(c) ...@@ -55,12 +56,6 @@ function c100257001.initial_effect(c)
e6:SetOperation(c100257001.rmop) e6:SetOperation(c100257001.rmop)
c:RegisterEffect(e6) c:RegisterEffect(e6)
end end
function c100257001.efilter(e,te)
return te:GetOwner()~=e:GetOwner()
end
function c100257001.indes(e,c)
return c:IsAttribute(ATTRIBUTE_DARK+ATTRIBUTE_EARTH+ATTRIBUTE_WATER+ATTRIBUTE_FIRE+ATTRIBUTE_WIND)
end
function c100257001.matcheck(e,c) function c100257001.matcheck(e,c)
local g=c:GetMaterial() local g=c:GetMaterial()
local att=0 local att=0
...@@ -86,6 +81,12 @@ function c100257001.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -86,6 +81,12 @@ function c100257001.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil) local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil)
Duel.Destroy(g,REASON_EFFECT) Duel.Destroy(g,REASON_EFFECT)
end end
function c100257001.efilter(e,te)
return te:GetOwner()~=e:GetOwner()
end
function c100257001.indes(e,c)
return c:IsAttribute(ATTRIBUTE_DARK+ATTRIBUTE_EARTH+ATTRIBUTE_WATER+ATTRIBUTE_FIRE+ATTRIBUTE_WIND)
end
function c100257001.rmcon(e,tp,eg,ep,ev,re,r,rp) function c100257001.rmcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp return Duel.GetTurnPlayer()==1-tp
end end
...@@ -96,19 +97,15 @@ function c100257001.rmtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -96,19 +97,15 @@ function c100257001.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c100257001.rmop(e,tp,eg,ep,ev,re,r,rp) function c100257001.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local res=true local res=false
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,LOCATION_GRAVE,0,nil) local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,LOCATION_GRAVE,0,nil)
if g:GetCount()>=5 then if g:GetCount()>=5 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_GRAVE,0,5,5,nil) local sg=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_GRAVE,0,5,5,nil)
Duel.Remove(sg,POS_FACEDOWN,REASON_EFFECT) Duel.Remove(sg,POS_FACEDOWN,REASON_EFFECT)
local tc=sg:GetFirst() if Duel.GetOperatedGroup():FilterCount(Card.IsLocation,nil,LOCATION_REMOVED)==5 then res=true end
while tc do
res=res and tc:IsLocation(LOCATION_REMOVED)
tc=sg:GetNext()
end end
else res=false end if not res and c:IsRelateToEffect(e) then
if res==false and c:IsRelateToEffect(e) then
Duel.SendtoGrave(c,REASON_EFFECT) Duel.SendtoGrave(c,REASON_EFFECT)
end end
end end
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100257006.initial_effect(c) function c100257006.initial_effect(c)
--link summon
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddLinkProcedure(c,nil,2,2) aux.AddLinkProcedure(c,nil,2,2)
--to grave --to grave
...@@ -36,20 +37,19 @@ end ...@@ -36,20 +37,19 @@ end
function c100257006.tgfilter(c) function c100257006.tgfilter(c)
return c:IsSetCard(0xd6) and c:IsAbleToGrave() return c:IsSetCard(0xd6) and c:IsAbleToGrave()
end end
function c100257006.spfilter(c,e,tp)
return c:IsSetCard(0xd7) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100257006.tgtg(e,tp,eg,ep,ev,re,r,rp,chk) function c100257006.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c100257006.tgfilter,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c100257006.tgfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end end
function c100257006.spfilter(c,e,tp)
return c:IsSetCard(0xd7) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100257006.tgop(e,tp,eg,ep,ev,re,r,rp) function c100257006.tgop(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,c100257006.tgfilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c100257006.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst() if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT)~=0 and g:GetFirst():IsLocation(LOCATION_GRAVE)
if tc and Duel.SendtoGrave(tc,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_GRAVE) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(c100257006.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp)
and Duel.IsExistingMatchingCard(c100257006.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,aux.Stringid(100257006,2)) then and Duel.SelectYesNo(tp,aux.Stringid(100257006,2)) then
Duel.BreakEffect() Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
...@@ -66,7 +66,7 @@ end ...@@ -66,7 +66,7 @@ end
function c100257006.damtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100257006.damtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c100257006.damfilter(chkc) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c100257006.damfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c100257006.damfilter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingTarget(c100257006.damfilter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELF) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectTarget(tp,c100257006.damfilter,tp,LOCATION_MZONE,0,1,1,nil) local g=Duel.SelectTarget(tp,c100257006.damfilter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,g:GetFirst():GetAttack()) Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,g:GetFirst():GetAttack())
end end
......
...@@ -29,7 +29,7 @@ function c100257011.lcheck(g,lc) ...@@ -29,7 +29,7 @@ function c100257011.lcheck(g,lc)
end end
function c100257011.lmlimit(e) function c100257011.lmlimit(e)
local c=e:GetHandler() local c=e:GetHandler()
return c:IsSummonType(SUMMON_TYPE_LINK) and c:GetTurnID()==Duel.GetTurnCount() return c:IsStatus(STATUS_SPSUMMON_TURN) and c:IsSummonType(SUMMON_TYPE_LINK)
end end
function c100257011.cfilter(c,tp) function c100257011.cfilter(c,tp)
return c:IsFaceup() return c:IsFaceup()
...@@ -51,16 +51,11 @@ function c100257011.eqop(e,tp,eg,ep,ev,re,r,rp) ...@@ -51,16 +51,11 @@ function c100257011.eqop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
if tc:IsRelateToEffect(e) and tc:IsFaceup() then if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local flag=0
local att=tc:GetOriginalAttribute()
local race=tc:GetOriginalRace()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectMatchingCard(tp,c100257011.eqfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,att,race,tp) local g=Duel.SelectMatchingCard(tp,c100257011.eqfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,tc:GetOriginalAttribute(),tc:GetOriginalRace(),tp)
local gc=g:GetFirst() local sc=g:GetFirst()
if gc:IsLocation(LOCATION_DECK) then local res=sc:IsLocation(LOCATION_DECK) and true or false
flag=1 if not Duel.Equip(tp,sc,tc) then return end
end
if not Duel.Equip(tp,gc,tc) then return end
--equip limit --equip limit
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -69,21 +64,21 @@ function c100257011.eqop(e,tp,eg,ep,ev,re,r,rp) ...@@ -69,21 +64,21 @@ function c100257011.eqop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetLabelObject(tc) e1:SetLabelObject(tc)
e1:SetValue(c100257011.eqlimit) e1:SetValue(c100257011.eqlimit)
gc:RegisterEffect(e1) sc:RegisterEffect(e1)
--atk up --atk up
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP) e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_UPDATE_ATTACK) e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetValue(1000) e2:SetValue(1000)
e2:SetReset(RESET_EVENT+RESETS_STANDARD) e2:SetReset(RESET_EVENT+RESETS_STANDARD)
gc:RegisterEffect(e2) sc:RegisterEffect(e2)
if flag==1 then if res then
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e3:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e3:SetTargetRange(1,0) e3:SetTargetRange(1,0)
e3:SetLabel(gc:GetCode()) e3:SetLabel(sc:GetCode())
e3:SetTarget(c100257011.splimit) e3:SetTarget(c100257011.splimit)
e3:SetReset(RESET_PHASE+PHASE_END) e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp) Duel.RegisterEffect(e3,tp)
......
...@@ -74,7 +74,7 @@ function c100257021.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -74,7 +74,7 @@ function c100257021.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.GetMatchingGroup(aux.NecroValleyFilter(c100257021.thfilter),tp,LOCATION_GRAVE,0,nil) local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c100257021.thfilter),tp,LOCATION_GRAVE,0,nil)
local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,2) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,2)
if sg then if sg and sg:GetCount()>0 then
Duel.SendtoHand(sg,nil,REASON_EFFECT) Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
end end
......
...@@ -71,19 +71,17 @@ function c100257026.desrepop(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,19 +71,17 @@ function c100257026.desrepop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(tc,REASON_EFFECT+REASON_REPLACE) Duel.Destroy(tc,REASON_EFFECT+REASON_REPLACE)
end end
function c100257026.spfilter(c,e,tp,lv) function c100257026.spfilter(c,e,tp,lv)
return c:IsRace(RACE_WINDBEAST) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsLevelBelow(lv) return c:IsRace(RACE_WINDBEAST) and c:IsLevelBelow(lv) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c100257026.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c100257026.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=Duel.GetLocationCount(tp,LOCATION_SZONE) local ct=Duel.GetLocationCount(tp,LOCATION_SZONE,PLAYER_NONE,0)+Duel.GetLocationCount(1-tp,LOCATION_SZONE,PLAYER_NONE,0)
ct=ct+Duel.GetLocationCount(1-tp,LOCATION_SZONE)
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(c100257026.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp,ct) end and Duel.IsExistingMatchingCard(c100257026.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp,ct) 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 c100257026.spop(e,tp,eg,ep,ev,re,r,rp) function c100257026.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
local ct=Duel.GetLocationCount(tp,LOCATION_SZONE) local ct=Duel.GetLocationCount(tp,LOCATION_SZONE,PLAYER_NONE,0)+Duel.GetLocationCount(1-tp,LOCATION_SZONE,PLAYER_NONE,0)
ct=ct+Duel.GetLocationCount(1-tp,LOCATION_SZONE)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c100257026.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp,ct) local g=Duel.SelectMatchingCard(tp,c100257026.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp,ct)
if g:GetCount()>0 then if g:GetCount()>0 then
......
...@@ -32,12 +32,6 @@ function c100257031.initial_effect(c) ...@@ -32,12 +32,6 @@ function c100257031.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
Duel.AddCustomActivityCounter(100257031,ACTIVITY_SPSUMMON,c100257031.counterfilter) Duel.AddCustomActivityCounter(100257031,ACTIVITY_SPSUMMON,c100257031.counterfilter)
end end
function c100257031.atktg(e,c)
return e:GetHandler():GetLinkedGroup():IsContains(c) and c:IsRace(RACE_FIEND)
end
function c100257031.atkval(e,c)
return c:GetLevel()*100
end
function c100257031.counterfilter(c) function c100257031.counterfilter(c)
return c:IsSetCard(0x8) return c:IsSetCard(0x8)
end end
...@@ -60,10 +54,10 @@ function c100257031.splimit(e,c) ...@@ -60,10 +54,10 @@ function c100257031.splimit(e,c)
end end
function c100257031.ffilter(c,tp) function c100257031.ffilter(c,tp)
return c:IsType(TYPE_FUSION) and c:IsSetCard(0x8) return c:IsType(TYPE_FUSION) and c:IsSetCard(0x8)
and c.material and Duel.IsExistingMatchingCard(c100257031.thfilter,tp,LOCATION_DECK,0,1,nil,c) and Duel.IsExistingMatchingCard(c100257031.thfilter,tp,LOCATION_DECK,0,1,nil,c)
end end
function c100257031.thfilter(c,fc) function c100257031.thfilter(c,fc)
return c:IsCode(table.unpack(fc.material)) and c:IsAbleToHand() and c:IsType(TYPE_MONSTER) return aux.IsMaterialListCode(fc,c:GetCode()) and c:IsAbleToHand() and c:IsType(TYPE_MONSTER)
end end
function c100257031.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c100257031.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c100257031.ffilter,tp,LOCATION_EXTRA,0,1,nil,tp) end if chk==0 then return Duel.IsExistingMatchingCard(c100257031.ffilter,tp,LOCATION_EXTRA,0,1,nil,tp) end
...@@ -71,15 +65,21 @@ function c100257031.thtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -71,15 +65,21 @@ function c100257031.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c100257031.thop(e,tp,eg,ep,ev,re,r,rp) function c100257031.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local rc=Duel.SelectMatchingCard(tp,c100257031.ffilter,tp,LOCATION_EXTRA,0,1,1,nil,tp):GetFirst() local tc=Duel.SelectMatchingCard(tp,c100257031.ffilter,tp,LOCATION_EXTRA,0,1,1,nil,tp):GetFirst()
if rc then if tc then
Duel.ConfirmCards(1-tp,rc) Duel.ConfirmCards(1-tp,tc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.GetMatchingGroup(c100257031.thfilter,tp,LOCATION_DECK,0,nil,rc) local g=Duel.GetMatchingGroup(c100257031.thfilter,tp,LOCATION_DECK,0,nil,tc)
local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,2) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,2)
if sg then if sg and sg:GetCount()>0 then
Duel.SendtoHand(sg,nil,REASON_EFFECT) Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
end end
end end
end end
function c100257031.atktg(e,c)
return e:GetHandler():GetLinkedGroup():IsContains(c) and c:IsRace(RACE_FIEND)
end
function c100257031.atkval(e,c)
return c:GetLevel()*100
end
...@@ -2,9 +2,10 @@ ...@@ -2,9 +2,10 @@
--Scripted by mallu11 --Scripted by mallu11
function c100257036.initial_effect(c) function c100257036.initial_effect(c)
c:EnableCounterPermit(0x1)
--link summon
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddLinkProcedure(c,nil,2,3,c100257036.lcheck) aux.AddLinkProcedure(c,nil,2,3,c100257036.lcheck)
c:EnableCounterPermit(0x1)
--add counter --add counter
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(100257036,0)) e1:SetDescription(aux.Stringid(100257036,0))
...@@ -41,35 +42,34 @@ end ...@@ -41,35 +42,34 @@ end
function c100257036.lcheck(g,lc) function c100257036.lcheck(g,lc)
return g:IsExists(Card.IsLinkRace,1,nil,RACE_SPELLCASTER) return g:IsExists(Card.IsLinkRace,1,nil,RACE_SPELLCASTER)
end end
function c100257036.atfilter(c)
return c:IsFaceup() and c:IsSetCard(0x12a)
end
function c100257036.atcon(e)
return Duel.IsExistingMatchingCard(c100257036.atfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil)
end
function c100257036.ctfilter(c) function c100257036.ctfilter(c)
return c:IsFaceup() and c:IsType(TYPE_SPELL) return (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup()) and c:IsType(TYPE_SPELL)
end end
function c100257036.ctcon(e,tp,eg,ep,ev,re,r,rp) function c100257036.ctcon(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 c100257036.ctop(e,tp,eg,ep,ev,re,r,rp) function c100257036.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local loc=LOCATION_ONFIELD+LOCATION_GRAVE local g=Duel.GetMatchingGroup(c100257036.ctfilter,tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,nil)
local g=Duel.GetMatchingGroup(c100257036.ctfilter,tp,loc,loc,nil) if c:IsFaceup() and c:IsRelateToEffect(e) and g:GetCount()>0 then
if c:IsRelateToEffect(e) and c:IsFaceup() and g:GetCount()>0 then
c:AddCounter(0x1,g:GetCount()) c:AddCounter(0x1,g:GetCount())
end end
end end
function c100257036.spfilter(c,e,tp,zone) function c100257036.atfilter(c)
return c:IsRace(RACE_SPELLCASTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE,tp,zone) return c:IsFaceup() and c:IsSetCard(0x12a)
end
function c100257036.atcon(e)
return Duel.IsExistingMatchingCard(c100257036.atfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil)
end end
function c100257036.spcon(e,tp,eg,ep,ev,re,r,rp) function c100257036.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2 return Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2
end end
function c100257036.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c100257036.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,LOCATION_ONFIELD,0,0x1,3,REASON_COST) end if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0x1,3,REASON_COST) end
Duel.RemoveCounter(tp,LOCATION_ONFIELD,0,0x1,3,REASON_COST) Duel.RemoveCounter(tp,1,0,0x1,3,REASON_COST)
end
function c100257036.spfilter(c,e,tp,zone)
return c:IsRace(RACE_SPELLCASTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE,tp,zone)
end end
function c100257036.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c100257036.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local zone=bit.band(e:GetHandler():GetLinkedZone(tp),0x1f) local zone=bit.band(e:GetHandler():GetLinkedZone(tp),0x1f)
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100257041.initial_effect(c) function c100257041.initial_effect(c)
--link summon
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddLinkProcedure(c,nil,2,2,c100257041.lcheck) aux.AddLinkProcedure(c,nil,2,2,c100257041.lcheck)
--spsummon1 --spsummon1
...@@ -45,27 +46,20 @@ function c100257041.spfilter1(c,e,tp) ...@@ -45,27 +46,20 @@ function c100257041.spfilter1(c,e,tp)
return c:IsType(TYPE_SYNCHRO) and (c:IsSetCard(0x123) or c:IsRace(RACE_PLANT)) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false) return c:IsType(TYPE_SYNCHRO) and (c:IsSetCard(0x123) or c:IsRace(RACE_PLANT)) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false)
end end
function c100257041.spcost1(e,tp,eg,ep,ev,re,r,rp,chk) function c100257041.spcost1(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(1)
if chk==0 then return true end
end
function c100257041.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then if chk==0 then return c:IsReleasable() and Duel.CheckReleaseGroup(tp,c100257041.rfilter,1,c,e,tp,c) end
if e:GetLabel()==0 then return false end
e:SetLabel(0)
return c:IsReleasable() and Duel.CheckReleaseGroup(tp,c100257041.rfilter,1,c,e,tp,c)
and aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL)
and Duel.IsExistingMatchingCard(c100257041.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp)
end
e:SetLabel(0)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectReleaseGroup(tp,c100257041.rfilter,1,1,c,e,tp,c) local g=Duel.SelectReleaseGroup(tp,c100257041.rfilter,1,1,c,e,tp,c)
g:AddCard(c) g:AddCard(c)
Duel.Release(g,REASON_COST) Duel.Release(g,REASON_COST)
end
function c100257041.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL)
and Duel.IsExistingMatchingCard(c100257041.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
function c100257041.spop1(e,tp,eg,ep,ev,re,r,rp) function c100257041.spop1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCountFromEx(tp)<=0 then return end if Duel.GetLocationCountFromEx(tp)<=0 or not aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c100257041.spfilter1,tp,LOCATION_EXTRA,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c100257041.spfilter1,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst() local tc=g:GetFirst()
...@@ -76,12 +70,12 @@ end ...@@ -76,12 +70,12 @@ end
function c100257041.cfilter(c,tp) function c100257041.cfilter(c,tp)
return c:IsPreviousLocation(LOCATION_MZONE) and c:GetPreviousControler()==tp and c:IsReason(REASON_EFFECT) return c:IsPreviousLocation(LOCATION_MZONE) and c:GetPreviousControler()==tp and c:IsReason(REASON_EFFECT)
end end
function c100257041.spfilter2(c,e,tp)
return c:IsSetCard(0x1123) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100257041.spcon2(e,tp,eg,ep,ev,re,r,rp) function c100257041.spcon2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c100257041.cfilter,1,nil,tp) and not eg:IsContains(e:GetHandler()) return eg:IsExists(c100257041.cfilter,1,nil,tp) and not eg:IsContains(e:GetHandler())
end end
function c100257041.spfilter2(c,e,tp)
return c:IsSetCard(0x1123) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100257041.sptg2(e,tp,eg,ep,ev,re,r,rp,chk) function c100257041.sptg2(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(c100257041.spfilter2,tp,LOCATION_GRAVE,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(c100257041.spfilter2,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
......
...@@ -35,9 +35,9 @@ function c100257046.atkcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,9 +35,9 @@ function c100257046.atkcon(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 c100257046.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100257046.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsFaceup() and chkc:GetAttack()>0 end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and aux.nzatk(chkc) end
if chk==0 then return Duel.IsExistingTarget(aux.nzatk,tp,0,LOCATION_MZONE,1,nil) end if chk==0 then return Duel.IsExistingTarget(aux.nzatk,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPPO) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,aux.nzatk,tp,0,LOCATION_MZONE,1,1,nil) Duel.SelectTarget(tp,aux.nzatk,tp,0,LOCATION_MZONE,1,1,nil)
end end
function c100257046.atkop(e,tp,eg,ep,ev,re,r,rp) function c100257046.atkop(e,tp,eg,ep,ev,re,r,rp)
...@@ -53,29 +53,23 @@ function c100257046.atkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -53,29 +53,23 @@ function c100257046.atkop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c100257046.cfilter(c) function c100257046.cfilter(c)
return c:IsFaceup() and c:GetAttack()==0 return c:IsFaceup() and c:IsAttack(0)
end end
function c100257046.thfilter(c) function c100257046.thfilter(c)
return c:IsRace(RACE_REPTILE) and c:IsAbleToHand() return c:IsRace(RACE_REPTILE) and c:IsAbleToHand()
end end
function c100257046.fselect(g)
if g:GetClassCount(Card.GetCode)==g:GetCount() then
Duel.SetSelectedCard(g)
return true
else return false end
end
function c100257046.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c100257046.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=Duel.GetMatchingGroupCount(c100257046.cfilter,tp,0,LOCATION_MZONE,nil) local ct=Duel.GetMatchingGroupCount(c100257046.cfilter,tp,0,LOCATION_MZONE,nil)
local g=Duel.GetMatchingGroup(c100257046.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c100257046.thfilter,tp,LOCATION_DECK,0,nil)
if chk==0 then return ct>0 and g:GetCount()>0 end if chk==0 then return ct>0 and g:GetCount()>0 end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,0,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function c100257046.thop(e,tp,eg,ep,ev,re,r,rp) function c100257046.thop(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(c100257046.cfilter,tp,0,LOCATION_MZONE,nil) local ct=Duel.GetMatchingGroupCount(c100257046.cfilter,tp,0,LOCATION_MZONE,nil)
local g=Duel.GetMatchingGroup(c100257046.thfilter,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c100257046.thfilter,tp,LOCATION_DECK,0,nil)
if ct>0 and g:GetCount()>0 then if ct>0 and g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:SelectSubGroup(tp,c100257046.fselect,false,1,ct) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ct)
if sg:GetCount()>0 then if sg:GetCount()>0 then
Duel.SendtoHand(sg,nil,REASON_EFFECT) Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
......
...@@ -31,14 +31,15 @@ function c100257051.tkcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -31,14 +31,15 @@ function c100257051.tkcon(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 c100257051.tktg(e,tp,eg,ep,ev,re,r,rp,chk) function c100257051.tktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133) and Duel.GetLocationCount(tp,LOCATION_MZONE)>2 if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133)
and Duel.IsPlayerCanSpecialSummonMonster(tp,100257151,0x101b,0x4011,0,0,3,RACE_MACHINE,ATTRIBUTE_WIND) end and Duel.GetLocationCount(tp,LOCATION_MZONE)>2
and Duel.IsPlayerCanSpecialSummonMonster(tp,31533705,0x101b,0x4011,0,0,3,RACE_MACHINE,ATTRIBUTE_WIND) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,3,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,3,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,3,0,0) Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,3,0,0)
end end
function c100257051.tkop(e,tp,eg,ep,ev,re,r,rp) function c100257051.tkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>2 and not Duel.IsPlayerAffectedByEffect(tp,59822133) if Duel.GetLocationCount(tp,LOCATION_MZONE)>2 and not Duel.IsPlayerAffectedByEffect(tp,59822133)
and Duel.IsPlayerCanSpecialSummonMonster(tp,100257151,0x101b,0x4011,0,0,3,RACE_MACHINE,ATTRIBUTE_WIND) then and Duel.IsPlayerCanSpecialSummonMonster(tp,31533705,0x101b,0x4011,0,0,3,RACE_MACHINE,ATTRIBUTE_WIND) then
local ct=3 local ct=3
while ct>0 do while ct>0 do
local token=Duel.CreateToken(tp,100257151) local token=Duel.CreateToken(tp,100257151)
......
--幻奏の華聖ブルーム・ハーモニスト --幻奏の華聖ブルーム・ハーモニスト
--Scripted by mallu11 --Scripted by mallu11
function c100257066.initial_effect(c) function c100257066.initial_effect(c)
...@@ -30,13 +30,6 @@ function c100257066.initial_effect(c) ...@@ -30,13 +30,6 @@ function c100257066.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
Duel.AddCustomActivityCounter(100257066,ACTIVITY_SPSUMMON,c100257066.counterfilter) Duel.AddCustomActivityCounter(100257066,ACTIVITY_SPSUMMON,c100257066.counterfilter)
end end
function c100257066.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x9b)
end
function c100257066.actcon(e)
local a=Duel.GetAttacker()
return a and c100257066.cfilter(a) and e:GetHandler():GetLinkedGroup():IsContains(a)
end
function c100257066.counterfilter(c) function c100257066.counterfilter(c)
return c:IsSetCard(0x9b) return c:IsSetCard(0x9b)
end end
...@@ -62,28 +55,34 @@ end ...@@ -62,28 +55,34 @@ end
function c100257066.spfilter(c,e,tp,zone) function c100257066.spfilter(c,e,tp,zone)
return c:IsSetCard(0x9b) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE,tp,zone) return c:IsSetCard(0x9b) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE,tp,zone)
end end
function c100257066.fselect(g)
if g:GetClassCount(Card.GetLevel)==g:GetCount() then
Duel.SetSelectedCard(g)
return true
else return false end
end
function c100257066.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c100257066.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local zone=bit.band(e:GetHandler():GetLinkedZone(tp),0x1f) local zone=bit.band(e:GetHandler():GetLinkedZone(tp),0x1f)
local ct=Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone)
local g=Duel.GetMatchingGroup(c100257066.spfilter,tp,LOCATION_DECK,0,nil,e,tp,zone) local g=Duel.GetMatchingGroup(c100257066.spfilter,tp,LOCATION_DECK,0,nil,e,tp,zone)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133) and ct>1 and g:GetClassCount(Card.GetLevel)>=2 end if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133)
and ft>1 and g:GetClassCount(Card.GetLevel)>=2 end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end end
function c100257066.fselect(g)
return g:GetClassCount(Card.GetLevel)==g:GetCount()
end
function c100257066.spop(e,tp,eg,ep,ev,re,r,rp) function c100257066.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local zone=bit.band(c:GetLinkedZone(tp),0x1f) local zone=bit.band(c:GetLinkedZone(tp),0x1f)
local ct=Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone)
local g=Duel.GetMatchingGroup(c100257066.spfilter,tp,LOCATION_DECK,0,nil,e,tp,zone) local g=Duel.GetMatchingGroup(c100257066.spfilter,tp,LOCATION_DECK,0,nil,e,tp,zone)
if c:IsRelateToEffect(e) and not Duel.IsPlayerAffectedByEffect(tp,59822133) and ct>1 and g:GetClassCount(Card.GetLevel)>=2 then if c:IsRelateToEffect(e) and not Duel.IsPlayerAffectedByEffect(tp,59822133) and ft>1 and g:GetClassCount(Card.GetLevel)>=2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:SelectSubGroup(tp,c100257066.fselect,false,2,2) local sg=g:SelectSubGroup(tp,c100257066.fselect,false,2,2)
if sg:GetCount()==2 then if sg and sg:GetCount()==2 then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE,zone) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE,zone)
end end
end end
end end
function c100257066.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x9b)
end
function c100257066.actcon(e)
local a=Duel.GetAttacker()
return a and c100257066.cfilter(a) and e:GetHandler():GetLinkedGroup():IsContains(a)
end
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100257071.initial_effect(c) function c100257071.initial_effect(c)
--link summon
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkType,TYPE_EFFECT),2,2) aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkType,TYPE_EFFECT),2,2)
--change attribute --change attribute
......
...@@ -18,14 +18,14 @@ function c100257076.initial_effect(c) ...@@ -18,14 +18,14 @@ function c100257076.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c100257076.mfilter(c) function c100257076.mfilter(c)
return c:IsSetCard(0x10ec) and c:IsLinkType(TYPE_PENDULUM) return c:IsLinkSetCard(0x10ec) and c:IsLinkType(TYPE_PENDULUM)
end end
function c100257076.spfilter(c,e,tp) function c100257076.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.IsExistingMatchingCard(c100257076.stfilter,tp,LOCATION_EXTRA+LOCATION_DECK,0,1,nil,c:GetCode()) and Duel.IsExistingMatchingCard(c100257076.stfilter,tp,LOCATION_EXTRA+LOCATION_DECK,0,1,nil,c:GetCode())
end end
function c100257076.stfilter(c,code) function c100257076.stfilter(c,code)
return (c:IsFaceup() or c:IsLocation(LOCATION_DECK)) and c:IsType(TYPE_PENDULUM) and c:IsSetCard(0x10ec) and not c:IsCode(code) return (c:IsFaceup() or c:IsLocation(LOCATION_DECK)) and c:IsType(TYPE_PENDULUM) and c:IsSetCard(0x10ec) and not c:IsCode(code) and not c:IsForbidden()
end end
function c100257076.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100257076.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_PZONE) and chkc:IsControler(tp) and c100257076.spfilter(chkc,e,tp) end if chkc then return chkc:IsLocation(LOCATION_PZONE) and chkc:IsControler(tp) and c100257076.spfilter(chkc,e,tp) end
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100257081.initial_effect(c) function c100257081.initial_effect(c)
--link summon
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddLinkProcedure(c,nil,2,2) aux.AddLinkProcedure(c,nil,2,2)
--spsummon condition --spsummon condition
......
...@@ -11,7 +11,7 @@ function c100257086.initial_effect(c) ...@@ -11,7 +11,7 @@ function c100257086.initial_effect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(aux.lnklimit) e1:SetValue(aux.linklimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--remove --remove
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -89,7 +89,7 @@ function c100257086.retop(e,tp,eg,ep,ev,re,r,rp) ...@@ -89,7 +89,7 @@ function c100257086.retop(e,tp,eg,ep,ev,re,r,rp)
end end
function c100257086.tgtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100257086.tgtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler() local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsControler(tp) and chkc~=c end if chkc then return chkc:IsOnField() and chkc:IsControler(tp) and chkc~=c end
if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_ONFIELD,0,1,c) end if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_ONFIELD,0,1,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_ONFIELD,0,1,1,c) local g=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_ONFIELD,0,1,1,c)
......
...@@ -47,18 +47,18 @@ function c100257091.atkcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,18 +47,18 @@ function c100257091.atkcon(e,tp,eg,ep,ev,re,r,rp)
return re:IsActiveType(TYPE_MONSTER) and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)==LOCATION_GRAVE return re:IsActiveType(TYPE_MONSTER) and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)==LOCATION_GRAVE
and e:GetHandler():GetFlagEffect(1)>0 and e:GetHandler():GetFlagEffect(1)>0
end end
function c100257091.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c100257091.spfilter,1,nil) and not eg:IsContains(e:GetHandler())
end
function c100257091.spfilter(c) function c100257091.spfilter(c)
return c:GetSummonLocation()==LOCATION_GRAVE return c:GetSummonLocation()==LOCATION_GRAVE
end end
function c100257091.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c100257091.spfilter,1,nil) and not eg:IsContains(e:GetHandler())
end
function c100257091.atkfilter(c) function c100257091.atkfilter(c)
return c:IsFaceup() and not (c:GetAttack()==0 and (c:IsDisabled() or (not c:IsType(TYPE_EFFECT) and c:GetOriginalType()&TYPE_EFFECT==0))) return c:IsFaceup() and c:GetAttack()>0
end end
function c100257091.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100257091.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler() local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc~=c and c100257091.atkfilter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and c100257091.atkfilter(chkc) and chkc~=c end
if chk==0 then return Duel.IsExistingTarget(c100257091.atkfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,c) end if chk==0 then return Duel.IsExistingTarget(c100257091.atkfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,c) end
local g=Duel.SelectTarget(tp,c100257091.atkfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,c) local g=Duel.SelectTarget(tp,c100257091.atkfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,c)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0)
...@@ -66,25 +66,22 @@ end ...@@ -66,25 +66,22 @@ end
function c100257091.atkop(e,tp,eg,ep,ev,re,r,rp) function c100257091.atkop(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 tc:IsFaceup() then if tc:IsRelateToEffect(e) and tc:IsFaceup() and tc:GetAttack()>0 then
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL) e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetValue(0) e1:SetValue(0)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE) e2:SetCode(EFFECT_DISABLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetReset(RESET_EVENT+RESETS_STANDARD) e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2) tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE_EFFECT) e3:SetCode(EFFECT_DISABLE_EFFECT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetValue(RESET_TURN_SET) e3:SetValue(RESET_TURN_SET)
e3:SetReset(RESET_EVENT+RESETS_STANDARD) e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3) tc:RegisterEffect(e3)
......
...@@ -52,7 +52,7 @@ function c100257096.tktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -52,7 +52,7 @@ function c100257096.tktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c100257096.tkfilter(chkc,tp) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c100257096.tkfilter(chkc,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(c100257096.tkfilter,tp,0,LOCATION_MZONE,1,nil,tp) end and Duel.IsExistingTarget(c100257096.tkfilter,tp,0,LOCATION_MZONE,1,nil,tp) end
local g=Duel.SelectTarget(tp,c100257096.tkfilter,tp,0,LOCATION_MZONE,1,1,nil,tp) Duel.SelectTarget(tp,c100257096.tkfilter,tp,0,LOCATION_MZONE,1,1,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end end
......
...@@ -64,20 +64,15 @@ function c100337001.tgop(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,20 +64,15 @@ function c100337001.tgop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.SelectMatchingCard(tp,c100337001.tgfilter,tp,LOCATION_HAND,0,1,1,nil):GetFirst() local tc=Duel.SelectMatchingCard(tp,c100337001.tgfilter,tp,LOCATION_HAND,0,1,1,nil):GetFirst()
if tc and Duel.SendtoGrave(tc,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_GRAVE) then if tc and Duel.SendtoGrave(tc,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_GRAVE) then
local lv=tc:GetOriginalLevel() local lv=tc:GetOriginalLevel()
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
local gc=g:GetFirst()
while gc do
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetValue(lv*100) e1:SetValue(lv*100)
gc:RegisterEffect(e1) e1:SetTargetRange(LOCATION_MZONE,0)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE) e2:SetCode(EFFECT_UPDATE_DEFENSE)
gc:RegisterEffect(e2) Duel.RegisterEffect(e2,tp)
gc=g:GetNext()
end
end end
end end
...@@ -47,6 +47,7 @@ function c100423001.drop(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,6 +47,7 @@ function c100423001.drop(e,tp,eg,ep,ev,re,r,rp)
local dc=Duel.GetOperatedGroup():GetFirst() local dc=Duel.GetOperatedGroup():GetFirst()
if dc:IsType(TYPE_SPELL+TYPE_TRAP) and dc:IsSSetable() if dc:IsType(TYPE_SPELL+TYPE_TRAP) and dc:IsSSetable()
and Duel.SelectYesNo(tp,aux.Stringid(100423001,0)) then and Duel.SelectYesNo(tp,aux.Stringid(100423001,0)) then
Duel.BreakEffect()
Duel.SSet(tp,dc) Duel.SSet(tp,dc)
if dc:IsType(TYPE_QUICKPLAY) then if dc:IsType(TYPE_QUICKPLAY) then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -75,19 +76,18 @@ function c100423001.spfilter2(c,e,tp) ...@@ -75,19 +76,18 @@ function c100423001.spfilter2(c,e,tp)
return c:IsCode(38033121) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsCode(38033121) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c100423001.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c100423001.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local loc=LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE if chk==0 then return Duel.IsExistingMatchingCard(c100423001.spfilter1,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp)
if chk==0 then return Duel.IsExistingMatchingCard(c100423001.spfilter1,tp,loc,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 and not Duel.IsPlayerAffectedByEffect(tp,59822133) end and not Duel.IsPlayerAffectedByEffect(tp,59822133) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,loc) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE)
end end
function c100423001.spop(e,tp,eg,ep,ev,re,r,rp) function c100423001.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local loc=LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423001.spfilter1),tp,loc,0,1,1,nil,e,tp) local g1=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423001.spfilter1),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g2=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423001.spfilter2),tp,loc,0,1,1,g1:GetFirst(),e,tp) local g2=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423001.spfilter2),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,1,g1:GetFirst(),e,tp)
g1:Merge(g2) g1:Merge(g2)
if g1:GetCount()==2 then if g1:GetCount()==2 then
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100423002.initial_effect(c) function c100423002.initial_effect(c)
aux.AddCodeList(c,46986414,38033121)
--spsummon --spsummon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
...@@ -79,11 +80,10 @@ function c100423002.drfilter(c) ...@@ -79,11 +80,10 @@ function c100423002.drfilter(c)
end end
function c100423002.drcost(e,tp,eg,ep,ev,re,r,rp,chk) function c100423002.drcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c100423002.drfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c100423002.drfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end
local gc=1 local ct=1
if Duel.IsPlayerCanDraw(tp,2) then gc=2 end if Duel.IsPlayerCanDraw(tp,2) then ct=2 end
local g1=Duel.GetMatchingGroup(c100423002.drfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=g1:Select(tp,1,gc,nil) local g=Duel.SelectMatchingCard(tp,c100423002.drfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,ct,nil)
e:SetLabel(Duel.SendtoGrave(g,REASON_COST)) e:SetLabel(Duel.SendtoGrave(g,REASON_COST))
end end
function c100423002.drtg(e,tp,eg,ep,ev,re,r,rp,chk) function c100423002.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100423004.initial_effect(c) function c100423004.initial_effect(c)
aux.AddCodeList(c,46986414,38033121)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
...@@ -12,54 +13,38 @@ function c100423004.initial_effect(c) ...@@ -12,54 +13,38 @@ function c100423004.initial_effect(c)
e1:SetOperation(c100423004.activate) e1:SetOperation(c100423004.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
c100423004.card_code_list={46986414,38033121}
function c100423004.filter1(c,e) function c100423004.filter1(c,e)
return not c:IsImmuneToEffect(e) return not c:IsImmuneToEffect(e)
end end
function c100423004.filter2(c,e,tp,m,f,gc,chkf) function c100423004.filter2(c,e,tp,m,f,gc,chkf)
return c:IsType(TYPE_FUSION) and (not f or f(c)) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) return c:IsType(TYPE_FUSION) and (not f or f(c)) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
and c:CheckFusionMaterial(m,gc,chkf) end
function c100423004.fcheck(tp,sg,fc)
return sg:IsExists(Card.IsFusionCode,1,nil,46986414,38033121)
end
function c100423004.rcheck(tp,g,c)
return g:IsExists(Card.IsCode,1,nil,46986414,38033121)
end end
function c100423004.target(e,tp,eg,ep,ev,re,r,rp,chk) function c100423004.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=nil
local tc=nil
local chkf=tp local chkf=tp
local mg1=Duel.GetFusionMaterial(tp) local mg1=Duel.GetFusionMaterial(tp)
local mg2=nil aux.FCheckAdditional=c100423004.fcheck
g=mg1:Filter(Card.IsCode,nil,46986414,38033121) local res1=Duel.IsExistingMatchingCard(c100423004.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf)
local res1=false
gc=g:GetFirst()
while gc do
res1=res1 or Duel.IsExistingMatchingCard(c100423004.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,gc,chkf)
gc=g:GetNext()
end
if not res1 then if not res1 then
local ce=Duel.GetChainMaterial(tp) local ce=Duel.GetChainMaterial(tp)
if ce~=nil then if ce~=nil then
local fgroup=ce:GetTarget() local fgroup=ce:GetTarget()
local mg3=fgroup(ce,e,tp) local mg2=fgroup(ce,e,tp)
local mf=ce:GetValue() local mf=ce:GetValue()
g=mg3:Filter(Card.IsCode,nil,46986414,38033121) res1=Duel.IsExistingMatchingCard(c100423004.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg2,mf,chkf)
gc=g:GetFirst()
while gc do
res1=res1 or Duel.IsExistingMatchingCard(c100423004.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg3,mf,gc,chkf)
gc=g:GetNext()
end
end end
end end
local mg=Duel.GetRitualMaterial(tp) local mg3=Duel.GetRitualMaterial(tp)
local sg=nil aux.RCheckAdditional=c100423004.rcheck
g=mg:Filter(Card.IsCode,nil,46986414,38033121) local res2=mg3:IsExists(Card.IsCode,1,nil,46986414,38033121)
local res2=false and Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,nil,aux.TRUE,e,tp,mg3,nil,Card.GetLevel,"Greater")
gc=g:GetFirst() aux.RCheckAdditional=nil
while gc do if chk==0 then return res1 or res2 end
res2=res2 or Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,nil,aux.TRUE,e,tp,mg,sg,Card.GetLevel,"Greater",gc)
gc=g:GetNext()
end
if chk==0 then
return res1 or res2
end
local s=0 local s=0
if res1 and not res2 then if res1 and not res2 then
s=Duel.SelectOption(tp,aux.Stringid(100423004,0)) s=Duel.SelectOption(tp,aux.Stringid(100423004,0))
...@@ -81,40 +66,19 @@ function c100423004.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -81,40 +66,19 @@ function c100423004.target(e,tp,eg,ep,ev,re,r,rp,chk)
end end
end end
function c100423004.activate(e,tp,eg,ep,ev,re,r,rp) function c100423004.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=nil
local gc=nil
if e:GetLabel()==0 then if e:GetLabel()==0 then
local chkf=tp local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(c100423004.filter1,nil,e) local mg1=Duel.GetFusionMaterial(tp):Filter(c100423004.filter1,nil,e)
aux.FCheckAdditional=c100423004.fcheck
local sg1=Duel.GetMatchingGroup(c100423004.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
local mg2=nil local mg2=nil
g=mg1:Filter(Card.IsCode,nil,46986414,38033121)
gc=g:GetFirst()
local sg1=Group.CreateGroup()
while gc do
sg1:Merge(Duel.GetMatchingGroup(c100423004.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,gc,chkf))
if not Duel.IsExistingMatchingCard(c100423004.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,gc,chkf) then
mg1:RemoveCard(gc)
end
gc=g:GetNext()
end
local mg3=nil
local sg2=nil local sg2=nil
local ce=Duel.GetChainMaterial(tp) local ce=Duel.GetChainMaterial(tp)
if ce~=nil then if ce~=nil then
local fgroup=ce:GetTarget() local fgroup=ce:GetTarget()
mg3=fgroup(ce,e,tp) mg2=fgroup(ce,e,tp)
local mf=ce:GetValue() local mf=ce:GetValue()
g=mg3:Filter(Card.IsCode,nil,46986414,38033121) sg2=Duel.GetMatchingGroup(c100423004.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,mf,chkf)
gc=g:GetFirst()
local sg2=Group.CreateGroup()
while gc do
sg2:Merge(Duel.GetMatchingGroup(c100423004.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg3,mf,gc,chkf))
if not Duel.IsExistingMatchingCard(c100423004.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg3,nil,gc,chkf) then
mg3:RemoveCard(gc)
end
gc=g:GetNext()
end
end end
if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then
local sg=sg1:Clone() local sg=sg1:Clone()
...@@ -123,82 +87,45 @@ function c100423004.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -123,82 +87,45 @@ function c100423004.activate(e,tp,eg,ep,ev,re,r,rp)
local tg=sg:Select(tp,1,1,nil) local tg=sg:Select(tp,1,1,nil)
local tc=tg:GetFirst() local tc=tg:GetFirst()
if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then
g=mg1:Filter(Card.IsCode,nil,46986414,38033121) local mat=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf)
gc=g:GetFirst() tc:SetMaterial(mat)
local pg=Group.CreateGroup() Duel.SendtoGrave(mat,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
while gc do
if tc:CheckFusionMaterial(mg1,gc,chkf) then
pg:AddCard(gc)
end
gc=g:GetNext()
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
g=pg:Select(tp,1,1,nil)
Duel.SetSelectedCard(g:GetFirst())
local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf)
tc:SetMaterial(mat1)
Duel.SendtoGrave(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
else else
g=mg3:Filter(Card.IsCode,nil,46986414,38033121) local mat2=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf)
gc=g:GetFirst()
local pg=nil
while gc do
if tc:CheckFusionMaterial(mg3,gc,chkf) then
pg:AddCard(gc)
end
gc=g:GetNext()
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
g=pg:Select(tp,1,1,nil)
Duel.SetSelectedCard(g:GetFirst())
local mat2=Duel.SelectFusionMaterial(tp,tc,mg3,nil,chkf)
local fop=ce:GetOperation() local fop=ce:GetOperation()
fop(ce,e,tp,tc,mat2) fop(ce,e,tp,tc,mat2)
end end
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end aux.FCheckAdditional=nil
if e:GetLabel()==1 then elseif e:GetLabel()==1 then
local mg=Duel.GetRitualMaterial(tp) local mg=Duel.GetRitualMaterial(tp)
local sg=nil aux.RCheckAdditional=c100423004.rcheck
g=mg:Filter(Card.IsCode,nil,46986414,38033121)
local sg1=Group.CreateGroup()
gc=g:GetFirst()
while gc do
sg1:Merge(Duel.GetMatchingGroup(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,nil,aux.TRUE,e,tp,mg,sg,Card.GetLevel,"Greater",gc))
if not Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,nil,aux.TRUE,e,tp,mg,sg,Card.GetLevel,"Greater",gc) then
mg:RemoveCard(gc)
end
gc=g:GetNext()
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=sg1:Select(tp,1,1,nil) local tg=Duel.SelectMatchingCard(tp,aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,1,nil,aux.TRUE,e,tp,mg,nil,Card.GetLevel,"Greater")
local tc=tg:GetFirst() local tc=tg:GetFirst()
if tc then if tc then
mg=mg:Filter(Card.IsCanBeRitualMaterial,tc,tc) mg=mg:Filter(Card.IsCanBeRitualMaterial,tc,tc)
if sg then
mg:Merge(sg)
end
if tc.mat_filter then if tc.mat_filter then
mg=mg:Filter(tc.mat_filter,tc,tp) mg=mg:Filter(tc.mat_filter,tc,tp)
else else
mg:RemoveCard(tc) mg:RemoveCard(tc)
end end
g=mg:Filter(Card.IsCode,nil,46986414,38033121)
gc=g:Select(tp,1,1,nil):GetFirst()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
Duel.SetSelectedCard(gc)
aux.GCheckAdditional=aux.RitualCheckAdditional(tc,tc:GetLevel(),"Greater") aux.GCheckAdditional=aux.RitualCheckAdditional(tc,tc:GetLevel(),"Greater")
local mat=mg:SelectSubGroup(tp,aux.RitualCheck,false,1,tc:GetLevel(),tp,tc,tc:GetLevel(),"Greater") local mat=mg:SelectSubGroup(tp,aux.RitualCheck,false,1,tc:GetLevel(),tp,tc,tc:GetLevel(),"Greater")
aux.GCheckAdditional=nil aux.GCheckAdditional=nil
if not mat or mat:GetCount()==0 then return end if not mat or mat:GetCount()==0 then
aux.RCheckAdditional=nil
return
end
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
aux.RCheckAdditional=nil
end end
end end
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100423005.initial_effect(c) function c100423005.initial_effect(c)
aux.AddCodeList(c,46986414,38033121)
--activate --activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(100423005,0)) e1:SetDescription(aux.Stringid(100423005,0))
...@@ -35,7 +36,6 @@ function c100423005.initial_effect(c) ...@@ -35,7 +36,6 @@ function c100423005.initial_effect(c)
e4:SetOperation(c100423005.desop) e4:SetOperation(c100423005.desop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
end end
c100423005.card_code_list={46986414,38033121}
function c100423005.cfilter(c,e,tp) function c100423005.cfilter(c,e,tp)
return c:IsCode(46986414,38033121) and c:IsReleasable() and Duel.GetMZoneCount(tp,c)>0 return c:IsCode(46986414,38033121) and c:IsReleasable() and Duel.GetMZoneCount(tp,c)>0
and Duel.IsExistingMatchingCard(c100423005.spfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp,c:GetCode()) and Duel.IsExistingMatchingCard(c100423005.spfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp,c:GetCode())
...@@ -68,7 +68,7 @@ end ...@@ -68,7 +68,7 @@ end
function c100423005.spop(e,tp,eg,ep,ev,re,r,rp) function c100423005.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423005.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp,e:GetLabel()) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423005.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp,e:GetLabel())
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) then if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.NegateEffect(ev) Duel.NegateEffect(ev)
end end
end end
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100423012.initial_effect(c) function c100423012.initial_effect(c)
--fusion material
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,c100423012.ffilter,2,true) aux.AddFusionProcFunRep(c,c100423012.ffilter,2,true)
--spsummon condition --spsummon condition
...@@ -62,10 +63,23 @@ function c100423012.srop(e,tp,eg,ep,ev,re,r,rp) ...@@ -62,10 +63,23 @@ function c100423012.srop(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
function c100423012.atkfilter(c)
return c:IsFaceup() and c:GetAttribute()~=0
end
function c100423012.val(e,c) function c100423012.val(e,c)
local g=Duel.GetFieldGroup(e:GetHandlerPlayer(),LOCATION_MZONE,0) local g=Duel.GetMatchingGroup(c100423012.atkfilter,e:GetHandlerPlayer(),LOCATION_MZONE,0,nil)
local sg=g:Filter(Card.IsFaceup,nil) local att=0
return sg:GetClassCount(Card.GetAttribute)*200 local tc=g:GetFirst()
while tc do
att=bit.bor(att,tc:GetAttribute())
tc=g:GetNext()
end
local ct=0
while att~=0 do
if bit.band(att,0x1)~=0 then ct=ct+1 end
att=bit.rshift(att,1)
end
return ct*200
end end
function c100423012.descon(e,tp,eg,ep,ev,re,r,rp) function c100423012.descon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -27,7 +27,7 @@ function c100423013.initial_effect(c) ...@@ -27,7 +27,7 @@ function c100423013.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c100423013.spfilter(c,e,tp) function c100423013.spfilter(c,e,tp)
return c:IsLevelBelow(4) and c:IsSetCard(0x8) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsLevelBelow(4) and c:IsSetCard(0x8) and not c:IsCode(100423013) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c100423013.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100423013.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c100423013.spfilter(chkc,e,tp) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c100423013.spfilter(chkc,e,tp) end
...@@ -38,7 +38,6 @@ function c100423013.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -38,7 +38,6 @@ function c100423013.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end end
function c100423013.operation(e,tp,eg,ep,ev,re,r,rp) function c100423013.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
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) Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
......
...@@ -17,75 +17,43 @@ end ...@@ -17,75 +17,43 @@ end
function c100423014.condition(e,tp,eg,ep,ev,re,r,rp) function c100423014.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetLP(tp)<Duel.GetLP(1-tp) return Duel.GetLP(tp)<Duel.GetLP(1-tp)
end end
function c100423014.thfilter(c) function c100423014.thfilter(c,e,tp,ft,atk)
return (c:IsSetCard(0x3008) or c:IsSetCard(0xa4) or c:IsSetCard(0x1f)) and c:IsAttackBelow(math.abs(Duel.GetLP(0)-Duel.GetLP(1))) and c:IsAbleToHand() return c:IsSetCard(0x3008,0xa4,0x1f) and c:IsAttackBelow(atk) and (c:IsAbleToHand() or (ft>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false)))
end
function c100423014.spfilter(c,e,tp)
return (c:IsSetCard(0x3008) or c:IsSetCard(0xa4) or c:IsSetCard(0x1f)) and c:IsAttackBelow(math.abs(Duel.GetLP(0)-Duel.GetLP(1))) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100423014.cfilter(c,e,tp)
return (c:IsSetCard(0x3008) or c:IsSetCard(0xa4) or c:IsSetCard(0x1f)) and c:IsAttackBelow(math.abs(Duel.GetLP(0)-Duel.GetLP(1))) and (c:IsAbleToHand() or c:IsCanBeSpecialSummoned(e,0,tp,false,false))
end end
function c100423014.target(e,tp,eg,ep,ev,re,r,rp,chk) function c100423014.target(e,tp,eg,ep,ev,re,r,rp,chk)
local loc=LOCATION_DECK+LOCATION_GRAVE local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if chk==0 then return Duel.IsExistingMatchingCard(c100423014.thfilter,tp,loc,0,1,nil) or (Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(c100423014.spfilter,tp,loc,0,1,nil,e,tp)) end local atk=math.abs(Duel.GetLP(0)-Duel.GetLP(1))
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,loc) if chk==0 then return Duel.IsExistingMatchingCard(c100423014.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp,ft,atk) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,loc) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end end
function c100423014.activate(e,tp,eg,ep,ev,re,r,rp) function c100423014.activate(e,tp,eg,ep,ev,re,r,rp)
local loc=LOCATION_DECK+LOCATION_GRAVE local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g=nil local atk=math.abs(Duel.GetLP(0)-Duel.GetLP(1))
local s=0 Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local flag=0 local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423014.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp,ft,atk)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELECT)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then
g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423014.thfilter),tp,loc,0,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst() local tc=g:GetFirst()
e:SetLabelObject(tc) if tc then
s=Duel.SelectOption(tp,1190) local res=nil
end if ft>0 and tc:IsCanBeSpecialSummoned(e,0,tp,false,false)
and (not tc:IsAbleToHand() or Duel.SelectOption(tp,1190,1152)==1) then
res=Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
else else
g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423014.cfilter),tp,loc,0,1,1,nil,e,tp) res=Duel.SendtoHand(tc,nil,REASON_EFFECT)
if g:GetCount()>0 then
local tc=g:GetFirst()
e:SetLabelObject(tc)
local b1=tc:IsAbleToHand()
local b2=tc:IsCanBeSpecialSummoned(e,0,tp,false,false)
if b1 and not b2 then
s=Duel.SelectOption(tp,1190)
end
if not b1 and b2 then
s=Duel.SelectOption(tp,1152)+1
end
if b1 and b2 then
s=Duel.SelectOption(tp,1190,1152)
end
end
end
local tc=e:GetLabelObject()
if s==0 then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
if tc:IsLocation(LOCATION_HAND) then
flag=1
end end
end if res~=0 then
if s==1 then
flag=Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
if flag~=0 then
local gc=e:GetLabelObject()
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE) e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
e1:SetValue(c100423014.aclimit) e1:SetValue(c100423014.aclimit)
e1:SetLabel(gc:GetCode()) e1:SetLabel(tc:GetCode())
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
end
end end
function c100423014.aclimit(e,re,tp) function c100423014.aclimit(e,re,tp)
return re:GetHandler():IsCode(e:GetLabel()) return re:GetHandler():IsCode(e:GetLabel())
......
...@@ -38,7 +38,7 @@ function c100423015.initial_effect(c) ...@@ -38,7 +38,7 @@ function c100423015.initial_effect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_PHASE+PHASE_BATTLE_START) e5:SetCode(EVENT_PHASE+PHASE_BATTLE_START)
e5:SetRange(LOCATION_SZONE) e5:SetRange(LOCATION_SZONE)
e5:SetCountLimit(1) e5:SetCountLimit(1,100423015)
e5:SetTarget(c100423015.acttg) e5:SetTarget(c100423015.acttg)
e5:SetOperation(c100423015.actop) e5:SetOperation(c100423015.actop)
c:RegisterEffect(e5) c:RegisterEffect(e5)
...@@ -113,7 +113,7 @@ function c100423015.actop(e,tp,eg,ep,ev,re,r,rp) ...@@ -113,7 +113,7 @@ function c100423015.actop(e,tp,eg,ep,ev,re,r,rp)
end end
function c100423015.chacon(e,tp,eg,ep,ev,re,r,rp) function c100423015.chacon(e,tp,eg,ep,ev,re,r,rp)
local ec=e:GetHandler():GetEquipTarget() local ec=e:GetHandler():GetEquipTarget()
return Duel.GetAttacker()==ec and ec:IsRelateToBattle() and ec:IsStatus(STATUS_OPPO_BATTLE) return Duel.GetAttacker()==ec and ec:IsRelateToBattle() and ec:IsStatus(STATUS_OPPO_BATTLE) and ec:IsChainAttackable()
end end
function c100423015.chacost(e,tp,eg,ep,ev,re,r,rp,chk) function c100423015.chacost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
...@@ -121,7 +121,5 @@ function c100423015.chacost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -121,7 +121,5 @@ function c100423015.chacost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c100423015.chaop(e,tp,eg,ep,ev,re,r,rp) function c100423015.chaop(e,tp,eg,ep,ev,re,r,rp)
local ec=e:GetHandler():GetPreviousEquipTarget() local ec=e:GetHandler():GetPreviousEquipTarget()
if ec:IsChainAttackable() then
Duel.ChainAttack() Duel.ChainAttack()
end
end end
...@@ -19,13 +19,10 @@ function c100423016.cfilter(c,tp) ...@@ -19,13 +19,10 @@ function c100423016.cfilter(c,tp)
return (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE)) and c:IsSetCard(0x8) and c:IsType(TYPE_MONSTER) and c:IsAbleToRemoveAsCost() and Duel.GetMZoneCount(tp,c)>0 return (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE)) and c:IsSetCard(0x8) and c:IsType(TYPE_MONSTER) and c:IsAbleToRemoveAsCost() and Duel.GetMZoneCount(tp,c)>0
end end
function c100423016.spfilter(c,e,tp) function c100423016.spfilter(c,e,tp)
return c:IsSetCard(0x8) and c:IsCanBeSpecialSummoned(e,0,tp,true,false) return c:IsSetCard(0x8) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
end end
function c100423016.fselect(g,e,tp) function c100423016.fselect(g,e,tp)
if Duel.IsExistingTarget(c100423016.spfilter,tp,LOCATION_GRAVE,0,1,g,e,tp) then return Duel.IsExistingTarget(c100423016.spfilter,tp,LOCATION_GRAVE,0,1,g,e,tp)
Duel.SetSelectedCard(g)
return true
else return false end
end end
function c100423016.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c100423016.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c100423016.cfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,nil,tp) local g=Duel.GetMatchingGroup(c100423016.cfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,nil,tp)
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100423023.initial_effect(c) function c100423023.initial_effect(c)
--synchro summon
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddSynchroProcedure(c,nil,aux.NonTuner(Card.IsSynchroType,TYPE_SYNCHRO),1) aux.AddSynchroProcedure(c,nil,aux.NonTuner(Card.IsSynchroType,TYPE_SYNCHRO),1)
--destroy --destroy
...@@ -29,16 +30,16 @@ function c100423023.initial_effect(c) ...@@ -29,16 +30,16 @@ function c100423023.initial_effect(c)
e2:SetOperation(c100423023.spop) e2:SetOperation(c100423023.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
c100423023.synmat_syn=true c100423023.material_type=TYPE_SYNCHRO
function c100423023.descon(e,tp,eg,ep,ev,re,r,rp) function c100423023.descon(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 c100423023.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100423023.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local ct=Duel.GetMatchingGroupCount(Card.IsType,tp,LOCATION_GRAVE,0,nil,TYPE_SYNCHRO)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsControler(1-tp) end if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsControler(1-tp) end
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_GRAVE,0,1,nil,TYPE_SYNCHRO) and Duel.IsExistingTarget(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end if chk==0 then return ct>0 and Duel.IsExistingTarget(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
local gc=Duel.GetMatchingGroupCount(Card.IsType,tp,LOCATION_GRAVE,0,nil,TYPE_SYNCHRO)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,gc,nil) local g=Duel.SelectTarget(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,ct,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end end
function c100423023.desop(e,tp,eg,ep,ev,re,r,rp) function c100423023.desop(e,tp,eg,ep,ev,re,r,rp)
...@@ -57,26 +58,21 @@ end ...@@ -57,26 +58,21 @@ end
function c100423023.spfilter(c,e,tp) function c100423023.spfilter(c,e,tp)
return c:IsLevelBelow(8) and c:IsSetCard(0x66,0x1017,0xa3) and c:IsType(TYPE_SYNCHRO) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsLevelBelow(8) and c:IsSetCard(0x66,0x1017,0xa3) and c:IsType(TYPE_SYNCHRO) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c100423023.fselect(g)
if g:GetClassCount(Card.GetCode)==g:GetCount() then
Duel.SetSelectedCard(g)
return true
else return false end
end
function c100423023.spcon(e,tp,eg,ep,ev,re,r,rp) function c100423023.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
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 c100423023.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c100423023.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(c100423023.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c100423023.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,LOCATION_GRAVE)
end end
function c100423023.spop(e,tp,eg,ep,ev,re,r,rp) function c100423023.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c100423023.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp) local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c100423023.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
local mz=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if mz<=0 or g:GetCount()<=0 then return end if ft<=0 or g:GetCount()<=0 then return end
local count=math.min(mz,3) local ct=math.min(ft,3)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then count=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ct=1 end
local sg=g:SelectSubGroup(tp,c100423023.fselect,false,1,count) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ct)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end end
...@@ -27,10 +27,10 @@ function c100423024.initial_effect(c) ...@@ -27,10 +27,10 @@ function c100423024.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c100423024.dfilter(c) function c100423024.dfilter(c)
return c:IsType(TYPE_TUNER) and c:IsDiscardable() and c:IsAbleToGraveAsCost() return c:IsType(TYPE_TUNER) and c:IsDiscardable()
end end
function c100423024.thcost(e,tp,eg,ep,ev,re,r,rp,chk) function c100423024.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDiscardable() and e:GetHandler():IsAbleToGraveAsCost() if chk==0 then return e:GetHandler():IsDiscardable()
and Duel.IsExistingMatchingCard(c100423024.dfilter,tp,LOCATION_HAND,0,1,e:GetHandler()) end and Duel.IsExistingMatchingCard(c100423024.dfilter,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
local g=Duel.SelectMatchingCard(tp,c100423024.dfilter,tp,LOCATION_HAND,0,1,1,e:GetHandler()) local g=Duel.SelectMatchingCard(tp,c100423024.dfilter,tp,LOCATION_HAND,0,1,1,e:GetHandler())
...@@ -38,7 +38,7 @@ function c100423024.thcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -38,7 +38,7 @@ function c100423024.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoGrave(g,REASON_COST+REASON_DISCARD) Duel.SendtoGrave(g,REASON_COST+REASON_DISCARD)
end end
function c100423024.thfilter(c) function c100423024.thfilter(c)
return c:IsSetCard(0x1017) and c:IsAbleToHand() return c:IsSetCard(0x1017) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end end
function c100423024.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c100423024.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c100423024.thfilter,tp,LOCATION_DECK,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c100423024.thfilter,tp,LOCATION_DECK,0,1,nil) end
......
...@@ -35,7 +35,8 @@ function c100423025.spcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,7 +35,8 @@ function c100423025.spcon(e,tp,eg,ep,ev,re,r,rp)
end end
function c100423025.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c100423025.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end end
function c100423025.spop(e,tp,eg,ep,ev,re,r,rp) function c100423025.spop(e,tp,eg,ep,ev,re,r,rp)
...@@ -45,7 +46,7 @@ function c100423025.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -45,7 +46,7 @@ function c100423025.spop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c100423025.lvfilter(c) function c100423025.lvfilter(c)
return c:IsFaceup() and c:IsOriginalSetCard(0x66,0x1017,0xa3) and c:IsType(TYPE_SYNCHRO) return (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup()) and c:IsOriginalSetCard(0x66,0x1017,0xa3) and c:IsType(TYPE_SYNCHRO)
end end
function c100423025.lvcon(e,tp,eg,ep,ev,re,r,rp) function c100423025.lvcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c100423025.lvfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,1,nil) return Duel.IsExistingMatchingCard(c100423025.lvfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,1,nil)
......
...@@ -25,12 +25,11 @@ function c100423026.initial_effect(c) ...@@ -25,12 +25,11 @@ function c100423026.initial_effect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAINING) e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_SZONE) e3:SetRange(LOCATION_SZONE)
e3:SetCondition(c100423026.ccon)
e3:SetOperation(c100423026.ccop) e3:SetOperation(c100423026.ccop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c100423026.cfilter(c) function c100423026.cfilter(c)
return c:IsSummonType(SUMMON_TYPE_SYNCHRO) and c:IsType(TYPE_SYNCHRO) and (c:IsSetCard(0x66) or c:IsSetCard(0x1017) or c:IsSetCard(0xa3)) return c:IsSummonType(SUMMON_TYPE_SYNCHRO) and c:IsType(TYPE_SYNCHRO) and c:IsSetCard(0x66,0x1017,0xa3)
end end
function c100423026.spfilter(c,e,tp) function c100423026.spfilter(c,e,tp)
return c:IsLocation(LOCATION_GRAVE) and c:IsControler(tp) and c:IsCanBeEffectTarget(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) return c:IsLocation(LOCATION_GRAVE) and c:IsControler(tp) and c:IsCanBeEffectTarget(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
...@@ -41,7 +40,8 @@ end ...@@ -41,7 +40,8 @@ end
function c100423026.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100423026.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local mg=eg:Filter(c100423026.cfilter,nil):GetFirst():GetMaterial() local mg=eg:Filter(c100423026.cfilter,nil):GetFirst():GetMaterial()
if chkc then return mg:IsContains(chkc) and c100423026.spfilter(chkc,e,tp) end if chkc then return mg:IsContains(chkc) and c100423026.spfilter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and mg:IsExists(c100423026.spfilter,1,nil,e,tp) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and mg:IsExists(c100423026.spfilter,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=mg:FilterSelect(tp,c100423026.spfilter,1,1,nil,e,tp) local g=mg:FilterSelect(tp,c100423026.spfilter,1,1,nil,e,tp)
Duel.SetTargetCard(g) Duel.SetTargetCard(g)
...@@ -53,13 +53,12 @@ function c100423026.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -53,13 +53,12 @@ function c100423026.spop(e,tp,eg,ep,ev,re,r,rp)
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 c100423026.ccon(e,tp,eg,ep,ev,re,r,rp)
local tc=re:GetHandler()
return re:GetHandlerPlayer()==tp and tc:IsType(TYPE_SYNCHRO) and (tc:IsSetCard(0x66) or tc:IsSetCard(0x1017) or tc:IsSetCard(0xa3))
end
function c100423026.ccop(e,tp,eg,ep,ev,re,r,rp) function c100423026.ccop(e,tp,eg,ep,ev,re,r,rp)
local tc=re:GetHandler()
if ep==tp and tc:IsType(TYPE_SYNCHRO) and tc:IsOriginalSetCard(0x66,0x1017,0xa3) then
Duel.SetChainLimit(c100423026.chainlm) Duel.SetChainLimit(c100423026.chainlm)
end
end end
function c100423026.chainlm(e,ep,tp) function c100423026.chainlm(e,rp,tp)
return tp==ep return tp==rp
end end
...@@ -7,7 +7,6 @@ function c100423027.initial_effect(c) ...@@ -7,7 +7,6 @@ function c100423027.initial_effect(c)
e1:SetCategory(CATEGORY_NEGATE) e1:SetCategory(CATEGORY_NEGATE)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetCountLimit(1,100423027+EFFECT_COUNT_CODE_OATH) e1:SetCountLimit(1,100423027+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(c100423027.condition) e1:SetCondition(c100423027.condition)
e1:SetTarget(c100423027.target) e1:SetTarget(c100423027.target)
...@@ -15,10 +14,11 @@ function c100423027.initial_effect(c) ...@@ -15,10 +14,11 @@ function c100423027.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c100423027.filter(c) function c100423027.filter(c)
return (c.synmat_syn or c:IsCode(7841112,24696097,97489701,67030233,25165047,21123811,26268488,35952884,97836203,62242678,36857073,89907227,80896940,51447164,74892653,89474727,9753964,2743001,50954680,84305651)) and c:IsFaceup() return c:IsType(TYPE_SYNCHRO) and aux.IsMaterialListType(c,TYPE_SYNCHRO) and c:IsFaceup()
end end
function c100423027.condition(e,tp,eg,ep,ev,re,r,rp) function c100423027.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c100423027.filter,tp,LOCATION_MZONE,0,1,nil) and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev) and rp==1-tp return Duel.IsExistingMatchingCard(c100423027.filter,tp,LOCATION_MZONE,0,1,nil)
and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev) and rp==1-tp
end end
function c100423027.target(e,tp,eg,ep,ev,re,r,rp,chk) function c100423027.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100423034.initial_effect(c) function c100423034.initial_effect(c)
--xyz summon
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,4,2) aux.AddXyzProcedure(c,nil,4,2)
--spsummon --spsummon
...@@ -28,16 +29,17 @@ function c100423034.initial_effect(c) ...@@ -28,16 +29,17 @@ function c100423034.initial_effect(c)
e2:SetOperation(c100423034.atkop) e2:SetOperation(c100423034.atkop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c100423034.spfilter(c,e,tp)
return c:IsType(TYPE_XYZ) and not c:IsCode(100423034) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100423034.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c100423034.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 c100423034.spfilter(c,e,tp)
return c:IsType(TYPE_XYZ) and not c:IsCode(100423034) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100423034.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100423034.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c100423034.spfilter(chkc,e,tp) end if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c100423034.spfilter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingTarget(c100423034.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c100423034.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,c100423034.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectTarget(tp,c100423034.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)
...@@ -61,9 +63,6 @@ function c100423034.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,9 +63,6 @@ function c100423034.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
end end
end end
function c100423034.atkfilter(c)
return c:IsFaceup() and c:IsType(TYPE_XYZ) and not (c:GetAttack()==4000 and (c:IsDisabled() or not c:IsType(TYPE_EFFECT)))
end
function c100423034.atkcon(e,tp,eg,ep,ev,re,r,rp) function c100423034.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return c:IsSetCard(0x207f) and c:IsType(TYPE_XYZ) return c:IsSetCard(0x207f) and c:IsType(TYPE_XYZ)
...@@ -72,6 +71,9 @@ function c100423034.atkcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -72,6 +71,9 @@ function c100423034.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
end end
function c100423034.atkfilter(c)
return c:IsFaceup() and c:IsType(TYPE_XYZ) and (not c:IsAttack(4000) or aux.disfilter1(c))
end
function c100423034.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100423034.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c100423034.atkfilter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c100423034.atkfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c100423034.atkfilter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingTarget(c100423034.atkfilter,tp,LOCATION_MZONE,0,1,nil) end
......
...@@ -26,14 +26,15 @@ function c100423035.initial_effect(c) ...@@ -26,14 +26,15 @@ function c100423035.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c100423035.cfilter(c) function c100423035.cfilter(c)
return c:IsFaceup() and (c:IsSetCard(0x8f) or c:IsSetCard(0x54)) and not c:IsCode(100423035) return c:IsFaceup() and c:IsSetCard(0x8f,0x54) and not c:IsCode(100423035)
end end
function c100423035.spcon1(e,tp,eg,ep,ev,re,r,rp) function c100423035.spcon1(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetMatchingGroupCount(c100423035.cfilter,tp,LOCATION_MZONE,0,nil)>0 return Duel.IsExistingMatchingCard(c100423035.cfilter,tp,LOCATION_MZONE,0,1,nil)
end end
function c100423035.sptg1(e,tp,eg,ep,ev,re,r,rp,chk) function c100423035.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end end
function c100423035.spop1(e,tp,eg,ep,ev,re,r,rp) function c100423035.spop1(e,tp,eg,ep,ev,re,r,rp)
...@@ -43,11 +44,12 @@ function c100423035.spop1(e,tp,eg,ep,ev,re,r,rp) ...@@ -43,11 +44,12 @@ function c100423035.spop1(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c100423035.spfilter(c,e,tp) function c100423035.spfilter(c,e,tp)
return (c:IsSetCard(0x59) or c:IsSetCard(0x82)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x59,0x82) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c100423035.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100423035.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c100423035.spfilter(chkc,e,tp) end if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c100423035.spfilter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingTarget(c100423035.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c100423035.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,c100423035.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectTarget(tp,c100423035.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)
......
...@@ -28,7 +28,8 @@ function c100423036.spfilter(c,e,tp) ...@@ -28,7 +28,8 @@ function c100423036.spfilter(c,e,tp)
return c:IsSetCard(0x8f,0x54) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x8f,0x54) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c100423036.sptg1(e,tp,eg,ep,ev,re,r,rp,chk) function c100423036.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(c100423036.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c100423036.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end end
function c100423036.spop1(e,tp,eg,ep,ev,re,r,rp) function c100423036.spop1(e,tp,eg,ep,ev,re,r,rp)
...@@ -47,7 +48,8 @@ function c100423036.spcon2(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,7 +48,8 @@ function c100423036.spcon2(e,tp,eg,ep,ev,re,r,rp)
end end
function c100423036.sptg2(e,tp,eg,ep,ev,re,r,rp,chk) function c100423036.sptg2(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end end
function c100423036.spop2(e,tp,eg,ep,ev,re,r,rp) function c100423036.spop2(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -24,7 +24,7 @@ end ...@@ -24,7 +24,7 @@ end
function c100423038.activate(e,tp,eg,ep,ev,re,r,rp) function c100423038.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()
if not (tc:IsFaceup() and tc:IsRelateToEffect(e) and tc:IsControler(tp)) then return end if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) then return end
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_ATTACK_ALL) e1:SetCode(EFFECT_ATTACK_ALL)
...@@ -71,8 +71,7 @@ end ...@@ -71,8 +71,7 @@ end
function c100423038.damop(e,tp,eg,ep,ev,re,r,rp) function c100423038.damop(e,tp,eg,ep,ev,re,r,rp)
local bc=e:GetHandler():GetBattleTarget() local bc=e:GetHandler():GetBattleTarget()
if not bc then return end if not bc then return end
local dam=bc:GetBaseAttack() local dam=math.max(bc:GetBaseAttack(),0)
if dam<0 then dam=0 end
if dam>0 then if dam>0 then
Duel.Hint(HINT_CARD,0,100423038) Duel.Hint(HINT_CARD,0,100423038)
Duel.Damage(1-tp,dam,REASON_EFFECT) Duel.Damage(1-tp,dam,REASON_EFFECT)
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
--Scripted by mallu11 --Scripted by mallu11
function c100423045.initial_effect(c) function c100423045.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
--spsummon --spsummon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -45,15 +46,23 @@ end ...@@ -45,15 +46,23 @@ end
function c100423045.spfilter(c,tp,rp) function c100423045.spfilter(c,tp,rp)
return (c:IsReason(REASON_BATTLE) or (c:IsReason(REASON_EFFECT) and rp==1-tp)) and c:IsPreviousLocation(LOCATION_MZONE) return (c:IsReason(REASON_BATTLE) or (c:IsReason(REASON_EFFECT) and rp==1-tp)) and c:IsPreviousLocation(LOCATION_MZONE)
and c:GetPreviousControler()==tp and c:GetSummonLocation()==LOCATION_EXTRA and c:GetPreviousControler()==tp and c:GetSummonLocation()==LOCATION_EXTRA
and c:IsType(TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ) and c:IsFaceup() and bit.band(c:GetPreviousTypeOnField(),TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ)~=0 and c:IsPreviousPosition(POS_FACEUP)
end end
function c100423045.spcon(e,tp,eg,ep,ev,re,r,rp) function c100423045.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:GetCount()==1 and eg:IsExists(c100423045.spfilter,1,nil,tp,rp) return eg:GetCount()==1 and eg:IsExists(c100423045.spfilter,1,nil,tp,rp)
end end
function c100423045.spfilter2(c,e,tp)
if c:IsLocation(LOCATION_HAND+LOCATION_DECK) or (not c:IsLocation(LOCATION_GRAVE) and c:IsFacedown())
or not c:IsCanBeSpecialSummoned(e,0,tp,false,false) or c:IsControler(1-tp) then return false end
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if c:IsLocation(LOCATION_EXTRA) then
ft=Duel.GetLocationCountFromEx(tp)
end
return ft>0
end
function c100423045.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c100423045.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local ec=eg:GetFirst() local ec=eg:GetFirst()
if chk==0 then return ((ec:IsLocation(LOCATION_GRAVE+LOCATION_REMOVED) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0) if chk==0 then return c100423045.spfilter2(ec,e,tp) end
or (ec:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp)>0)) and ec:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetTargetCard(ec) Duel.SetTargetCard(ec)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,ec,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,ec,1,0,0)
end end
...@@ -83,12 +92,15 @@ function c100423045.metg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -83,12 +92,15 @@ function c100423045.metg(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_DECK,0,1,nil,TYPE_PENDULUM)) end and Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_DECK,0,1,nil,TYPE_PENDULUM)) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function c100423045.cfilter(c,type)
return c:IsFaceup() and c:IsType(type)
end
function c100423045.meop(e,tp,eg,ep,ev,re,r,rp) function c100423045.meop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=Duel.GetMatchingGroup(c100423045.mefilter1,tp,LOCATION_MZONE,0,c) local g=Duel.GetMatchingGroup(c100423045.mefilter1,tp,LOCATION_MZONE,0,c)
local b1=g:IsExists(Card.IsType,1,c,TYPE_FUSION) local b1=c:IsRelateToEffect(e) and g:IsExists(c100423045.cfilter,1,c,TYPE_FUSION)
local b2=g:IsExists(Card.IsType,1,c,TYPE_SYNCHRO) local b2=g:IsExists(c100423045.cfilter,1,c,TYPE_SYNCHRO)
local b3=g:IsExists(Card.IsType,1,c,TYPE_XYZ) local b3=c:IsRelateToEffect(e) and c:IsFaceup() and g:IsExists(c100423045.cfilter,1,c,TYPE_XYZ)
local b4=Duel.IsExistingMatchingCard(c100423045.mefilter2,tp,LOCATION_MZONE,0,1,e:GetHandler()) local b4=Duel.IsExistingMatchingCard(c100423045.mefilter2,tp,LOCATION_MZONE,0,1,e:GetHandler())
and Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_DECK,0,1,nil,TYPE_PENDULUM) and Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_DECK,0,1,nil,TYPE_PENDULUM)
if b1 then if b1 then
......
...@@ -26,14 +26,12 @@ function c100423046.initial_effect(c) ...@@ -26,14 +26,12 @@ function c100423046.initial_effect(c)
end end
function c100423046.cfilter(c,tp) function c100423046.cfilter(c,tp)
return c:IsAttribute(ATTRIBUTE_DARK) return c:IsAttribute(ATTRIBUTE_DARK)
and (c:GetSequence()>4 and Duel.IsExistingMatchingCard(c100423046.filter1,tp,LOCATION_MZONE,0,1,c,tp) and Duel.IsExistingMatchingCard(c100423046.filter1,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_MZONE,0,1,c,tp,c)
or (Duel.GetMZoneCount(tp,c)>0 and Duel.IsExistingMatchingCard(c100423046.filter2,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_MZONE,0,1,c)))
end end
function c100423046.filter1(c,tp) function c100423046.filter1(c,tp,mc)
return c:IsCode(53025096) and c:IsAbleToGrave() and c:IsFaceup() and Duel.GetMZoneCount(tp,c)>0 local g=Group.FromCards(c)
end if mc then g:AddCard(mc) end
function c100423046.filter2(c) return (c:IsLocation(LOCATION_HAND+LOCATION_DECK) or c:IsFaceup()) and c:IsCode(53025096) and c:IsAbleToGrave() and Duel.GetMZoneCount(tp,g)>0
return c:IsCode(53025096) and c:IsAbleToGrave() and (c:IsFaceup() or c:IsLocation(LOCATION_HAND+LOCATION_DECK))
end end
function c100423046.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c100423046.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,c100423046.cfilter,1,nil,tp) end if chk==0 then return Duel.CheckReleaseGroup(tp,c100423046.cfilter,1,nil,tp) end
...@@ -47,37 +45,31 @@ function c100423046.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -47,37 +45,31 @@ function c100423046.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c100423046.spop(e,tp,eg,ep,ev,re,r,rp) function c100423046.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then local g=Duel.SelectMatchingCard(tp,c100423046.filter1,tp,LOCATION_MZONE,0,1,1,nil,tp)
g=Duel.SelectMatchingCard(tp,c100423046.filter1,tp,LOCATION_MZONE,0,1,1,nil,tp) if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT)~=0 and g:GetFirst():IsLocation(LOCATION_GRAVE) and c:IsRelateToEffect(e) then
else
g=Duel.SelectMatchingCard(tp,c100423046.filter2,tp,LOCATION_MZONE+LOCATION_HAND+LOCATION_DECK,0,1,1,nil)
end
local tc=g:GetFirst()
if tc and Duel.SendtoGrave(tc,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_GRAVE) and c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end end
end end
function c100423046.spfilter(c,e,tp)
return c:IsSetCard(0x99) and not c:IsCode(100423046) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100423046.thfilter(c)
return c:IsCode(82768499) and c:IsAbleToHand()
end
function c100423046.thcon(e,tp,eg,ep,ev,re,r,rp) function c100423046.thcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return c:GetPreviousControler()==tp and c:IsReason(REASON_DESTROY) and rp==1-tp return c:GetPreviousControler()==tp and c:IsReason(REASON_DESTROY) and rp==1-tp
end end
function c100423046.spfilter(c,e,tp)
return c:IsSetCard(0x99) and not c:IsCode(100423046) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100423046.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c100423046.thtg(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(c100423046.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(c100423046.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) end
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)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function c100423046.thfilter(c)
return c:IsCode(82768499) and c:IsAbleToHand()
end
function c100423046.thop(e,tp,eg,ep,ev,re,r,rp) function c100423046.thop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.Hint(HINT_OPSELECTED,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423046.spfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100423046.spfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0
and Duel.IsExistingMatchingCard(c100423046.thfilter,tp,LOCATION_DECK,0,1,nil) and Duel.IsExistingMatchingCard(c100423046.thfilter,tp,LOCATION_DECK,0,1,nil)
......
...@@ -15,24 +15,18 @@ function c100423047.initial_effect(c) ...@@ -15,24 +15,18 @@ function c100423047.initial_effect(c)
end end
function c100423047.cfilter(c,e,tp,lsc,rsc) function c100423047.cfilter(c,e,tp,lsc,rsc)
local lv=c:GetLevel() local lv=c:GetLevel()
return (c:IsSetCard(0x9f) or (c:IsSetCard(0x98) and c:IsType(TYPE_PENDULUM)) or c:IsSetCard(0x99)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and lv>lsc and lv<rsc return (c:IsSetCard(0x9f,0x99) or (c:IsSetCard(0x98) and c:IsType(TYPE_PENDULUM))) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end and lv>0 and lv>lsc and lv<rsc
function c100423047.fselect(g)
if g:GetClassCount(Card.GetCode)==g:GetCount() then
Duel.SetSelectedCard(g)
return true
else return false end
end end
function c100423047.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c100423047.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local h=Duel.GetMatchingGroupCount(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,nil) local g=Duel.GetMatchingGroup(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,e:GetHandler())
if e:GetHandler():IsLocation(LOCATION_HAND) then h=h-1 end if chk==0 then return g:GetCount()>0 end
if chk==0 then return h>0 end local ct=1
local gc=1 for i=2,3 do
if Duel.IsPlayerCanDraw(tp,2) then gc=2 end if Duel.IsPlayerCanDraw(tp,i) then ct=i end
if Duel.IsPlayerCanDraw(tp,3) then gc=3 end end
local g=Duel.GetMatchingGroup(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local sg=g:Select(tp,1,gc,nil) local sg=g:Select(tp,1,ct,nil)
e:SetLabel(Duel.SendtoGrave(sg,REASON_COST)) e:SetLabel(Duel.SendtoGrave(sg,REASON_COST))
end end
function c100423047.target(e,tp,eg,ep,ev,re,r,rp,chk) function c100423047.target(e,tp,eg,ep,ev,re,r,rp,chk)
...@@ -46,23 +40,25 @@ end ...@@ -46,23 +40,25 @@ end
function c100423047.activate(e,tp,eg,ep,ev,re,r,rp) function c100423047.activate(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 ct=Duel.Draw(p,d,REASON_EFFECT) local ct=Duel.Draw(p,d,REASON_EFFECT)
local mz=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local flag=0 local res=false
if ct>0 and mz>0 and Duel.GetFieldCard(tp,LOCATION_PZONE,0) and Duel.GetFieldCard(tp,LOCATION_PZONE,1) then local lc=Duel.GetFieldCard(tp,LOCATION_PZONE,0)
local lsc=Duel.GetFieldCard(tp,LOCATION_PZONE,0):GetLeftScale() local rc=Duel.GetFieldCard(tp,LOCATION_PZONE,1)
local rsc=Duel.GetFieldCard(tp,LOCATION_PZONE,1):GetRightScale() if ct>0 and ft>0 and lc and rc then
local lsc=lc:GetLeftScale()
local rsc=rc:GetRightScale()
if lsc>rsc then lsc,rsc=rsc,lsc end if lsc>rsc then lsc,rsc=rsc,lsc end
if Duel.IsExistingMatchingCard(c100423047.cfilter,tp,LOCATION_HAND,0,1,nil,e,tp,lsc,rsc) and Duel.SelectYesNo(tp,aux.Stringid(100423047,0)) then if Duel.IsExistingMatchingCard(c100423047.cfilter,tp,LOCATION_HAND,0,1,nil,e,tp,lsc,rsc) and Duel.SelectYesNo(tp,aux.Stringid(100423047,0)) then
Duel.BreakEffect() Duel.BreakEffect()
local count=math.min(ct,mz) ct=math.min(ct,ft)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then count=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ct=1 end
local g=Duel.GetMatchingGroup(c100423047.cfilter,tp,LOCATION_HAND,0,nil,e,tp,lsc,rsc) local g=Duel.GetMatchingGroup(c100423047.cfilter,tp,LOCATION_HAND,0,nil,e,tp,lsc,rsc)
local sg=g:SelectSubGroup(tp,c100423047.fselect,false,1,count,tp) local sg=g:SelectSubGroup(tp,aux.dncheck,false,1,ct)
flag=Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP) res=Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end end
end end
if flag==0 then if not res then
local h=Duel.GetFieldGroupCount(tp,LOCATION_HAND,0) local lp=Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
Duel.SetLP(tp,Duel.GetLP(tp)-h*1000) Duel.SetLP(tp,Duel.GetLP(tp)-lp*1000)
end end
end end
...@@ -7,6 +7,7 @@ function c100423048.initial_effect(c) ...@@ -7,6 +7,7 @@ function c100423048.initial_effect(c)
e1:SetCategory(CATEGORY_REMOVE) e1:SetCategory(CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c100423048.target)
e1:SetOperation(c100423048.activate) e1:SetOperation(c100423048.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--disable attack --disable attack
...@@ -18,65 +19,87 @@ function c100423048.initial_effect(c) ...@@ -18,65 +19,87 @@ function c100423048.initial_effect(c)
e2:SetTarget(c100423048.atktg) e2:SetTarget(c100423048.atktg)
e2:SetOperation(c100423048.atkop) e2:SetOperation(c100423048.atkop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
e1:SetLabelObject(e2) local ng=Group.CreateGroup()
ng:KeepAlive()
e1:SetLabelObject(ng)
e2:SetLabelObject(ng)
end end
function c100423048.rmfilter(c) function c100423048.target(e,tp,eg,ep,ev,re,r,rp,chk)
return c:IsType(TYPE_SPELL) and c:IsAbleToRemove() if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,PLAYER_ALL,LOCATION_GRAVE)
end
function c100423048.rmfilter(c,tp)
return c:IsType(TYPE_SPELL) and c:IsAbleToRemove(tp)
end end
function c100423048.activate(e,tp,eg,ep,ev,re,r,rp) function c100423048.activate(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end local c=e:GetHandler()
local g1=Duel.GetMatchingGroup(c100423048.rmfilter,tp,LOCATION_GRAVE,0,nil) local g=Group.CreateGroup()
local g2=Duel.GetMatchingGroup(c100423048.rmfilter,tp,0,LOCATION_GRAVE,nil) local g1=Duel.GetMatchingGroup(aux.NecroValleyFilter(c100423048.rmfilter),tp,LOCATION_GRAVE,0,nil,tp)
local sg=Group.CreateGroup() local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(c100423048.rmfilter),tp,0,LOCATION_GRAVE,nil,1-tp)
if g1:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(100423048,0)) then if g1:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(100423048,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg1=g1:Select(tp,1,5,nil) local sg1=g1:Select(tp,1,5,nil)
sg:Merge(sg1) g:Merge(sg1)
end end
if g2:GetCount()>0 and Duel.SelectYesNo(1-tp,aux.Stringid(100423048,0)) then if g2:GetCount()>0 and Duel.SelectYesNo(1-tp,aux.Stringid(100423048,0)) then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_REMOVE)
local sg2=g2:Select(1-tp,1,5,nil) local sg2=g2:Select(1-tp,1,5,nil)
sg:Merge(sg2) g:Merge(sg2)
end
if g:GetCount()>0 then
Duel.Remove(g,POS_FACEDOWN,REASON_EFFECT)
local og=Duel.GetOperatedGroup()
if og:GetCount()==0 then return end
local sg=e:GetLabelObject()
if c:GetFlagEffect(100423048)==0 then
sg:Clear()
c:RegisterFlagEffect(100423048,RESET_EVENT+RESETS_STANDARD,0,1)
end
local tc=og:GetFirst()
while tc do
if tc:IsLocation(LOCATION_REMOVED) then
sg:AddCard(tc)
tc:CreateRelation(c,RESET_EVENT+RESETS_STANDARD)
end
tc=og:GetNext()
end end
else
local sg=e:GetLabelObject()
if sg:GetCount()>0 then if sg:GetCount()>0 then
Duel.Remove(sg,POS_FACEDOWN,REASON_EFFECT) sg:Clear()
local rg=sg:Filter(Card.IsLocation,nil,LOCATION_REMOVED)
rg:KeepAlive()
e:GetLabelObject():SetLabelObject(rg)
local rc=rg:GetFirst()
while rc do
rc:RegisterFlagEffect(100423048,RESET_EVENT+RESETS_STANDARD,0,1)
rc=rg:GetNext()
end end
end end
end end
function c100423048.thfilter(c,p)
return c:GetFlagEffect(100423048)>0 and c:IsControler(p) and c:IsAbleToHand()
end
function c100423048.atktg(e,tp,eg,ep,ev,re,r,rp,chk) function c100423048.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local p=1-ep local p=1-ep
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,p,LOCATION_REMOVED) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,p,LOCATION_REMOVED)
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,1,p,LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,1,p,LOCATION_HAND)
end end
function c100423048.thfilter(c,rc,p)
return c:IsRelateToCard(rc) and c:IsControler(p) and c:IsAbleToHand()
end
function c100423048.atkop(e,tp,eg,ep,ev,re,r,rp) function c100423048.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:GetFlagEffect(100423048)==0 then return end
local p=1-ep local p=1-ep
local g=e:GetLabelObject():Filter(c100423048.thfilter,nil,p) local g=e:GetLabelObject():Filter(c100423048.thfilter,nil,c,p)
if g:GetCount()>0 and Duel.SelectYesNo(p,aux.Stringid(100423048,1)) then if g:GetCount()>0 and Duel.SelectYesNo(p,aux.Stringid(100423048,1)) then
local flag=false local res=false
local sg=g:RandomSelect(1-p,1) local sg=g:RandomSelect(1-p,1)
local sc=sg:GetFirst() local tc=sg:GetFirst()
if Duel.SendtoHand(sc,nil,REASON_EFFECT)~=0 and sc:IsLocation(LOCATION_HAND) and sc:IsControler(p) then if Duel.SendtoHand(tc,nil,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_HAND) then
Duel.ConfirmCards(1-p,sc) Duel.ConfirmCards(1-p,tc)
if sc:IsDiscardable() and Duel.SelectYesNo(p,aux.Stringid(100423048,2)) then if tc:IsControler(p) and tc:IsDiscardable(REASON_EFFECT) and Duel.SelectYesNo(p,aux.Stringid(100423048,2)) then
flag=true
Duel.BreakEffect() Duel.BreakEffect()
Duel.SendtoGrave(sc,REASON_EFFECT+REASON_DISCARD) if Duel.SendtoGrave(tc,REASON_EFFECT+REASON_DISCARD)~=0 then
res=true
Duel.NegateAttack() Duel.NegateAttack()
end end
end end
if flag==false then end
local e1=Effect.CreateEffect(e:GetHandler()) if not res then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CHANGE_DAMAGE) e1:SetCode(EFFECT_CHANGE_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
......
...@@ -49,7 +49,7 @@ function c100423049.valcheck(e,c) ...@@ -49,7 +49,7 @@ function c100423049.valcheck(e,c)
end end
end end
function c100423049.effcon(e,tp,eg,ep,ev,re,r,rp) function c100423049.effcon(e,tp,eg,ep,ev,re,r,rp)
return eg:GetCount()==1 and eg:GetFirst():IsType(e:GetLabel()) and eg:GetFirst():GetFlagEffect(100423049)~=0 return eg:GetCount()==1 and eg:GetFirst():IsFaceup() and eg:GetFirst():IsType(e:GetLabel()) and eg:GetFirst():GetFlagEffect(100423049)~=0
end end
function c100423049.spfilter(c,e,tp,lv) function c100423049.spfilter(c,e,tp,lv)
local lvl=c:GetOriginalLevel() local lvl=c:GetOriginalLevel()
...@@ -64,7 +64,7 @@ end ...@@ -64,7 +64,7 @@ end
function c100423049.spop(e,tp,eg,ep,ev,re,r,rp) function c100423049.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,100423049)~=0 then return end if Duel.GetFlagEffect(tp,100423049)~=0 then return end
local c=e:GetHandler() local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then if eg:GetFirst():IsFaceup() and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
local g=Duel.SelectMatchingCard(tp,c100423049.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,eg:GetFirst():GetOriginalLevel()) local g=Duel.SelectMatchingCard(tp,c100423049.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,eg:GetFirst():GetOriginalLevel())
local tc=g:GetFirst() local tc=g:GetFirst()
if tc and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE) then if tc and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE) then
...@@ -110,7 +110,7 @@ function c100423049.thtg2(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -110,7 +110,7 @@ function c100423049.thtg2(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.GetFlagEffect(tp,100423249)==0 end and Duel.GetFlagEffect(tp,100423249)==0 end
end end
function c100423049.thop2(e,tp,eg,ep,ev,re,r,rp) function c100423049.thop2(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,100423249)~=0 then return end if Duel.GetFlagEffect(tp,100423249)~=0 or eg:GetFirst():IsFacedown() then return end
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c100423049.thfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp,ft,eg:GetFirst():GetRank()) local g=Duel.SelectMatchingCard(tp,c100423049.thfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp,ft,eg:GetFirst():GetRank())
......
...@@ -60,9 +60,6 @@ function c101012001.lvop(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,9 +60,6 @@ function c101012001.lvop(e,tp,eg,ep,ev,re,r,rp)
e3:SetValue(c:GetBaseDefense()/2) e3:SetValue(c:GetBaseDefense()/2)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c101012001.filter(c)
return c:IsFaceup() and c:IsType(TYPE_LINK)
end
function c101012001.cfilter1(c,tp) function c101012001.cfilter1(c,tp)
return c:IsFaceup() and c:IsSummonType(SUMMON_TYPE_LINK) and c:GetSummonPlayer()==tp return c:IsFaceup() and c:IsSummonType(SUMMON_TYPE_LINK) and c:GetSummonPlayer()==tp
end end
...@@ -70,28 +67,21 @@ function c101012001.spcon1(e,tp,eg,ep,ev,re,r,rp) ...@@ -70,28 +67,21 @@ function c101012001.spcon1(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c101012001.cfilter1,1,nil,tp) return eg:IsExists(c101012001.cfilter1,1,nil,tp)
end end
function c101012001.sptg1(e,tp,eg,ep,ev,re,r,rp,chk) function c101012001.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(c101012001.filter,tp,LOCATION_MZONE,0,nil) if eg:GetCount()~=1 then return false end
if g:GetCount()<=0 then return false end local tc=eg:GetFirst()
local zone=0 local zone=bit.band(tc:GetLinkedZone(tp),0x1f)
for tc in aux.Next(g) do
zone=bit.bor(zone,tc:GetLinkedZone(tp))
end
zone=bit.band(zone,0x1f)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone) end
Duel.SetTargetCard(tc)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end end
function c101012001.spop1(e,tp,eg,ep,ev,re,r,rp) function c101012001.spop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
local g=Duel.GetMatchingGroup(c101012001.filter,tp,LOCATION_MZONE,0,nil) local tc=Duel.GetFirstTarget()
if g:GetCount()<=0 then return end if not tc:IsRelateToEffect(e) then return end
local zone=0 local zone=bit.band(tc:GetLinkedZone(tp),0x1f)
for tc in aux.Next(g) do
zone=bit.bor(zone,tc:GetLinkedZone(tp))
end
zone=bit.band(zone,0x1f)
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP,zone) Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP,zone)
end end
end end
......
...@@ -28,7 +28,7 @@ function c101012049.tktg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -28,7 +28,7 @@ function c101012049.tktg(e,tp,eg,ep,ev,re,r,rp,chk)
local mg=e:GetHandler():GetMaterial() local mg=e:GetHandler():GetMaterial()
if mg:GetCount()~=1 then return false end if mg:GetCount()~=1 then return false end
if chk==0 then return mg:IsExists(Card.IsType,1,nil,TYPE_LINK) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return mg:IsExists(Card.IsType,1,nil,TYPE_LINK) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,101012149,0,0x4011,0,0,1,RACE_CYBERSE,ATTRIBUTE_LIGHT) end and Duel.IsPlayerCanSpecialSummonMonster(tp,48068379,0,0x4011,0,0,1,RACE_CYBERSE,ATTRIBUTE_LIGHT) end
e:SetLabel(mg:GetFirst():GetLink()) e:SetLabel(mg:GetFirst():GetLink())
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
...@@ -36,7 +36,7 @@ end ...@@ -36,7 +36,7 @@ end
function c101012049.tkop(e,tp,eg,ep,ev,re,r,rp) function c101012049.tkop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local ct=e:GetLabel() local ct=e:GetLabel()
if ft<=0 or ct<=0 or not Duel.IsPlayerCanSpecialSummonMonster(tp,101012149,0,0x4011,0,0,1,RACE_CYBERSE,ATTRIBUTE_LIGHT) then return end if ft>0 and ct>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,48068379,0,0x4011,0,0,1,RACE_CYBERSE,ATTRIBUTE_LIGHT) then
local count=math.min(ft,ct) local count=math.min(ft,ct)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then count=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then count=1 end
repeat repeat
...@@ -45,6 +45,7 @@ function c101012049.tkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -45,6 +45,7 @@ function c101012049.tkop(e,tp,eg,ep,ev,re,r,rp)
count=count-1 count=count-1
until count==0 or not Duel.SelectYesNo(tp,210) until count==0 or not Duel.SelectYesNo(tp,210)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
end
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL) e1:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
......
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