Commit 464ee150 authored by wind2009's avatar wind2009

Merge branch 'master' into master

parents 5ad5bc1a 920049bb
...@@ -4,6 +4,7 @@ function c12607053.initial_effect(c) ...@@ -4,6 +4,7 @@ function c12607053.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(aux.bpcon)
e1:SetOperation(c12607053.activate) e1:SetOperation(c12607053.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
......
...@@ -60,10 +60,11 @@ function c18486927.actcon(e) ...@@ -60,10 +60,11 @@ function c18486927.actcon(e)
end end
function c18486927.nametg(e,tp,eg,ep,ev,re,r,rp,chk) function c18486927.nametg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local code=e:GetHandler():GetCode() local c=e:GetHandler()
--c:IsSetCard(0x51) and not c:IsCode(code) local code=c:GetCode()
getmetatable(e:GetHandler()).announce_filter={0x51,OPCODE_ISSETCARD,code,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND} --c:IsSetCard(0x51) and c:IsType(TYPE_MONSTER) and not c:IsCode(code)
local ac=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter)) getmetatable(c).announce_filter={0x51,OPCODE_ISSETCARD,TYPE_MONSTER,OPCODE_ISTYPE,OPCODE_AND,code,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND}
local ac=Duel.AnnounceCard(tp,table.unpack(getmetatable(c).announce_filter))
Duel.SetTargetParam(ac) Duel.SetTargetParam(ac)
Duel.SetOperationInfo(0,CATEGORY_ANNOUNCE,nil,0,tp,0) Duel.SetOperationInfo(0,CATEGORY_ANNOUNCE,nil,0,tp,0)
end end
......
...@@ -47,6 +47,7 @@ function c18973184.efilter(e,ct) ...@@ -47,6 +47,7 @@ function c18973184.efilter(e,ct)
end end
function c18973184.limfilter(c,tp) function c18973184.limfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_FUSION) return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_FUSION)
and c:GetSpecialSummonInfo(SUMMON_INFO_REASON_EFFECT):IsHasCategory(CATEGORY_FUSION_SUMMON)
end end
function c18973184.limcon(e,tp,eg,ep,ev,re,r,rp) function c18973184.limcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c18973184.limfilter,1,nil,tp) return eg:IsExists(c18973184.limfilter,1,nil,tp)
......
...@@ -38,7 +38,7 @@ function c1980574.synop(e,tp,eg,ep,ev,re,r,rp) ...@@ -38,7 +38,7 @@ function c1980574.synop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)==0 then return end if not c:IsRelateToEffect(e) or Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)==0 then return end
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if not tc:IsRelateToEffect(e) or tc:IsFacedown() then return end if not tc:IsRelateToEffect(e) or tc:IsFacedown() or not tc:IsControler(tp) then return end
Duel.AdjustAll() Duel.AdjustAll()
local mg=Group.FromCards(c,tc) local mg=Group.FromCards(c,tc)
if mg:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)<2 then return end if mg:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)<2 then return end
......
...@@ -49,6 +49,7 @@ function c47679935.efilter(e,ct) ...@@ -49,6 +49,7 @@ function c47679935.efilter(e,ct)
end end
function c47679935.limfilter(c,tp) function c47679935.limfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_FUSION) return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_FUSION)
and c:GetSpecialSummonInfo(SUMMON_INFO_REASON_EFFECT):IsHasCategory(CATEGORY_FUSION_SUMMON)
end end
function c47679935.limcon(e,tp,eg,ep,ev,re,r,rp) function c47679935.limcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c47679935.limfilter,1,nil,tp) return eg:IsExists(c47679935.limfilter,1,nil,tp)
......
...@@ -61,9 +61,6 @@ end ...@@ -61,9 +61,6 @@ end
function c58753372.spfilter1(c,e,tp) function c58753372.spfilter1(c,e,tp)
return c:IsSetCard(0xdc) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0xdc) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c58753372.spfilter2(c)
return c:IsSetCard(0xdc) and c:IsType(TYPE_MONSTER)
end
function c58753372.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c58753372.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local g=Duel.GetMatchingGroup(c58753372.spfilter1,tp,LOCATION_DECK,0,nil,e,tp) local g=Duel.GetMatchingGroup(c58753372.spfilter1,tp,LOCATION_DECK,0,nil,e,tp)
...@@ -72,7 +69,7 @@ function c58753372.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -72,7 +69,7 @@ function c58753372.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_DECK)
end end
function c58753372.spop(e,tp,eg,ep,ev,re,r,rp) function c58753372.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c58753372.spfilter2,tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c58753372.spfilter1,tp,LOCATION_DECK,0,nil,e,tp)
if g:GetClassCount(Card.GetCode)>=3 then if g:GetClassCount(Card.GetCode)>=3 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local cg=g:SelectSubGroup(tp,aux.dncheck,false,3,3) local cg=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
......
...@@ -88,6 +88,7 @@ function c9069157.efilter(e,ct) ...@@ -88,6 +88,7 @@ function c9069157.efilter(e,ct)
end end
function c9069157.limfilter(c,tp) function c9069157.limfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_FUSION) return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_FUSION)
and c:GetSpecialSummonInfo(SUMMON_INFO_REASON_EFFECT):IsHasCategory(CATEGORY_FUSION_SUMMON)
end end
function c9069157.limcon(e,tp,eg,ep,ev,re,r,rp) function c9069157.limcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c9069157.limfilter,1,nil,tp) return eg:IsExists(c9069157.limfilter,1,nil,tp)
......
...@@ -56,7 +56,8 @@ function c93717133.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -56,7 +56,8 @@ function c93717133.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end if chkc then return false end
local c=e:GetHandler() local c=e:GetHandler()
local bc=c:GetBattleTarget() local bc=c:GetBattleTarget()
if chk==0 then return bc and bc:IsOnField() and bc:IsCanBeEffectTarget(e) and c:IsAbleToRemove() and bc:IsAbleToRemove() end if chk==0 then return bc and bc:IsRelateToBattle() and bc:IsCanBeEffectTarget(e)
and c:IsAbleToRemove() and bc:IsAbleToRemove() end
Duel.SetTargetCard(bc) Duel.SetTargetCard(bc)
local g=Group.FromCards(c,bc) local g=Group.FromCards(c,bc)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,2,0,0) Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,2,0,0)
......
...@@ -56,7 +56,7 @@ function c94821366.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,7 +56,7 @@ function c94821366.spop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c94821366.eqfilter1(c,e,tp) function c94821366.eqfilter1(c,e,tp)
return c:IsFaceup() and c:IsLocation(LOCATION_MZONE) and c:IsCanBeEffectTarget(e) and c:IsSummonPlayer(1-tp) return c:IsFaceup() and c:IsLocation(LOCATION_MZONE) and c:IsCanBeEffectTarget(e) and c:IsControler(1-tp) and c:IsSummonPlayer(1-tp)
and Duel.IsExistingMatchingCard(c94821366.eqfilter2,tp,LOCATION_DECK,0,1,nil) and Duel.IsExistingMatchingCard(c94821366.eqfilter2,tp,LOCATION_DECK,0,1,nil)
end end
function c94821366.eqfilter2(c) function c94821366.eqfilter2(c)
......
...@@ -945,7 +945,7 @@ function Auxiliary.FOperationMix(insf,sub,...) ...@@ -945,7 +945,7 @@ function Auxiliary.FOperationMix(insf,sub,...)
local notfusion=chkfnf&0x100>0 local notfusion=chkfnf&0x100>0
local concat_fusion=chkfnf&0x200>0 local concat_fusion=chkfnf&0x200>0
local sub2=(sub or notfusion) and not concat_fusion local sub2=(sub or notfusion) and not concat_fusion
local cancel=concat_fusion local cancel=concat_fusion and Duel.GetCurrentChain()==0
local mg=eg:Filter(Auxiliary.FConditionFilterMix,c,c,sub2,concat_fusion,table.unpack(funs)) local mg=eg:Filter(Auxiliary.FConditionFilterMix,c,c,sub2,concat_fusion,table.unpack(funs))
if gc then Duel.SetSelectedCard(gc) end if gc then Duel.SetSelectedCard(gc) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
...@@ -1072,7 +1072,7 @@ function Auxiliary.FOperationMixRep(insf,sub,fun1,minc,maxc,...) ...@@ -1072,7 +1072,7 @@ function Auxiliary.FOperationMixRep(insf,sub,fun1,minc,maxc,...)
local notfusion=chkfnf&0x100>0 local notfusion=chkfnf&0x100>0
local concat_fusion=chkfnf&0x200>0 local concat_fusion=chkfnf&0x200>0
local sub2=(sub or notfusion) and not concat_fusion local sub2=(sub or notfusion) and not concat_fusion
local cancel=concat_fusion local cancel=concat_fusion and Duel.GetCurrentChain()==0
local mg=eg:Filter(Auxiliary.FConditionFilterMix,c,c,sub2,concat_fusion,fun1,table.unpack(funs)) local mg=eg:Filter(Auxiliary.FConditionFilterMix,c,c,sub2,concat_fusion,fun1,table.unpack(funs))
local sg=Group.CreateGroup() local sg=Group.CreateGroup()
if gc then sg:AddCard(gc) end if gc then sg:AddCard(gc) 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