Commit d96d1096 authored by nanahira's avatar nanahira

fixes

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