Commit c6955700 authored by VanillaSalt's avatar VanillaSalt

fix

parent 9bffea18
...@@ -60,8 +60,7 @@ function c12247206.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,8 +60,7 @@ function c12247206.activate(e,tp,eg,ep,ev,re,r,rp)
local ft2=Duel.GetLocationCount(1-tp,LOCATION_MZONE) local ft2=Duel.GetLocationCount(1-tp,LOCATION_MZONE)
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_FACEUP)
local sg=Duel.SelectMatchingCard(1-tp,c12247206.selfilter,1-tp,LOCATION_MZONE,0,1,1,nil) local sg=Duel.SelectMatchingCard(1-tp,c12247206.selfilter,1-tp,LOCATION_MZONE,0,1,1,nil)
if Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)<5 then if ft2>0 and sg:GetCount()>0 then
if sg:GetCount()>0 then
local g=Duel.GetMatchingGroup(c12247206.filter,1-tp,0x13,0,nil,sg:GetFirst():GetCode(),e,1-tp) local g=Duel.GetMatchingGroup(c12247206.filter,1-tp,0x13,0,nil,sg:GetFirst():GetCode(),e,1-tp)
if g:GetCount()<=ft2 then c12247206.sp(g,1-tp,POS_FACEUP) if g:GetCount()<=ft2 then c12247206.sp(g,1-tp,POS_FACEUP)
else else
...@@ -71,8 +70,6 @@ function c12247206.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,8 +70,6 @@ function c12247206.activate(e,tp,eg,ep,ev,re,r,rp)
g:Remove(c12247206.rmfilter,nil) g:Remove(c12247206.rmfilter,nil)
gg:Merge(g) gg:Merge(g)
end end
else
end
end end
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
Duel.SendtoGrave(gg,REASON_EFFECT) Duel.SendtoGrave(gg,REASON_EFFECT)
......
...@@ -23,7 +23,7 @@ end ...@@ -23,7 +23,7 @@ end
function c14735698.filter(c,e,tp,m) function c14735698.filter(c,e,tp,m)
if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81 if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end
if c:IsCode(21105106) then return c:fuscon() end if c:IsCode(21105106) then return c:ritual_custom_operation(m) end
local mg=nil local mg=nil
if c.mat_filter then if c.mat_filter then
mg=m:Filter(c.mat_filter,c) mg=m:Filter(c.mat_filter,c)
...@@ -54,7 +54,7 @@ function c14735698.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,7 +54,7 @@ function c14735698.activate(e,tp,eg,ep,ev,re,r,rp)
if tg:GetCount()>0 then if tg:GetCount()>0 then
local tc=tg:GetFirst() local tc=tg:GetFirst()
if tc:IsCode(21105106) then if tc:IsCode(21105106) then
tc:fusop() tc:ritual_custom_operation(mg1)
local mat=tc:GetMaterial() local mat=tc:GetMaterial()
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
else else
......
...@@ -32,5 +32,6 @@ function c16067089.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -32,5 +32,6 @@ function c16067089.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc then
Duel.SpecialSummon(tc,0,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,0,tp,tp,true,false,POS_FACEUP)
tc:CompleteProcedure()
end end
end end
...@@ -90,47 +90,45 @@ end ...@@ -90,47 +90,45 @@ end
function c21105106.filter(c,fc,tp) function c21105106.filter(c,fc,tp)
return c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:GetRitualLevel(fc)==c:GetLevel() return c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:GetRitualLevel(fc)==c:GetLevel()
end end
function c21105106.fuscon(c) function c21105106.ritual_custom_condition(c,mg)
local tp=c:GetControler() local tp=c:GetControler()
local mg=Duel.GetRitualMaterial(tp)
local g=mg:Filter(c21105106.filter,c,c,tp) local g=mg:Filter(c21105106.filter,c,c,tp)
return g:IsExists(c21105106.fusfilter1,1,nil,c:GetLevel(),g) return g:IsExists(c21105106.ritfilter1,1,nil,c:GetLevel(),g)
end end
function c21105106.fusfilter1(c,lv,mg) function c21105106.ritfilter1(c,lv,mg)
lv=lv-c:GetLevel() lv=lv-c:GetLevel()
if lv<2 then return false end if lv<2 then return false end
local mg2=mg:Clone() local mg2=mg:Clone()
mg2:Remove(Card.IsRace,nil,c:GetRace()) mg2:Remove(Card.IsRace,nil,c:GetRace())
return mg2:IsExists(c21105106.fusfilter2,1,nil,lv,mg2) return mg2:IsExists(c21105106.ritfilter2,1,nil,lv,mg2)
end end
function c21105106.fusfilter2(c,lv,mg) function c21105106.ritfilter2(c,lv,mg)
local clv=c:GetLevel() local clv=c:GetLevel()
lv=lv-clv lv=lv-clv
if lv<1 then return false end if lv<1 then return false end
local mg2=mg:Clone() local mg2=mg:Clone()
mg2:Remove(Card.IsRace,nil,c:GetRace()) mg2:Remove(Card.IsRace,nil,c:GetRace())
return mg2:IsExists(c21105106.fusfilter3,1,nil,lv) return mg2:IsExists(c21105106.ritfilter3,1,nil,lv)
end end
function c21105106.fusfilter3(c,lv) function c21105106.ritfilter3(c,lv)
return c:GetLevel()==lv return c:GetLevel()==lv
end end
function c21105106.fusop(c) function c21105106.ritual_custom_operation(c,mg)
local tp=c:GetControler() local tp=c:GetControler()
local lv=c:GetLevel() local lv=c:GetLevel()
local mg=Duel.GetRitualMaterial(tp)
local g=mg:Filter(c21105106.filter,c,c,tp) local g=mg:Filter(c21105106.filter,c,c,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g1=g:FilterSelect(tp,c21105106.fusfilter1,1,1,nil,lv,g) local g1=g:FilterSelect(tp,c21105106.ritfilter1,1,1,nil,lv,g)
local tc1=g1:GetFirst() local tc1=g1:GetFirst()
lv=lv-tc1:GetLevel() lv=lv-tc1:GetLevel()
g:Remove(Card.IsRace,nil,tc1:GetRace()) g:Remove(Card.IsRace,nil,tc1:GetRace())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g2=g:FilterSelect(tp,c21105106.fusfilter2,1,1,nil,lv,g) local g2=g:FilterSelect(tp,c21105106.ritfilter2,1,1,nil,lv,g)
local tc2=g2:GetFirst() local tc2=g2:GetFirst()
lv=lv-tc2:GetLevel() lv=lv-tc2:GetLevel()
g:Remove(Card.IsRace,nil,tc2:GetRace()) g:Remove(Card.IsRace,nil,tc2:GetRace())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g3=g:FilterSelect(tp,c21105106.fusfilter3,1,1,nil,lv) local g3=g:FilterSelect(tp,c21105106.ritfilter3,1,1,nil,lv)
g1:Merge(g2) g1:Merge(g2)
g1:Merge(g3) g1:Merge(g3)
c:SetMaterial(g1) c:SetMaterial(g1)
......
...@@ -45,7 +45,7 @@ function c28630501.sumop(e,tp,eg,ep,ev,re,r,rp) ...@@ -45,7 +45,7 @@ function c28630501.sumop(e,tp,eg,ep,ev,re,r,rp)
end end
function c28630501.thcon(e,tp,eg,ep,ev,re,r,rp) function c28630501.thcon(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst() local tc=eg:GetFirst()
return tc:IsControler(tp) and tc:IsSetCard(0xb3) and tc~=e:GetHandler() return ep~=tp and tc:IsControler(tp) and tc:IsSetCard(0xb3) and tc~=e:GetHandler()
end end
function c28630501.thfilter(c) function c28630501.thfilter(c)
return c:IsSetCard(0xb3) and not c:IsCode(28630501) and c:IsAbleToHand() return c:IsSetCard(0xb3) and not c:IsCode(28630501) and c:IsAbleToHand()
......
...@@ -42,7 +42,9 @@ function c56832966.actcon(e) ...@@ -42,7 +42,9 @@ function c56832966.actcon(e)
return Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler() return Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler()
end end
function c56832966.atkcon(e,tp,eg,ep,ev,re,r,rp) function c56832966.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetBattleTarget()~=nil and e:GetHandler():GetOverlayGroup():IsExists(Card.IsSetCard,1,nil,0x7f) local c=e:GetHandler()
return (Duel.GetAttacker()==c or Duel.GetAttackTarget()==c)
and c:GetBattleTarget()~=nil and c:GetOverlayGroup():IsExists(Card.IsSetCard,1,nil,0x7f)
end end
function c56832966.atkcost(e,tp,eg,ep,ev,re,r,rp,chk) function c56832966.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -8,13 +8,18 @@ function c57594700.initial_effect(c) ...@@ -8,13 +8,18 @@ function c57594700.initial_effect(c)
e1:SetCategory(CATEGORY_REMOVE+CATEGORY_ATKCHANGE) e1:SetCategory(CATEGORY_REMOVE+CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_NO_TURN_RESET)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetHintTiming(TIMING_DAMAGE_STEP)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(c57594700.condition)
e1:SetTarget(c57594700.target) e1:SetTarget(c57594700.target)
e1:SetOperation(c57594700.operation) e1:SetOperation(c57594700.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c57594700.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()~=PHASE_DAMAGE or not Duel.IsDamageCalculated()
end
function c57594700.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c57594700.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsAbleToRemove() end if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsAbleToRemove() end
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToRemove,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil) end if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToRemove,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil) end
......
...@@ -29,15 +29,17 @@ function c68933343.filter(c) ...@@ -29,15 +29,17 @@ function c68933343.filter(c)
end end
function c68933343.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c68933343.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c68933343.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and c68933343.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c68933343.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0
and Duel.IsExistingTarget(c68933343.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectTarget(tp,c68933343.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil) Duel.SelectTarget(tp,c68933343.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
end end
function c68933343.target2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c68933343.target2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c68933343.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c68933343.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c68933343.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0
and Duel.IsExistingTarget(c68933343.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectTarget(tp,c68933343.filter,tp,LOCATION_MZONE,0,1,1,nil) Duel.SelectTarget(tp,c68933343.filter,tp,LOCATION_MZONE,0,1,1,nil)
end end
function c68933343.operation(e,tp,eg,ep,ev,re,r,rp) function c68933343.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -45,7 +45,7 @@ function c70245411.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -45,7 +45,7 @@ function c70245411.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetOperatedGroup():GetFirst() local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect() Duel.BreakEffect()
if tc:IsSetCard(0xa9) then if tc:IsSetCard(0xa9) and tc:IsType(TYPE_MONSTER) then
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g=Duel.GetMatchingGroup(c70245411.spfilter,tp,LOCATION_HAND,0,nil,e,tp) local g=Duel.GetMatchingGroup(c70245411.spfilter,tp,LOCATION_HAND,0,nil,e,tp)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(70245411,2)) then if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(70245411,2)) then
......
...@@ -74,6 +74,7 @@ end ...@@ -74,6 +74,7 @@ end
function c8062132.operation(e,tp,eg,ep,ev,re,r,rp) function c8062132.operation(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then if e:GetHandler():IsRelateToEffect(e) then
Duel.SpecialSummon(e:GetHandler(),0,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(e:GetHandler(),0,tp,tp,true,false,POS_FACEUP)
e:GetHandler():CompleteProcedure()
end end
end end
function c8062132.ctcon(e,tp,eg,ep,ev,re,r,rp) function c8062132.ctcon(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -40,7 +40,7 @@ end ...@@ -40,7 +40,7 @@ end
function c84388461.filter(c,e,tp,m) function c84388461.filter(c,e,tp,m)
if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81 if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end
if c:IsCode(21105106) then return c:fuscon() end if c:IsCode(21105106) then return c:ritual_custom_operation(m) end
local mg=nil local mg=nil
if c.mat_filter then if c.mat_filter then
mg=m:Filter(c.mat_filter,c) mg=m:Filter(c.mat_filter,c)
...@@ -69,7 +69,7 @@ function c84388461.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -69,7 +69,7 @@ function c84388461.operation(e,tp,eg,ep,ev,re,r,rp)
if tg:GetCount()>0 then if tg:GetCount()>0 then
local tc=tg:GetFirst() local tc=tg:GetFirst()
if tc:IsCode(21105106) then if tc:IsCode(21105106) then
tc:fusop() tc:ritual_custom_operation(mg)
local mat=tc:GetMaterial() local mat=tc:GetMaterial()
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
else else
......
...@@ -23,7 +23,7 @@ end ...@@ -23,7 +23,7 @@ end
function c97211663.filter(c,e,tp,m) function c97211663.filter(c,e,tp,m)
if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81 if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,true) or c:IsHasEffect(EFFECT_NECRO_VALLEY) then return false end or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,true) or c:IsHasEffect(EFFECT_NECRO_VALLEY) then return false end
if c:IsCode(21105106) then return c:IsLocation(LOCATION_HAND) and c:fuscon() end if c:IsCode(21105106) then return c:IsLocation(LOCATION_HAND) and c:ritual_custom_operation(m) end
local mg=nil local mg=nil
if c.mat_filter then if c.mat_filter then
mg=m:Filter(c.mat_filter,c) mg=m:Filter(c.mat_filter,c)
...@@ -47,7 +47,7 @@ function c97211663.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,7 +47,7 @@ function c97211663.activate(e,tp,eg,ep,ev,re,r,rp)
if tg:GetCount()>0 then if tg:GetCount()>0 then
local tc=tg:GetFirst() local tc=tg:GetFirst()
if tc:IsCode(21105106) then if tc:IsCode(21105106) then
tc:fusop() tc:ritual_custom_operation(mg1)
local mat=tc:GetMaterial() local mat=tc:GetMaterial()
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
else else
......
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