Commit b6dc4748 authored by 伊蕾娜's avatar 伊蕾娜
parents c1aceca2 664b309b
Pipeline #11380 passed with stage
in 38 seconds
No preview for this file type
No preview for this file type
This diff is collapsed.
......@@ -727,13 +727,12 @@ function this.fullrandom(mainc,extrac)
end
function this.reroll(tp)
local ct=3
while ct>0 and Duel.SelectYesNo(tp,aux.Stringid(cc,12)) do
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if Duel.SelectYesNo(tp,aux.Stringid(cc,12)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_HAND,0,0,99,nil)
Duel.SendtoDeck(g,tp,0,REASON_RULE)
Duel.ShuffleDeck(tp)
Duel.Draw(tp,#g-1,REASON_RULE)
ct=ct-1
Duel.Draw(tp,#g,REASON_RULE)
end
end
......
......@@ -11,6 +11,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_CUSTOM+76794549)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_HAND)
e2:SetCountLimit(1,m)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
......
......@@ -144,6 +144,10 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
if Duel.NegateEffect(ev) and c:IsRelateToEffect(e) and rc:IsRelateToEffect(re) and c:IsType(TYPE_XYZ) and rc:IsCanOverlay(tp) then
rc:CancelToGrave()
local og=rc:GetOverlayGroup()
if og:GetCount()>0 then
Duel.SendtoGrave(og,REASON_RULE)
end
Duel.Overlay(c,Group.FromCards(rc))
end
end
......
......@@ -25,7 +25,7 @@ end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local chkf=tp
local mg1=Duel.GetFusionMaterial(tp)
local mg1=Duel.GetFusionMaterial(tp):Filter(Card.IsOnField,nil)
mg1:Merge(Duel.GetMatchingGroup(cm.mffilter0,tp,LOCATION_PZONE,0,nil,e))
local res=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf)
if not res then
......@@ -43,7 +43,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(cm.filter1,nil,e)
local mg1=Duel.GetFusionMaterial(tp):Filter(Card.IsOnField,nil):Filter(cm.filter1,nil,e)
mg1:Merge(Duel.GetMatchingGroup(cm.mffilter0,tp,LOCATION_PZONE,0,nil,e))
local sg1=Duel.GetMatchingGroup(cm.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
local mg2=nil
......
......@@ -41,7 +41,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e4)
end
function cm.cfilter(c,tp)
return c:IsFaceup() and c:IsSetCard(0x17f6) and c:IsControler(tp)
return c:IsFaceup() and c:IsSetCard(0x5da) and c:IsControler(tp)
end
function cm.sccon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil,tp)
......@@ -95,7 +95,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function cm.pcfilter(c)
return c:IsSetCard(0x17f6) and c:IsType(TYPE_PENDULUM) and not c:IsForbidden()
return c:IsSetCard(0x5da) and c:IsType(TYPE_PENDULUM) and not c:IsForbidden()
end
function cm.pctg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1))
......
......@@ -32,7 +32,8 @@ function c20114.initial_effect(c)
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(20114,1))
e6:SetCategory(CATEGORY_DESTROY)
e6:SetType(EFFECT_TYPE_IGNITION)
e6:SetType(EFFECT_TYPE_QUICK_O)
e6:SetCode(EVENT_FREE_CHAIN)
e6:SetRange(LOCATION_SZONE)
e6:SetCountLimit(2)
e6:SetProperty(EFFECT_FLAG_CARD_TARGET)
......
......@@ -20,7 +20,7 @@ function c22202.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,0,tp,1)
end
function c22202.filter(c)
return c:IsSetCard(0xa999) and c:IsAbleToHand()
return c:IsSetCard(0xa999) and c:IsAbleToHand() and c:IsType(TYPE_MONSTER)
end
function c22202.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -39,13 +39,13 @@ end
function c22261103.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if Duel.GetMZoneCount(tp)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,e:GetHandler():GetCode(),0,0x11,0,0,1,RACE_CYBERSE,ATTRIBUTE_DARK) then
if tc and Duel.GetMZoneCount(tp)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,e:GetHandler():GetCode(),0,0x11,0,0,1,RACE_CYBERSE,ATTRIBUTE_DARK) then
c:AddMonsterAttribute(TYPE_NORMAL,ATTRIBUTE_DARK,RACE_CYBERSE,1,0,0)
if Duel.SpecialSummon(c,0,tp,tp,true,true,POS_FACEUP)>0 then
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_CHANGE_CODE)
e0:SetValue(code)
e0:SetValue(tc:GetCode())
e0:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e0,true)
end
......
......@@ -5,5 +5,6 @@ function c22271101.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(function() end)
c:RegisterEffect(e1)
end
......@@ -12,8 +12,8 @@ function c24111.initial_effect(c)
if c24111.counter==nil then
c24111.counter=true
c24111.lplist = {
[0] = Duel.GetLP(tp),
[1] = Duel.GetLP(tp),
[0] = Duel.GetLP(0),
[1] = Duel.GetLP(1),
}
c24111.effectList = {
[0] = {},
......
......@@ -45,20 +45,20 @@ function c25331.initial_effect(c)
c:RegisterEffect(e5)
end
function c25331.ntfilter1(c)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x226) and c:IsAbleToGraveAsCost() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup())
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x226) and c:IsAbleToGraveAsCost()
end
function c25331.ntfilter2(c)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x259) and c:IsAbleToGraveAsCost() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup())
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x259) and c:IsAbleToGraveAsCost()
end
function c25331.ntcon(e,c)
if c==nil then return true end
return c:IsLevelAbove(5) and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c25331.ntfilter1,c:GetControler(),LOCATION_HAND|LOCATION_MZONE,0,1,nil)
and Duel.IsExistingMatchingCard(c25331.ntfilter2,c:GetControler(),LOCATION_HAND|LOCATION_MZONE,0,1,nil)
and Duel.IsExistingMatchingCard(c25331.ntfilter1,c:GetControler(),LOCATION_DECK,0,1,nil)
and Duel.IsExistingMatchingCard(c25331.ntfilter2,c:GetControler(),LOCATION_DECK,0,1,nil)
end
function c25331.ntop(e,tp,eg,ep,ev,re,r,rp,c)
local g1=Duel.SelectMatchingCard(tp,c25331.ntfilter1,c:GetControler(),LOCATION_HAND|LOCATION_MZONE,0,1,1,nil)
local g2=Duel.SelectMatchingCard(tp,c25331.ntfilter2,c:GetControler(),LOCATION_HAND|LOCATION_MZONE,0,1,1,nil)
local g1=Duel.SelectMatchingCard(tp,c25331.ntfilter1,c:GetControler(),LOCATION_DECK,0,1,1,nil)
local g2=Duel.SelectMatchingCard(tp,c25331.ntfilter2,c:GetControler(),LOCATION_DECK,0,1,1,nil)
g1:Merge(g2)
Duel.SendtoGrave(g1,REASON_COST)
end
......
......@@ -6,6 +6,7 @@ function c66919008.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_CONTINUOUS_TARGET)
e1:SetCountLimit(1,66919008+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(c66919008.target)
e1:SetOperation(c66919008.operation)
c:RegisterEffect(e1)
......
......@@ -75,7 +75,7 @@ function c74563014.gselect(g,num)
local def=0
local tc=g:GetFirst()
while tc do
if tc:IsDefenseAbove(0) and tc:IsFaceup() then
if tc:IsType(TYPE_MONSTER) and tc:IsDefenseAbove(0) and tc:IsFaceup() then
def=def+tc:GetDefense()
else
def=def+1200
......@@ -104,71 +104,46 @@ function c74563014.eqop(e,tp,eg,ep,ev,re,r,rp)
tg=dg:GetNext()
end
end
function c74563014.exfilter1(c,fc)
return c74563014.allfilter1(c,fc) and c:IsCode(74563024) and c:IsAbleToRemove()
--
function c74563014.ExFusFilter(c,fc)
return c74563014.AllFusFilter(c,fc) and c:IsCode(74563024) and c:IsAbleToRemove()
end
function c74563014.allfilter1(c,fc)
return c:IsCanBeFusionMaterial(fc) and c:IsFusionType(TYPE_MONSTER)
and (c:IsFusionSetCard(0x258) or c:IsFusionAttribute(ATTRIBUTE_WIND) or c:IsFusionAttribute(ATTRIBUTE_DARK))
function c74563014.AllFusFilter(c,fc)
return c:IsCanBeFusionMaterial(fc) and c:IsFusionType(TYPE_MONSTER) and (c74563014.CheckFusFilter1(c) or c74563014.CheckFusFilter2(c))
end
--
function c74563014.CheckFusionFilter1(c,sg,tc)
local check1=0
local check2=0
local sc=sg:GetFirst()
while sc do
if sc:IsFusionSetCard(0x258) then check1=1 end
if (sc:IsFusionAttribute(ATTRIBUTE_WIND) or sc:IsFusionAttribute(ATTRIBUTE_DARK)) then check2=1 end
sc=sg:GetNext()
end
return (check1==0 and (tc:IsFusionSetCard(0x258)))
or (check2==0 and (tc:IsFusionAttribute(ATTRIBUTE_WIND) or tc:IsFusionAttribute(ATTRIBUTE_DARK)))
end
function c74563014.CheckRecursive1(c,mg,sg,exg,tp,fc,chkf)
--if exg and exg:IsContains(c) then return false end
if sg:GetCount()>0 and not sg:IsExists(c74563014.CheckFusionFilter1,1,nil,sg,c) then return false end
sg:AddCard(c)
if Duel.GetLocationCountFromEx(tp,tp,sg,c)<0 then return false end
local res=false
if sg:GetCount()==2 then
res=(chkf==PLAYER_NONE or Duel.GetLocationCountFromEx(chkf,tp,sg,fc)>0)
if aux.FCheckAdditional and not aux.FCheckAdditional(tp,sg,fc) then res=false end
else
res=mg:IsExists(c74563014.CheckRecursive1,1,sg,mg,sg,exg,tp,fc,PLAYER_NONE)
end
sg:RemoveCard(c)
return res
function c74563014.CheckFusFilter1(c)
return c:IsFusionSetCard(0x258)
end
function c74563014.CheckFusFilter2(c)
return c:IsFusionAttribute(ATTRIBUTE_DARK+ATTRIBUTE_WIND)
end
function c74563014.CheckGroupFilter(sg,lc)
return (not lc) or (lc and sg:IsContains(lc))
end
--
function c74563014.con1(e,g,gc,chkfnf)
if g==nil then return true end
local sg=Group.CreateGroup()
local chkf=(chkfnf & 0xff)
local c=e:GetHandler()
local tp=c:GetControler()
local mg=g:Filter(c74563014.allfilter1,nil,c)
local exg=Duel.GetMatchingGroup(c74563014.exfilter1,tp,LOCATION_GRAVE,0,mg,c)
local mg=g:Filter(c74563014.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563014.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg)
if gc then return c74563014.allfilter1(gc,c)
and c74563014.CheckRecursive1(gc,mg,sg,exg,tp,c,chkf) end
return mg:IsExists(c74563014.CheckRecursive1,1,sg,mg,sg,exg,tp,c,chkf)
local checks={c74563014.CheckFusFilter1,c74563014.CheckFusFilter2}
return mg:CheckSubGroupEach(checks,c74563014.CheckGroupFilter,gc)
end
--
function c74563014.op1(e,tp,eg,ep,ev,re,r,rp,gc,chkfnf)
local c=e:GetHandler()
local chkf=(chkfnf & 0xff)
local mg=eg:Filter(c74563014.allfilter1,nil,c)
local exg=Duel.GetMatchingGroup(c74563014.exfilter1,tp,LOCATION_GRAVE,0,mg,c)
local mg=eg:Filter(c74563014.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563014.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg)
local sg=Group.CreateGroup()
if gc then sg:AddCard(gc) end
repeat
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local g=mg:FilterSelect(tp,c74563014.CheckRecursive1,1,1,sg,mg,sg,exg,tp,c,chkf)
sg:Merge(g)
until sg:GetCount()==2
local checks={c74563014.CheckFusFilter1,c74563014.CheckFusFilter2}
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local sg=mg:SelectSubGroupEach(tp,checks,false,c74563014.CheckGroupFilter,gc)
Duel.SetFusionMaterial(sg)
end
--
c74563014.OriginalSetMaterial=Card.SetMaterial
function c74563014.SetMaterial(c,g)
c74563014.OriginalSetMaterial(c,g)
......
......@@ -69,10 +69,10 @@ function c74563015.eqtg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.RegisterFlagEffect(tp,74563015,RESET_PHASE+PHASE_END,0,1)
end
function c74563015.customdef(c)
if c:IsType(TYPE_LINK|TYPE_SPELL|TYPE_TRAP) then
return 1200
else
if c:IsType(TYPE_MONSTER) and c:IsDefenseAbove(0) and c:IsFaceup() then
return c:GetDefense()
else
return 1200
end
end
function c74563015.eqop(e,tp,eg,ep,ev,re,r,rp)
......@@ -130,71 +130,46 @@ function c74563015.eqop(e,tp,eg,ep,ev,re,r,rp)
tc=dg:GetNext()
end
end
function c74563015.exfilter1(c,fc)
return c74563015.allfilter1(c,fc) and c:IsCode(74563024) and c:IsAbleToRemove()
--
function c74563015.ExFusFilter(c,fc)
return c74563015.AllFusFilter(c,fc) and c:IsCode(74563024) and c:IsAbleToRemove()
end
function c74563015.allfilter1(c,fc)
return c:IsCanBeFusionMaterial(fc) and c:IsFusionType(TYPE_MONSTER)
and (c:IsFusionSetCard(0x258) or c:IsFusionAttribute(ATTRIBUTE_WATER) or c:IsFusionAttribute(ATTRIBUTE_LIGHT))
function c74563015.AllFusFilter(c,fc)
return c:IsCanBeFusionMaterial(fc) and c:IsFusionType(TYPE_MONSTER) and (c74563015.CheckFusFilter1(c) or c74563015.CheckFusFilter2(c))
end
--
function c74563015.CheckFusionFilter1(c,sg,tc)
local check1=0
local check2=0
local sc=sg:GetFirst()
while sc do
if sc:IsFusionSetCard(0x258) then check1=1 end
if (sc:IsFusionAttribute(ATTRIBUTE_WATER) or sc:IsFusionAttribute(ATTRIBUTE_LIGHT)) then check2=1 end
sc=sg:GetNext()
end
return (check1==0 and (tc:IsFusionSetCard(0x258)))
or (check2==0 and (tc:IsFusionAttribute(ATTRIBUTE_LIGHT) or tc:IsFusionAttribute(ATTRIBUTE_WATER)))
end
function c74563015.CheckRecursive1(c,mg,sg,exg,tp,fc,chkf)
--if exg and exg:IsContains(c) then return false end
if sg:GetCount()>0 and not sg:IsExists(c74563015.CheckFusionFilter1,1,nil,sg,c) then return false end
sg:AddCard(c)
if Duel.GetLocationCountFromEx(tp,tp,sg,c)<0 then return false end
local res=false
if sg:GetCount()==2 then
res=(chkf==PLAYER_NONE or Duel.GetLocationCountFromEx(chkf,tp,sg,fc)>0)
if aux.FCheckAdditional and not aux.FCheckAdditional(tp,sg,fc) then res=false end
else
res=mg:IsExists(c74563015.CheckRecursive1,1,sg,mg,sg,exg,tp,fc,PLAYER_NONE)
end
sg:RemoveCard(c)
return res
function c74563015.CheckFusFilter1(c)
return c:IsFusionSetCard(0x258)
end
function c74563015.CheckFusFilter2(c)
return c:IsFusionAttribute(ATTRIBUTE_LIGHT+ATTRIBUTE_WATER)
end
function c74563015.CheckGroupFilter(sg,lc)
return (not lc) or (lc and sg:IsContains(lc))
end
--
function c74563015.con1(e,g,gc,chkfnf)
if g==nil then return true end
local sg=Group.CreateGroup()
local chkf=(chkfnf & 0xff)
local c=e:GetHandler()
local tp=c:GetControler()
local mg=g:Filter(c74563015.allfilter1,nil,c)
local exg=Duel.GetMatchingGroup(c74563015.exfilter1,tp,LOCATION_GRAVE,0,mg,c)
local mg=g:Filter(c74563015.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563015.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg)
if gc then return c74563015.allfilter1(gc,c)
and c74563015.CheckRecursive1(gc,mg,sg,exg,tp,c,chkf) end
return mg:IsExists(c74563015.CheckRecursive1,1,sg,mg,sg,exg,tp,c,chkf)
local checks={c74563015.CheckFusFilter1,c74563015.CheckFusFilter2}
return mg:CheckSubGroupEach(checks,c74563015.CheckGroupFilter,gc)
end
--
function c74563015.op1(e,tp,eg,ep,ev,re,r,rp,gc,chkfnf)
local c=e:GetHandler()
local chkf=(chkfnf & 0xff)
local mg=eg:Filter(c74563015.allfilter1,nil,c)
local exg=Duel.GetMatchingGroup(c74563015.exfilter1,tp,LOCATION_GRAVE,0,mg,c)
local mg=eg:Filter(c74563015.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563015.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg)
local sg=Group.CreateGroup()
if gc then sg:AddCard(gc) end
repeat
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local g=mg:FilterSelect(tp,c74563015.CheckRecursive1,1,1,sg,mg,sg,exg,tp,c,chkf)
sg:Merge(g)
until sg:GetCount()==2
local checks={c74563015.CheckFusFilter1,c74563015.CheckFusFilter2}
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local sg=mg:SelectSubGroupEach(tp,checks,false,c74563015.CheckGroupFilter,gc)
Duel.SetFusionMaterial(sg)
end
--
c74563015.OriginalSetMaterial=Card.SetMaterial
function c74563015.SetMaterial(c,g)
c74563015.OriginalSetMaterial(c,g)
......
......@@ -78,7 +78,7 @@ function c74563016.gselect(g,num)
local def=0
local tc=g:GetFirst()
while tc do
if tc:IsDefenseAbove(0) and tc:IsFaceup() then
if tc:IsType(TYPE_MONSTER) and tc:IsDefenseAbove(0) and tc:IsFaceup() then
def=def+tc:GetDefense()
else
def=def+1200
......@@ -103,63 +103,45 @@ function c74563016.allfilter1(c,fc)
and (c:IsFusionSetCard(0x258) or c:IsFusionAttribute(ATTRIBUTE_EARTH) or c:IsFusionAttribute(ATTRIBUTE_FIRE))
end
--
function c74563016.CheckFusionFilter1(c,sg,tc)
local check1=0
local check2=0
local sc=sg:GetFirst()
while sc do
if sc:IsFusionSetCard(0x258) then check1=1 end
if (sc:IsFusionAttribute(ATTRIBUTE_EARTH) or sc:IsFusionAttribute(ATTRIBUTE_FIRE)) then check2=1 end
sc=sg:GetNext()
end
return (check1==0 and (tc:IsFusionSetCard(0x258)))
or (check2==0 and (tc:IsFusionAttribute(ATTRIBUTE_EARTH) or tc:IsFusionAttribute(ATTRIBUTE_FIRE)))
end
function c74563016.CheckRecursive1(c,mg,sg,exg,tp,fc,chkf)
--if exg and exg:IsContains(c) then return false end
if sg:GetCount()>0 and not sg:IsExists(c74563016.CheckFusionFilter1,1,nil,sg,c) then return false end
sg:AddCard(c)
if Duel.GetLocationCountFromEx(tp,tp,sg,c)<0 then return false end
local res=false
if sg:GetCount()==2 then
res=(chkf==PLAYER_NONE or Duel.GetLocationCountFromEx(chkf,tp,sg,fc)>0)
if aux.FCheckAdditional and not aux.FCheckAdditional(tp,sg,fc) then res=false end
else
res=mg:IsExists(c74563016.CheckRecursive1,1,sg,mg,sg,exg,tp,fc,PLAYER_NONE)
end
sg:RemoveCard(c)
return res
function c74563016.ExFusFilter(c,fc)
return c74563016.AllFusFilter(c,fc) and c:IsCode(74563024) and c:IsAbleToRemove()
end
function c74563016.AllFusFilter(c,fc)
return c:IsCanBeFusionMaterial(fc) and c:IsFusionType(TYPE_MONSTER) and (c74563016.CheckFusFilter1(c) or c74563016.CheckFusFilter2(c))
end
function c74563016.CheckFusFilter1(c)
return c:IsFusionSetCard(0x258)
end
function c74563016.CheckFusFilter2(c)
return c:IsFusionAttribute(ATTRIBUTE_EARTH+ATTRIBUTE_FIRE)
end
function c74563016.CheckGroupFilter(sg,lc)
return (not lc) or (lc and sg:IsContains(lc))
end
--
function c74563016.con1(e,g,gc,chkfnf)
if g==nil then return true end
local sg=Group.CreateGroup()
local chkf=(chkfnf & 0xff)
local c=e:GetHandler()
local tp=c:GetControler()
local mg=g:Filter(c74563016.allfilter1,nil,c)
local exg=Duel.GetMatchingGroup(c74563016.exfilter1,tp,LOCATION_GRAVE,0,mg,c)
local mg=g:Filter(c74563016.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563016.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg)
if gc then return c74563016.allfilter1(gc,c)
and c74563016.CheckRecursive1(gc,mg,sg,exg,tp,c,chkf) end
return mg:IsExists(c74563016.CheckRecursive1,1,sg,mg,sg,exg,tp,c,chkf)
local checks={c74563016.CheckFusFilter1,c74563016.CheckFusFilter2}
return mg:CheckSubGroupEach(checks,c74563016.CheckGroupFilter,gc)
end
--
function c74563016.op1(e,tp,eg,ep,ev,re,r,rp,gc,chkfnf)
local c=e:GetHandler()
local chkf=(chkfnf & 0xff)
local mg=eg:Filter(c74563016.allfilter1,nil,c)
local exg=Duel.GetMatchingGroup(c74563016.exfilter1,tp,LOCATION_GRAVE,0,mg,c)
local mg=eg:Filter(c74563016.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563016.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg)
local sg=Group.CreateGroup()
if gc then sg:AddCard(gc) end
repeat
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local g=mg:FilterSelect(tp,c74563016.CheckRecursive1,1,1,sg,mg,sg,exg,tp,c,chkf)
sg:Merge(g)
until sg:GetCount()==2
local checks={c74563016.CheckFusFilter1,c74563016.CheckFusFilter2}
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local sg=mg:SelectSubGroupEach(tp,checks,false,c74563016.CheckGroupFilter,gc)
Duel.SetFusionMaterial(sg)
end
--
c74563016.OriginalSetMaterial=Card.SetMaterial
function c74563016.SetMaterial(c,g)
c74563016.OriginalSetMaterial(c,g)
......
......@@ -77,64 +77,44 @@ function c74563024.tkop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
end
end
function c74563024.exfilter1(c,fc)
return c74563024.allfilter1(c,fc) and c:IsCode(74563024) and c:IsAbleToRemove()
--
function c74563024.ExFusFilter(c,fc)
return c74563024.AllFusFilter(c,fc) and c:IsCode(74563024) and c:IsAbleToRemove()
end
function c74563024.allfilter1(c,fc)
return c:IsCanBeFusionMaterial(fc) and c:IsFusionType(TYPE_MONSTER)
and (c:IsFusionSetCard(0x258) or c:IsFusionAttribute(ATTRIBUTE_DIVINE))
function c74563024.AllFusFilter(c,fc)
return c:IsCanBeFusionMaterial(fc) and c:IsFusionType(TYPE_MONSTER) and (c74563024.CheckFusFilter1(c) or c74563024.CheckFusFilter2(c))
end
--
function c74563024.CheckFusionFilter1(c,sg,tc)
local check1=0
local check2=0
return (check1==0 and (tc:IsFusionSetCard(0x258) or tc:IsFusionAttribute(ATTRIBUTE_DIVINE)))
or (check2==0 and (tc:IsFusionSetCard(0x258) or tc:IsFusionAttribute(ATTRIBUTE_DIVINE)))
function c74563024.CheckFusFilter1(c)
return c:IsFusionSetCard(0x258)
end
function c74563024.CheckRecursive1(c,mg,sg,exg,tp,fc,chkf)
--if exg and exg:IsContains(c) then return false end
if sg:GetCount()>0 and not sg:IsExists(c74563024.CheckFusionFilter1,1,nil,sg,c) then return false end
sg:AddCard(c)
if Duel.GetLocationCountFromEx(tp,tp,sg,c)<0 then return false end
local res=false
if sg:GetCount()==2 then
res=(chkf==PLAYER_NONE or Duel.GetLocationCountFromEx(chkf,tp,sg,fc)>0)
if aux.FCheckAdditional and not aux.FCheckAdditional(tp,sg,fc) then res=false end
else
res=mg:IsExists(c74563024.CheckRecursive1,1,sg,mg,sg,exg,tp,fc,PLAYER_NONE)
end
sg:RemoveCard(c)
return res
function c74563024.CheckFusFilter2(c)
return c:IsFusionAttribute(ATTRIBUTE_DIVINE)
end
function c74563024.CheckGroupFilter(sg,lc)
return (not lc) or (lc and sg:IsContains(lc))
end
--
function c74563024.con1(e,g,gc,chkfnf)
if g==nil then return true end
local sg=Group.CreateGroup()
local chkf=(chkfnf & 0xff)
local c=e:GetHandler()
local tp=c:GetControler()
local mg=g:Filter(c74563024.allfilter1,nil,c)
local exg=Duel.GetMatchingGroup(c74563024.exfilter1,tp,LOCATION_GRAVE,0,mg,c)
local mg=g:Filter(c74563024.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563024.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg)
if gc then return c74563024.allfilter1(gc,c)
and c74563024.CheckRecursive1(gc,mg,sg,exg,tp,c,chkf) end
return mg:IsExists(c74563024.CheckRecursive1,1,sg,mg,sg,exg,tp,c,chkf)
return mg:CheckSubGroup(c74563024.CheckGroupFilter,2,#mg,gc)
end
--
function c74563024.op1(e,tp,eg,ep,ev,re,r,rp,gc,chkfnf)
local c=e:GetHandler()
local chkf=(chkfnf & 0xff)
local mg=eg:Filter(c74563024.allfilter1,nil,c)
local exg=Duel.GetMatchingGroup(c74563024.exfilter1,tp,LOCATION_GRAVE,0,mg,c)
local mg=eg:Filter(c74563024.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563024.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg)
if gc then sg:AddCard(gc) end
local sg=Group.CreateGroup()
if gc then sg:AddCard(gc) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local g=mg:FilterSelect(tp,c74563024.CheckRecursive1,2,#mg,sg,mg,sg,exg,tp,c,chkf)
sg:Merge(g)
local sg=mg:SelectSubGroup(tp,c74563024.CheckGroupFilter,false,2,#mg,gc)
Duel.SetFusionMaterial(sg)
end
--
c74563024.OriginalSetMaterial=Card.SetMaterial
function c74563024.SetMaterial(c,g)
c74563024.OriginalSetMaterial(c,g)
......
......@@ -9,7 +9,7 @@ function c74563036.initial_effect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCost(c74563036.discost)
--e1:SetCost(c74563036.discost)
e1:SetCondition(c74563036.descon)
e1:SetTarget(c74563036.distg)
e1:SetOperation(c74563036.desop)
......
......@@ -12,10 +12,10 @@ function c7770020.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_REMOVE)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_GRAVE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCondition(c7770020.condition2)
e2:SetCost(aux.bfgcost)
e2:SetTarget(c7770020.target2)
e2:SetOperation(c7770020.activate2)
......@@ -70,7 +70,7 @@ function c7770020.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end
function c7770020.target2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) end
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(1-tp) end
if chk==0 then return Duel.IsExistingTarget(c7770020.filter2,tp,0,LOCATION_GRAVE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
Duel.SelectTarget(tp,c7770020.filter2,tp,0,LOCATION_GRAVE,1,1,nil)
......@@ -90,8 +90,8 @@ function c7770020.activate1(e,tp,eg,ep,ev,re,r,rp)
end
function c7770020.activate2(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
local tc=Duel.GetFirstTarget()
if tc then Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) end
end
function c7770020.activate3(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -36,7 +36,7 @@ function c86379688.ccfilter(c)
return not c:IsSetCard(0x810) and c:IsFaceup()
end
function c86379688.con1(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c86379688.cfilter,tp,LOCATION_MZONE,0,1,nil) and not Duel.IsExistingMatchingCard(c86379688.ccfilter,tp,LOCATION_MZONE,0,1,nil)
return not Duel.IsExistingMatchingCard(c86379688.ccfilter,tp,LOCATION_MZONE,0,1,nil)
end
function c86379688.tfilter1(c,e,tp)
return c:IsSetCard(0x810) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and (c:IsLocation(LOCATION_HAND) or (c:IsLocation(LOCATION_PZONE) and c:IsFaceup()))
......
......@@ -18,6 +18,7 @@ function c86379704.initial_effect(c)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(1,86379704+EFFECT_COUNT_CODE_OATH)
e2:SetTarget(c86379704.target2)
e2:SetOperation(function() end)
c:RegisterEffect(e2)
--remove
local e3=Effect.CreateEffect(c)
......
......@@ -21,7 +21,7 @@ function c86379815.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c86379815.filter2(c)
return c:IsSetCard(0x811) and c:IsDiscardable()
return c:IsSetCard(0x811) and c:IsDiscardable() and c:IsType(TYPE_MONSTER)
end
function c86379815.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
......
--羽衣若风✿永江衣玖
function c86379862.initial_effect(c)
--link summon
c86379862.AddLinkProcedure(c,nil,2,2,c86379862.lcheck)
aux.AddLinkProcedure(c,nil,2,2,c86379862.lcheck)
c:EnableReviveLimit()
--destroy replace
local e1=Effect.CreateEffect(c)
......
--羽衣若水✿永江衣玖
function c86379864.initial_effect(c)
--link summon
c86379864.AddLinkProcedure(c,c86379864.matfilter,1)
aux.AddLinkProcedure(c,c86379864.matfilter,1)
c:EnableReviveLimit()
--adk
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
......@@ -122,7 +123,7 @@ function c86379864.desreptg(e,c)
local tc=e:GetHandler()
local seq=tc:GetSequence()
local ec=tc:GetEquipTarget()
return c==ec or (c:GetSequence()==seq and c:IsControler(e:GetHandler())) or ec:GetLinkedGroup():IsContains(c)
return c==ec or (c:GetSequence()==seq and c:IsControler(e:GetHandlerPlayer())) or ec:GetLinkedGroup():IsContains(c)
end
--Link Summon
function c86379864.AddLinkProcedure(c,f,min,max,gf)
......
......@@ -2,6 +2,7 @@
function c86379868.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,99,c86379868.lcheck)
c:EnableReviveLimit()
--eqiup
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(86379868,0))
......@@ -119,7 +120,7 @@ function c86379868.checkop(e,tp,eg,ep,ev,re,r,rp)
local ec=c:GetEquipTarget()
local pc=eg:GetFirst()
local qg=pc:GetEquipGroup()
if eg:GetCount()==1 and qg:GetCount()>0 and (pc==ec or pc:GetSequence()==seq or ec:GetLinkedGroup():IsContains(pc)) and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,pc) and Duel.SelectYesNo(tp,aux.Stringid(86379868,0)) then
if eg:GetCount()==1 and qg:GetCount()>0 and (pc==ec or (pc:GetSequence()==seq and pc:IsControler(tp)) or ec:GetLinkedGroup():IsContains(pc)) and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,pc) and Duel.SelectYesNo(tp,aux.Stringid(86379868,0)) then
Duel.Hint(HINT_CARD,0,86379868)
local qc=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,pc)
Duel.HintSelection(qc)
......
......@@ -13,7 +13,7 @@ function c86379888.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
local c=e:GetHandler()
local ti=1
while ti<=10 do
while ti<=20 do
c86379888[ti]=0
ti=ti+1
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