Commit 41b3288e authored by DailyShana's avatar DailyShana

fix

parent ce7e7969
......@@ -41,25 +41,27 @@ function c11163040.cfilter(c)
return c:IsSetCard(0xd3) and c:IsPreviousLocation(LOCATION_HAND+LOCATION_GRAVE)
end
function c11163040.counter(e,tp,eg,ep,ev,re,r,rp)
local ct=eg:FilterCount(c11163040.cfilter,nil)
if ct>0 then
e:GetHandler():AddCounter(0x37,1,true)
if eg:IsExists(c11163040.cfilter,1,nil) then
e:GetHandler():AddCounter(0x37,1)
end
end
function c11163040.filter(c,e,tp)
return c:IsFaceup() and c:IsSetCard(0xd3) and c:IsDestructable()
and Duel.IsExistingMatchingCard(c11163040.chkfilter,tp,LOCATION_DECK,0,1,nil,e,tp,c:GetControler(),c:GetCode())
and Duel.IsExistingMatchingCard(c11163040.chkfilter,tp,LOCATION_DECK,0,1,nil,e,tp,c:GetControler(),c:GetOriginalCode())
end
function c11163040.chkfilter(c,e,tp,cc,code)
return c:IsSetCard(0xd3) and not c:IsCode(code)
and Duel.IsPlayerCanSpecialSummonMonster(tp,c:GetCode(),cc,0x21,c:GetAttack(),c:GetDefence(),c:GetLevel(),c:GetRace(),c:GetAttribute())
return c:IsSetCard(0xd3) and c:GetOriginalCode()~=code and
not c:IsHasEffect(EFFECT_REVIVE_LIMIT) and Duel.IsPlayerCanSpecialSummon(tp,0,POS_FACEUP,cc,c)
end
function c11163040.spfilter(c,e,tp,cc,code)
return c:IsSetCard(0xd3) and not c:IsCode(code) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,cc)
return c:IsSetCard(0xd3) and c:GetOriginalCode()~=code and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,cc)
end
function c11163040.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c11163040.filter(chkc,e,tp) end
if chk==0 then return Duel.IsExistingTarget(c11163040.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and Duel.IsExistingTarget(c11163040.filter,tp,LOCATION_MZONE,0,1,nil,e,tp)
or Duel.GetLocationCount(1-tp,LOCATION_MZONE)>-1
and Duel.IsExistingTarget(c11163040.filter,tp,0,LOCATION_MZONE,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,c11163040.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
......@@ -67,18 +69,18 @@ function c11163040.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end
function c11163040.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
local tc=Duel.GetFirstTarget()
if not (tc and tc:IsRelateToEffect(e) and c:IsRelateToEffect(e)) then return end
if not tc:IsRelateToEffect(e) then return end
local cc=tc:GetControler()
local code=tc:GetCode()
local g=Duel.GetMatchingGroup(c11163040.chkfilter,tp,LOCATION_DECK,0,nil,e,tp,cc,code)
if Duel.Destroy(tc,REASON_EFFECT)~=0 and g:GetCount()>0 then
Duel.BreakEffect()
g=Duel.GetMatchingGroup(c11163040.spfilter,tp,LOCATION_DECK,0,nil,e,tp,cc,code)
local code=tc:GetOriginalCode()
if Duel.Destroy(tc,REASON_EFFECT)~=0 then
if Duel.GetLocationCount(cc,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
if sg:GetCount()>0 then
Duel.SpecialSummon(sg,0,tp,cc,false,false,POS_FACEUP)
local g=Duel.SelectMatchingCard(tp,c11163040.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,cc,code)
if g:GetCount()>0 then
Duel.BreakEffect()
Duel.SpecialSummon(g,0,tp,cc,false,false,POS_FACEUP)
end
end
end
......
......@@ -36,20 +36,16 @@ function c12385638.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_REVERSE_DAMAGE)
e1:SetTargetRange(1,0)
e1:SetCondition(c12385638.condition)
e1:SetValue(c12385638.valcon)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function c12385638.condition(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.GetAttacker()
local d=Duel.GetAttackTarget()
return (a:IsSetCard(0xd2) and a:IsControler(tp)) or (d and d:IsSetCard(0xd2) and d:IsControler(tp))
end
function c12385638.valcon(e,re,r,rp)
local c=e:GetHandler()
if c:GetFlagEffect(c:GetControler(),12385638)==0 and bit.band(r,REASON_BATTLE)~=0 then
c:RegisterFlagEffect(c:GetControler(),12385638,RESET_PHASE+PHASE_END,0,1)
function c12385638.valcon(e,re,r,rp,rc)
local tp=e:GetHandlerPlayer()
local bc=rc:GetBattleTarget()
if bit.band(r,REASON_BATTLE)~=0 and bc and bc:IsSetCard(0xd2) and bc:IsControler(tp)
and Duel.GetFlagEffect(tp,12385638)==0 then
Duel.RegisterFlagEffect(tp,12385638,RESET_PHASE+PHASE_END,0,1)
return true
else
return false
......
......@@ -16,8 +16,8 @@ function c12408276.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(12408276,1))
e2:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY)
e2:SetCode(EVENT_CHAINING)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e2:SetCountLimit(1)
......@@ -55,7 +55,7 @@ function c12408276.negcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000) end
Duel.PayLPCost(tp,1000)
end
function c12408276.negtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
function c12408276.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
......
......@@ -49,7 +49,7 @@ end
function c34318086.spfilter(c,e,tp)
return c:IsRace(RACE_SPELLCASTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c34318086.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
function c34318086.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c34318086.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
......@@ -75,7 +75,6 @@ function c34318086.spop(e,tp,eg,ep,ev,re,r,rp)
local at=Duel.GetAttacker()
if at and not at:IsImmuneToEffect(e) and Duel.ChangeAttackTarget(tc) then
Duel.BreakEffect()
Duel.ChangeAttackTarget(tc)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_SET_ATTACK_FINAL)
......
......@@ -63,7 +63,7 @@ function c48770333.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c48770333.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(e:GetHandler())
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
......
......@@ -22,7 +22,7 @@ function c50619462.spfilter(c,e,tp,race)
end
function c50619462.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(100)
if chk==0 then return true end
return true
end
function c50619462.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
......@@ -34,46 +34,57 @@ function c50619462.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.SelectMatchingCard(tp,c50619462.cfilter,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
local tc=g:GetFirst()
Duel.SendtoGrave(tc,REASON_COST)
Duel.SetTargetCard(tc)
e:SetLabelObject(tc)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c50619462.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
local race=e:GetLabelObject():GetOriginalRace()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c50619462.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc:GetOriginalRace())
local tg=g:GetFirst()
if tg and Duel.SpecialSummonStep(tg,0,tp,tp,false,false,POS_FACEUP) then
local g=Duel.SelectMatchingCard(tp,c50619462.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,race)
local tc=g:GetFirst()
if tc and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then
tc:RegisterFlagEffect(50619462,RESET_EVENT+0x1fe0000,0,1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fe0000)
tg:RegisterEffect(e1)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+0x1fe0000)
tg:RegisterEffect(e2)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetLabelObject(tc)
e3:SetCondition(c50619462.descon)
e3:SetOperation(c50619462.desop)
e3:SetReset(RESET_EVENT+0x1fe0000)
tg:RegisterEffect(e3)
Duel.RegisterEffect(e3,tp)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_CANNOT_ATTACK)
e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetReset(RESET_EVENT+0x1fe0000)
tg:RegisterEffect(e4,true)
tc:RegisterEffect(e4,true)
Duel.SpecialSummonComplete()
end
end
end
function c50619462.descon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetFlagEffectLabel(50619462)~=0 then
return true
else
e:Reset()
return false
end
end
function c50619462.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
local tc=e:GetLabelObject()
Duel.Destroy(tc,REASON_EFFECT)
end
......@@ -25,7 +25,7 @@ function c84769941.initial_effect(c)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_SET_ATTACK)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_MZONE)
e3:SetValue(c84769941.atkval)
c:RegisterEffect(e3)
......@@ -74,7 +74,7 @@ function c84769941.eqlimit(e,c)
return e:GetOwner()==c
end
function c84769941.atkfilter(c)
return c:IsSetCard(0xd3) and c:GetFlagEffect(84769941)~=0
return c:IsSetCard(0xd3) and c:GetAttack()>=0 and c:GetFlagEffect(84769941)~=0
end
function c84769941.atkval(e,c)
local g=e:GetHandler():GetEquipGroup():Filter(c84769941.atkfilter,nil)
......
......@@ -7,7 +7,7 @@ function c85991529.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
c:RegisterEffect(e1)
--special summon
--special summon rule
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
......@@ -56,9 +56,9 @@ function c85991529.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<0 then return false end
if ft<=0 then return false end
local g=Duel.GetMatchingGroup(c85991529.spfilter,tp,LOCATION_HAND,0,c)
return ft>0 and g:CheckWithSumGreater(Card.GetLevel,10)
return g:CheckWithSumGreater(Card.GetLevel,10)
end
function c85991529.spop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.GetMatchingGroup(c85991529.spfilter,tp,LOCATION_HAND,0,c)
......@@ -84,8 +84,6 @@ function c85991529.distg(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
function c85991529.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsFaceup() or not c:IsRelateToEffect(e) then return end
Duel.NegateActivation(ev)
if re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
......
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