Commit d96d1096 authored by nanahira's avatar nanahira

fixes

parent 363cdbbf
--动物朋友 PPP×动物饼干 --动物朋友 PPP×动物饼干
function c33700062.initial_effect(c) function c33700062.initial_effect(c)
c:EnableUnsummonable()
--special summon condition --special summon condition
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
--动物朋友 槌蛇 --动物朋友 槌蛇
function c33700074.initial_effect(c) function c33700074.initial_effect(c)
c:EnableUnsummonable()
--special summon --special summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
......
...@@ -5,7 +5,6 @@ if not RSTFVal then ...@@ -5,7 +5,6 @@ if not RSTFVal then
RSTFVal=RSTFVal or {} RSTFVal=RSTFVal or {}
tfrsv=RSTFVal tfrsv=RSTFVal
function tfrsv.SSLimitEffect(c) function tfrsv.SSLimitEffect(c)
c:EnableUnsummonable()
--spsummon condition --spsummon condition
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
--克罗萨斯·马格纳 --克罗萨斯·马格纳
local m=47570400
local c47570400=_G["c"..m]
function c47570400.initial_effect(c) function c47570400.initial_effect(c)
--fusion material --fusion material
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddFusionProcCodeFun(c,c47570400.fusfilter1,aux.FilterBoolFunction(Card.IsFusionAttribute,ATTRIBUTE_FIRE),1,true,true) aux.AddFusionProcCodeFun(c,c47570400.fusfilter1,aux.FilterBoolFunction(Card.IsFusionAttribute,ATTRIBUTE_FIRE),1,true,true)
aux.EnablePendulumAttribute(c,false) aux.EnablePendulumAttribute(c,false)
--special summon rule --special summon rule
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD) e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC) e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE) e0:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e0:SetRange(LOCATION_EXTRA) e0:SetRange(LOCATION_EXTRA)
e0:SetValue(SUMMON_TYPE_FUSION) e0:SetValue(SUMMON_TYPE_FUSION)
e0:SetCondition(c47570400.sprcon) e0:SetCondition(c47570400.sprcon)
e0:SetOperation(c47570400.sprop) e0:SetOperation(c47570400.sprop)
c:RegisterEffect(e0) c:RegisterEffect(e0)
--splimit --splimit
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_PZONE) e1:SetRange(LOCATION_PZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
e1:SetTarget(c47570400.psplimit) e1:SetTarget(c47570400.psplimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--inactivatable --inactivatable
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_INACTIVATE) e2:SetCode(EFFECT_CANNOT_INACTIVATE)
e2:SetRange(LOCATION_PZONE) e2:SetRange(LOCATION_PZONE)
e2:SetValue(c47570400.effectfilter) e2:SetValue(c47570400.effectfilter)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_DISEFFECT) e3:SetCode(EFFECT_CANNOT_DISEFFECT)
e3:SetRange(LOCATION_PZONE) e3:SetRange(LOCATION_PZONE)
e3:SetValue(c47570400.effectfilter) e3:SetValue(c47570400.effectfilter)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--destroy --destroy
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(47570400,0)) e4:SetDescription(aux.Stringid(47570400,0))
e4:SetCategory(CATEGORY_TOGRAVE) e4:SetCategory(CATEGORY_TOGRAVE)
e4:SetType(EFFECT_TYPE_QUICK_O) e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetCode(EVENT_FREE_CHAIN) e4:SetCode(EVENT_FREE_CHAIN)
e4:SetCountLimit(1) e4:SetCountLimit(1)
e4:SetCost(c47570400.rmcost) e4:SetCost(c47570400.rmcost)
e4:SetTarget(c47570400.tgtg) e4:SetTarget(c47570400.tgtg)
e4:SetOperation(c47570400.tgop) e4:SetOperation(c47570400.tgop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--negate --negate
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(47570400,2)) e5:SetDescription(aux.Stringid(47570400,2))
e5:SetType(EFFECT_TYPE_QUICK_O) e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCode(EVENT_CHAINING) e5:SetCode(EVENT_CHAINING)
e5:SetCountLimit(1) e5:SetCountLimit(1)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL) e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e5:SetRange(LOCATION_MZONE) e5:SetRange(LOCATION_MZONE)
e5:SetCondition(c47570400.chcon) e5:SetCondition(c47570400.chcon)
e5:SetTarget(c47570400.chtg) e5:SetTarget(c47570400.chtg)
e5:SetOperation(c47570400.chop) e5:SetOperation(c47570400.chop)
c:RegisterEffect(e5) c:RegisterEffect(e5)
--specialsummon --specialsummon
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(47570400,1)) e6:SetDescription(aux.Stringid(47570400,1))
e6:SetCategory(CATEGORY_SPECIAL_SUMMON) e6:SetCategory(CATEGORY_SPECIAL_SUMMON)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_REMOVE) e6:SetCode(EVENT_REMOVE)
e6:SetProperty(EFFECT_FLAG_DELAY) e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetRange(LOCATION_MZONE) e6:SetRange(LOCATION_MZONE)
e6:SetCountLimit(1) e6:SetCountLimit(1)
e6:SetCondition(c47570400.rmcon) e6:SetCondition(c47570400.rmcon)
e6:SetCost(c47570400.spcost) e6:SetCost(c47570400.spcost)
e6:SetTarget(c47570400.sptg) e6:SetTarget(c47570400.sptg)
e6:SetOperation(c47570400.spop) e6:SetOperation(c47570400.spop)
c:RegisterEffect(e6) c:RegisterEffect(e6)
end end
function c47570400.fusfilter1(c) function c47570400.fusfilter1(c)
return c:IsRace(RACE_PYRO) return c:IsRace(RACE_PYRO)
end end
function c47570400.cfilter(c) function c47570400.cfilter(c)
return (c:IsRace(RACE_PYRO) or c:IsFusionAttribute(ATTRIBUTE_FIRE)) return (c:IsRace(RACE_PYRO) or c:IsFusionAttribute(ATTRIBUTE_FIRE))
and c:IsCanBeFusionMaterial() and c:IsReleasable() and c:IsCanBeFusionMaterial() and c:IsReleasable()
end end
function c47570400.spfilter1(c,tp,g) function c47570400.spfilter1(c,tp,g)
return g:IsExists(c47570400.spfilter2,1,c,tp,c) return g:IsExists(c47570400.spfilter2,1,c,tp,c)
end end
function c47570400.spfilter2(c,tp,mc) function c47570400.spfilter2(c,tp,mc)
return (c:IsRace(RACE_PYRO) and mc:IsFusionAttribute(ATTRIBUTE_FIRE) return (c:IsRace(RACE_PYRO) and mc:IsFusionAttribute(ATTRIBUTE_FIRE)
or c:IsFusionAttribute(ATTRIBUTE_FIRE) and mc:IsRace(RACE_PYRO)) or c:IsFusionAttribute(ATTRIBUTE_FIRE) and mc:IsRace(RACE_PYRO))
and Duel.GetLocationCountFromEx(tp,tp,Group.FromCards(c,mc))>0 and Duel.GetLocationCountFromEx(tp,tp,Group.FromCards(c,mc))>0
end end
function c47570400.sprcon(e,c) function c47570400.sprcon(e,c)
if c==nil then return true end if c==nil then return true end
local tp=c:GetControler() local tp=c:GetControler()
local g=Duel.GetMatchingGroup(c47570400.cfilter,tp,LOCATION_ONFIELD,0,nil) local g=Duel.GetMatchingGroup(c47570400.cfilter,tp,LOCATION_ONFIELD,0,nil)
return g:IsExists(c47570400.spfilter1,1,nil,tp,g) return g:IsExists(c47570400.spfilter1,1,nil,tp,g)
end end
function c47570400.sprop(e,tp,eg,ep,ev,re,r,rp,c) function c47570400.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.GetMatchingGroup(c47570400.cfilter,tp,LOCATION_ONFIELD,0,nil) local g=Duel.GetMatchingGroup(c47570400.cfilter,tp,LOCATION_ONFIELD,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g1=g:FilterSelect(tp,c47570400.spfilter1,1,1,nil,tp,g) local g1=g:FilterSelect(tp,c47570400.spfilter1,1,1,nil,tp,g)
local mc=g1:GetFirst() local mc=g1:GetFirst()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g2=g:FilterSelect(tp,c47570400.spfilter2,1,1,mc,tp,mc) local g2=g:FilterSelect(tp,c47570400.spfilter2,1,1,mc,tp,mc)
g1:Merge(g2) g1:Merge(g2)
local cg=g1:Filter(Card.IsFacedown,nil) local cg=g1:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then if cg:GetCount()>0 then
Duel.ConfirmCards(1-tp,cg) Duel.ConfirmCards(1-tp,cg)
end end
Duel.Release(g1,REASON_COST+REASON_MATERIAL+REASON_FUSION) Duel.Release(g1,REASON_COST+REASON_MATERIAL+REASON_FUSION)
end end
function c47570400.pefilter(c) function c47570400.pefilter(c)
return c:IsRace(RACE_MACHINE) or c:IsSetCard(0x5da) or c:IsAttribute(ATTRIBUTE_FIRE) return c:IsRace(RACE_MACHINE) or c:IsSetCard(0x5da) or c:IsAttribute(ATTRIBUTE_FIRE)
end end
function c47570400.psplimit(e,c,tp,sumtp,sumpos) function c47570400.psplimit(e,c,tp,sumtp,sumpos)
return not c47570400.pefilter(c) and bit.band(sumtp,SUMMON_TYPE_PENDULUM)==SUMMON_TYPE_PENDULUM return not c47570400.pefilter(c) and bit.band(sumtp,SUMMON_TYPE_PENDULUM)==SUMMON_TYPE_PENDULUM
end end
function c47570400.effectfilter(e,ct) function c47570400.effectfilter(e,ct)
local p=e:GetHandler():GetControler() local p=e:GetHandler():GetControler()
local te,tp,loc=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER,CHAININFO_TRIGGERING_LOCATION) local te,tp,loc=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER,CHAININFO_TRIGGERING_LOCATION)
return p==tp and te:GetHandler():IsAttribute(ATTRIBUTE_FIRE) and re:IsActiveType(TYPE_MONSTER) return p==tp and te:GetHandler():IsAttribute(ATTRIBUTE_FIRE) and re:IsActiveType(TYPE_MONSTER)
end end
function c47570400.ccfilter(c,e,tp) function c47570400.ccfilter(c,e,tp)
return c:IsAttribute(ATTRIBUTE_FIRE) return c:IsAttribute(ATTRIBUTE_FIRE)
end end
function c47570400.rmcost(e,tp,eg,ep,ev,re,r,rp,chk) function c47570400.rmcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c47570400.ccfilter,tp,LOCATION_MZONE,0,1,e:GetHandler()) end if chk==0 then return Duel.IsExistingMatchingCard(c47570400.ccfilter,tp,LOCATION_MZONE,0,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINGMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINGMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c47570400.ccfilter,tp,LOCATION_MZONE,0,1,1,e:GetHandler()) local g=Duel.SelectMatchingCard(tp,c47570400.ccfilter,tp,LOCATION_MZONE,0,1,1,e:GetHandler())
local tc=g:GetFirst() local tc=g:GetFirst()
if Duel.Remove(tc,POS_FACEUP,REASON_COST+REASON_TEMPORARY)~=0 then if Duel.Remove(tc,POS_FACEUP,REASON_COST+REASON_TEMPORARY)~=0 then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetLabelObject(tc) e1:SetLabelObject(tc)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetOperation(c47570400.retop) e1:SetOperation(c47570400.retop)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
end end
function c47570400.retop(e,tp,eg,ep,ev,re,r,rp) function c47570400.retop(e,tp,eg,ep,ev,re,r,rp)
Duel.ReturnToField(e:GetLabelObject()) Duel.ReturnToField(e:GetLabelObject())
end end
function c47570400.gfilter(c) function c47570400.gfilter(c)
return c:IsFaceup() return c:IsFaceup()
end end
function c47570400.tgtg(e,tp,eg,ep,ev,re,r,rp,chk) function c47570400.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingTarget(c47570400.gfilter,tp,0,LOCATION_MZONE,1,e:GetHandler()) end if chk==0 then return Duel.IsExistingTarget(c47570400.gfilter,tp,0,LOCATION_MZONE,1,e:GetHandler()) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,1-tp,LOCATION_ONFIELD) Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,1-tp,LOCATION_ONFIELD)
end end
function c47570400.tgop(e,tp,eg,ep,ev,re,r,rp) function c47570400.tgop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,c47570400.gfilter,tp,0,LOCATION_MZONE,1,1,nil) local g=Duel.SelectMatchingCard(tp,c47570400.gfilter,tp,0,LOCATION_MZONE,1,1,nil)
local dg=Group.CreateGroup() local dg=Group.CreateGroup()
local tc=g:GetFirst() local tc=g:GetFirst()
local c=e:GetHandler() local c=e:GetHandler()
while tc do while tc do
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_UPDATE_DEFENSE) e3:SetCode(EFFECT_UPDATE_DEFENSE)
e3:SetValue(-3000) e3:SetValue(-3000)
e3:SetReset(RESET_EVENT+RESETS_STANDARD) e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3) tc:RegisterEffect(e3)
if predef~=0 and (tc:IsDefense(0) or tc:IsType(TYPE_LINK)) then dg:AddCard(tc) end if predef~=0 and (tc:IsDefense(0) or tc:IsType(TYPE_LINK)) then dg:AddCard(tc) end
tc=g:GetNext() tc=g:GetNext()
end end
Duel.Remove(dg,POS_FACEDOWN,REASON_RULE) Duel.Remove(dg,POS_FACEDOWN,REASON_RULE)
end end
function c47570400.chcon(e,tp,eg,ep,ev,re,r,rp) function c47570400.chcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) return rp==1-tp and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED)
end end
function c47570400.chtg(e,tp,eg,ep,ev,re,r,rp,chk) function c47570400.chtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,rp,0,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,rp,0,LOCATION_ONFIELD,1,nil) end
end end
function c47570400.chop(e,tp,eg,ep,ev,re,r,rp) function c47570400.chop(e,tp,eg,ep,ev,re,r,rp)
local g=Group.CreateGroup() local g=Group.CreateGroup()
Duel.ChangeTargetCard(ev,g) Duel.ChangeTargetCard(ev,g)
Duel.ChangeChainOperation(ev,c47570400.repop) Duel.ChangeChainOperation(ev,c47570400.repop)
end end
function c47570400.repop(e,tp,eg,ep,ev,re,r,rp) function c47570400.repop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsType(TYPE_SPELL+TYPE_TRAP) then if c:IsType(TYPE_SPELL+TYPE_TRAP) then
c:CancelToGrave(false) c:CancelToGrave(false)
end end
Duel.Hint(HINT_SELECTMSG,tp,HINGMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINGMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c47570400.ccfilter,tp,LOCATION_MZONE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c47570400.ccfilter,tp,0,LOCATION_MZONE,1,1,nil)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc and Duel.Remove(tc,POS_FACEUP,REASON_COST+REASON_TEMPORARY)~=0 then
Duel.Remove(tc,POS_FACEUP,REASON_COST+REASON_TEMPORARY)~=0 local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetLabelObject(tc)
e1:SetLabelObject(tc) e1:SetCountLimit(1)
e1:SetCountLimit(1) e1:SetOperation(c47570400.retop)
e1:SetOperation(c47570400.retop) Duel.RegisterEffect(e1,tp)
Duel.RegisterEffect(e1,tp) end
end
end end
function c47570400.rmcfilter(c,tp) function c47570400.rmcfilter(c,tp)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_FIRE) return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_FIRE)
end end
function c47570400.rmcon(e,tp,eg,ep,ev,re,r,rp) function c47570400.rmcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c47570400.rmcfilter,1,e:GetHandler(),tp) and e:GetHandler():IsSummonType(SUMMON_TYPE_FUSION) return eg:IsExists(c47570400.rmcfilter,1,e:GetHandler(),tp) and e:GetHandler():IsSummonType(SUMMON_TYPE_FUSION)
end end
function c47570400.spfilter(c,e,tp) function c47570400.spfilter(c,e,tp)
return c:IsAttribute(ATTRIBUTE_FIRE) and c:IsType(TYPE_PENDULUM) and c:IsLevel(9) and c:IsType(TYPE_SYNCHRO) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false) return c:IsAttribute(ATTRIBUTE_FIRE) and c:IsType(TYPE_PENDULUM) and c:IsLevel(9) and c:IsType(TYPE_SYNCHRO) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false)
end end
function c47570400.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c47570400.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() end if chk==0 then return e:GetHandler():IsReleasable() end
Duel.Release(e:GetHandler(),REASON_COST) Duel.Release(e:GetHandler(),REASON_COST)
end end
function c47570400.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c47570400.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c47570400.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end if chk==0 then return Duel.IsExistingMatchingCard(c47570400.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 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 c47570400.spop(e,tp,eg,ep,ev,re,r,rp) function c47570400.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCountFromEx(tp) local ft=Duel.GetLocationCountFromEx(tp)
if ft<=0 or not aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL) then return end if ft<=0 or not aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c47570400.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c47570400.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SpecialSummon(g,SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP)
end end
end end
\ No newline at end of file
...@@ -14,7 +14,7 @@ function c81010045.initial_effect(c) ...@@ -14,7 +14,7 @@ function c81010045.initial_effect(c)
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,95238395) e2:SetCountLimit(1,81010945)
e2:SetCondition(aux.exccon) e2:SetCondition(aux.exccon)
e2:SetCost(aux.bfgcost) e2:SetCost(aux.bfgcost)
e2:SetTarget(c81010045.thtg) e2:SetTarget(c81010045.thtg)
......
...@@ -36,6 +36,7 @@ function c81012046.initial_effect(c) ...@@ -36,6 +36,7 @@ function c81012046.initial_effect(c)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(2,81012046) e4:SetCountLimit(2,81012046)
e4:SetCondition(c81012046.atkcon) e4:SetCondition(c81012046.atkcon)
e4:SetCost(c81012046.atkcost)
e4:SetOperation(c81012046.atkop) e4:SetOperation(c81012046.atkop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--Immune --Immune
...@@ -109,6 +110,11 @@ function c81012046.atkcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -109,6 +110,11 @@ function c81012046.atkcon(e,tp,eg,ep,ev,re,r,rp)
local g=Group.FromCards(a,d) local g=Group.FromCards(a,d)
return a and d and a:IsRelateToBattle() and d:IsRelateToBattle() and g:IsExists(c81012046.exfilter,1,nil) return a and d and a:IsRelateToBattle() and d:IsRelateToBattle() and g:IsExists(c81012046.exfilter,1,nil)
end end
function c81012046.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(81012046)==0 end
c:RegisterFlagEffect(81012046,RESET_CHAIN,0,1)
end
function c81012046.atkop(e,tp,eg,ep,ev,re,r,rp,chk) function c81012046.atkop(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=e:GetLabelObject() local tc=e:GetLabelObject()
if tc:IsFaceup() and tc:IsRelateToBattle() then if tc:IsFaceup() and tc:IsRelateToBattle() then
......
...@@ -87,6 +87,7 @@ function c81012048.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -87,6 +87,7 @@ function c81012048.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,ct,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,ct,0,0)
end end
function c81012048.desop(e,tp,eg,ep,ev,re,r,rp) function c81012048.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS) local tg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local rg=tg:Filter(Card.IsRelateToEffect,nil,e) local rg=tg:Filter(Card.IsRelateToEffect,nil,e)
if rg:GetCount()>0 then if rg:GetCount()>0 then
......
...@@ -30,7 +30,7 @@ function c81040018.tgtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -30,7 +30,7 @@ function c81040018.tgtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetFlagEffect(tp,81040921)==0 and Duel.IsExistingTarget(c81040018.thfilter,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return Duel.GetFlagEffect(tp,81040921)==0 and Duel.IsExistingTarget(c81040018.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectTarget(tp,c81040018.thfilter,tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectTarget(tp,c81040018.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,tp,LOCATION_GRAVE)
end end
function c81040018.tgop(e,tp,eg,ep,ev,re,r,rp) function c81040018.tgop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
......
...@@ -117,7 +117,7 @@ function c9980402.eqop(e,tp,eg,ep,ev,re,r,rp) ...@@ -117,7 +117,7 @@ function c9980402.eqop(e,tp,eg,ep,ev,re,r,rp)
c:RegisterEffect(e5) c:RegisterEffect(e5)
end end
function c9980402.eqlimit(e,c) function c9980402.eqlimit(e,c)
return c:IsSetCard(0x1bca) return c:IsSetCard(0xbca)
end end
function c9980402.sptg2(e,tp,eg,ep,ev,re,r,rp,chk) function c9980402.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
......
...@@ -117,24 +117,24 @@ function c9980502.spop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -117,24 +117,24 @@ function c9980502.spop2(e,tp,eg,ep,ev,re,r,rp)
end end
function c9980502.ctcon(e,tp,eg,ep,ev,re,r,rp) function c9980502.ctcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return c:IsReason(REASON_BATTLE) or (c:GetReasonPlayer()==1-tp and c:IsReason(REASON_EFFECT)) return (c:IsReason(REASON_BATTLE) or (c:GetReasonPlayer()==1-tp and c:IsReason(REASON_EFFECT)))
end end
function c9980502.ctfilter(c) function c9980502.ctfilter(c)
return c:IsSummonType(SUMMON_TYPE_SPECIAL) and c:IsControlerCanBeChanged() return c:IsSummonType(SUMMON_TYPE_SPECIAL) and c:IsControlerCanBeChanged()
end end
function c9980502.cttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c9980502.cttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c9980502.ctfilter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c9980502.ctfilter(chkc) end
if chk==0 then return true end if chk==0 then return Duel.IsExistingTarget(c9980502.ctfilter,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectTarget(tp,c9980502.ctfilter,tp,0,LOCATION_MZONE,1,1,nil) local g=Duel.SelectTarget(tp,c9980502.ctfilter,tp,0,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end end
function c9980502.ctop(e,tp,eg,ep,ev,re,r,rp) function c9980502.ctop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc and tc:IsFaceup() and tc:IsRelateToEffect(e) and tc:IsRace(RACE_MACHINE) then local tct=1
local tct=1 if Duel.GetTurnPlayer()~=tp then tct=2
if Duel.GetTurnPlayer()~=tp then tct=2 elseif Duel.GetCurrentPhase()==PHASE_END then tct=3 end
elseif Duel.GetCurrentPhase()==PHASE_END then tct=3 end if tc:IsFacedown() and tc:IsRelateToEffect(e) then
Duel.GetControl(tc,tp,PHASE_END,tct) Duel.GetControl(tc,tp,PHASE_END,tct)
end end
end end
......
...@@ -87,7 +87,7 @@ function c9980573.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -87,7 +87,7 @@ function c9980573.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetTargetRange(LOCATION_HAND+LOCATION_MZONE,0) e2:SetTargetRange(LOCATION_HAND+LOCATION_MZONE,0)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0xcbca)) e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0xcbca))
e2:SetReset(RESET_PHASE+PHASE_END) e2:SetReset(RESET_PHASE+PHASE_END)
c:RegisterEffect(e2,tp) tc:RegisterEffect(e2,tp)
Duel.RegisterFlagEffect(tp,9980573,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,9980573,RESET_PHASE+PHASE_END,0,1)
end end
function c9980573.filter1(c,e,tp) function c9980573.filter1(c,e,tp)
......
...@@ -30,7 +30,6 @@ function c9980710.initial_effect(c) ...@@ -30,7 +30,6 @@ function c9980710.initial_effect(c)
e2:SetRange(LOCATION_FZONE) e2:SetRange(LOCATION_FZONE)
e2:SetCode(EFFECT_SELF_DESTROY) e2:SetCode(EFFECT_SELF_DESTROY)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE) e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetCondition(c9980710.effcon)
e2:SetTarget(c9980710.filter) e2:SetTarget(c9980710.filter)
e2:SetValue(aux.TRUE) e2:SetValue(aux.TRUE)
c:RegisterEffect(e2) c:RegisterEffect(e2)
...@@ -62,9 +61,6 @@ function c9980710.counter(e,tp,eg,ep,ev,re,r,rp) ...@@ -62,9 +61,6 @@ function c9980710.counter(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():AddCounter(0x1009,ct) e:GetHandler():AddCounter(0x1009,ct)
end end
end end
function c9980710.effcon(e)
return e:GetHandler():GetOverlayCount()>0
end
function c9980710.filter(e,c) function c9980710.filter(e,c)
return (c:IsAttackBelow(500) or c:IsDefenseBelow(500)) and c:IsFaceup() and not c:IsSetCard(0xbc8) and not c:IsImmuneToEffect(e) and c:IsDestructable() return (c:IsAttackBelow(500) or c:IsDefenseBelow(500)) and c:IsFaceup() and not c:IsSetCard(0xbc8) and not c:IsImmuneToEffect(e) and c:IsDestructable()
end end
......
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