Commit b495120b authored by wyykak's avatar wyykak

fix

parent 1d141f1e
......@@ -70,7 +70,7 @@ function c74563023.defval(e,c)
return math.ceil(c:GetDefense()/2)
end
function c74563023.drfilter(c)
return c:IsType(TYPE_SPELL) and c:IsAbleToGraveAsCost()
return c:IsType(TYPE_SPELL) and c:IsAbleToGraveAsCost() and Duel.IsExistingMatchingCard(c74563023.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp,Group.FromCards(c,mc))
end
function c74563023.spfilter1(c,e,tp,mg)
return c:IsType(TYPE_SYNCHRO) and (c:IsSetCard(0x111) or c:IsSetCard(0x811))
......
......@@ -31,7 +31,7 @@ function c86379536.initial_effect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_ATTACK)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e4:SetTargetRange(LOCATION_MZONE,0)
e4:SetTarget(c86379536.htg2)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
......@@ -45,7 +45,7 @@ function c86379536.initial_effect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_DISABLE)
e6:SetRange(LOCATION_MZONE)
e6:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e6:SetTargetRange(LOCATION_MZONE,0)
e6:SetTarget(c86379536.htg2)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
......@@ -225,8 +225,8 @@ function c86379536.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c86379536.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local flag1=Duel.IsPlayerCanSpecialSummonMonster(tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK,POS_FACEUP,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local flag2=Duel.IsPlayerCanSpecialSummonMonster(tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK,POS_FACEUP,1-tp) and Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0
local flag1=Duel.IsPlayerCanSpecialSummonMonster(tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local flag2=Duel.IsPlayerCanSpecialSummonMonster(1-tp,86379537,0x208,0x4011,1500,400,1,RACE_ZOMBIE,ATTRIBUTE_DARK) and Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0
if not (flag1 or flag2) then return end
local op=0
if flag1 and flag2 then
......@@ -293,5 +293,5 @@ function c86379536.htg(e,c)
return math.abs(e:GetHandler():GetSequence()-c:GetSequence())==1
end
function c86379536.htg2(e,c)
return math.abs(e:GetHandler():GetSequence()-c:GetSequence())==1 and not c:IsSetCard(0xc432)
return math.abs(e:GetHandler():GetSequence()-c:GetSequence())==1 and c:GetSequence()<5 and not c:IsSetCard(0xc432)
end
......@@ -78,8 +78,8 @@ function c86379888.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
c86379888[20]=1
end
end
function c86379888.filter(c,tid)
return c:IsReason(REASON_DESTROY) and c:IsType(TYPE_MONSTER) and c:GetTurnID()==tid and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
function c86379888.filter(c,e,tp,tid)
return bit.band(c:GetReason(),REASON_DESTROY)~=0 and c:IsType(TYPE_MONSTER) and c:GetTurnID()==tid and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c86379888.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -157,7 +157,10 @@ function c86379888.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
if c86379888[7]==1 or c86379888[17]==1 then
if c:IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,86379888,nil,0x4011,2000,2000,nil,nil,nil,POS_FACEUP) then
if c:IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,86379888,nil,0x4011,nil,2000,2000,nil,nil,POS_FACEUP) then
c:SetEntityCode(86379887,true)
Duel.SpecialSummonStep(c,0,tp,tp,true,false,POS_FACEUP)
c:SetEntityCode(86379888,true)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_TYPE)
......@@ -182,7 +185,7 @@ function c86379888.activate(e,tp,eg,ep,ev,re,r,rp)
e5:SetValue(2000)
c:RegisterEffect(e5,true)
c:SetStatus(STATUS_NO_LEVEL,true)
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
Duel.SpecialSummonComplete()
end
end
if c86379888[8]==1 then
......@@ -255,11 +258,12 @@ function c86379888.activate(e,tp,eg,ep,ev,re,r,rp)
if c86379888[20]==1 then
sp=sp+1
end
if sp>0 and Duel.IsExistingMatchingCard(c86379888.filter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil,Duel.GetTurnCount()) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
local tid=Duel.GetTurnCount()
if sp>0 and Duel.IsExistingMatchingCard(c86379888.filter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil,e,tp,tid) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
while sp>0 do
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c86379888.filter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil,Duel.GetTurnCount())
local g=Duel.SelectMatchingCard(tp,c86379888.filter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil,e,tp,tid)
if g:GetCount()>0 then
Duel.SpecialSummonStep(g,0,tp,tp,false,false,POS_FACEUP)
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