Commit 45749037 authored by xiaoye's avatar xiaoye

fix

parent 675d4fff
...@@ -12,7 +12,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -12,7 +12,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end end
if vgf.cost.SoulBlast(2)(e,tp,eg,ep,ev,re,r,rp,0) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then if vgf.cost.SoulBlast(2)(e,tp,eg,ep,ev,re,r,rp,0) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then
vgf.cost.SoulBlast(2)(e,tp,eg,ep,ev,re,r,rp,1) vgf.cost.SoulBlast(2)(e,tp,eg,ep,ev,re,r,rp,1)
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end end
end end
......
...@@ -8,8 +8,8 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -8,8 +8,8 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return vgf.IsExistingMatchingCard(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,nil) end if chk==0 then return vgf.IsExistingMatchingCard(Card.IsR,tp,LOCATION_CIRCLE,0,1,nil) end
local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,1,nil)
vgf.Sendto(LOCATION_SOUL,g,c) vgf.Sendto(LOCATION_SOUL,g,c)
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -10,7 +10,7 @@ end ...@@ -10,7 +10,7 @@ end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
local g=vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,vgf.IsCanBeCalled,1,1,nil,e,tp,nil,nil,0x4) local g=vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsCanBeCalled,1,1,nil,e,tp,nil,nil,0x4)
vgf.Sendto(LOCATION_CIRCLE,g,0,tp,0x4) vgf.Sendto(LOCATION_CIRCLE,g,0,tp,0x4)
vgf.op.SoulCharge(1)(e,tp,eg,ep,ev,re,r,rp) vgf.op.SoulCharge(1)(e,tp,eg,ep,ev,re,r,rp)
end end
\ No newline at end of file
...@@ -15,7 +15,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -15,7 +15,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if vgf.IsCanBeCalled(tc,e,tp) then if tc:IsCanBeCalled(e,tp) then
vgf.Sendto(LOCATION_CIRCLE,g,0,tp) vgf.Sendto(LOCATION_CIRCLE,g,0,tp)
else else
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
......
...@@ -13,6 +13,6 @@ function cm.filter(c) ...@@ -13,6 +13,6 @@ function cm.filter(c)
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return c:IsRelateToEffect(e) end if chk==0 then return c:IsRelateToEffect(e) end
local rc=vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst() local rc=vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst()
vgf.Sendto(LOCATION_SOUL,c,rc) vgf.Sendto(LOCATION_SOUL,c,rc)
end end
\ No newline at end of file
...@@ -8,7 +8,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -8,7 +8,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local ct=1 local ct=1
if c:IsSummonType(SUMMON_TYPE_SELFRIDE) then ct=3 end if c:IsSummonType(SUMMON_TYPE_SELFRIDE) then ct=3 end
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,ct,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,ct,nil)
if g then if g then
Duel.Hintselectgion(g) Duel.Hintselectgion(g)
for tc in vgf.Next(g) do for tc in vgf.Next(g) do
......
...@@ -12,7 +12,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -12,7 +12,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if vgf.IsCanBeCalled(tc,e,tp) then if tc:IsCanBeCalled(e,tp) then
vgf.Sendto(LOCATION_CIRCLE,g,0,tp) vgf.Sendto(LOCATION_CIRCLE,g,0,tp)
else else
vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
......
...@@ -13,7 +13,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,7 +13,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if vgf.IsCanBeCalled(tc,e,tp) and tc:IsLevelBelow(2) then if tc:IsCanBeCalled(e,tp) and tc:IsLevelBelow(2) then
vgf.Sendto(LOCATION_CIRCLE,g,0,tp) vgf.Sendto(LOCATION_CIRCLE,g,0,tp)
else else
vgf.Sendto(LOCATION_SOUL,g,c) vgf.Sendto(LOCATION_SOUL,g,c)
......
...@@ -5,5 +5,5 @@ end ...@@ -5,5 +5,5 @@ end
function cm.con(e) function cm.con(e)
local c=e:GetHandler() local c=e:GetHandler()
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return vgf.con.IsR(e) and vgf.IsExistingMatchingCard(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,4,c) return vgf.con.IsR(e) and vgf.IsExistingMatchingCard(Card.IsR,tp,LOCATION_CIRCLE,0,4,c)
end end
\ No newline at end of file
...@@ -10,7 +10,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -10,7 +10,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if vgf.IsCanBeCalled(tc,e,tp) then if tc:IsCanBeCalled(e,tp) then
vgf.Sendto(LOCATION_CIRCLE,g,0,tp) vgf.Sendto(LOCATION_CIRCLE,g,0,tp)
else else
vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
......
...@@ -13,7 +13,7 @@ function cm.filter(c) ...@@ -13,7 +13,7 @@ function cm.filter(c)
end end
function cm.op1(e,tp,eg,ep,ev,re,r,rp) function cm.op1(e,tp,eg,ep,ev,re,r,rp)
if not vgf.CheckPrison(tp) then return end if not vgf.CheckPrison(tp) then return end
local g1=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,2,2,nil) local g1=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,2,2,nil)
vgf.SendtoPrison(g1,tp) vgf.SendtoPrison(g1,tp)
end end
function cm.con2(e,c) function cm.con2(e,c)
......
...@@ -9,6 +9,6 @@ end ...@@ -9,6 +9,6 @@ end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if not vgf.CheckPrison(tp) then return end if not vgf.CheckPrison(tp) then return end
local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,0,2,nil) local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,0,2,nil)
vgf.SendtoPrison(g,tp) vgf.SendtoPrison(g,tp)
end end
\ No newline at end of file
...@@ -9,6 +9,6 @@ end ...@@ -9,6 +9,6 @@ end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if not vgf.CheckPrison(tp) then return end if not vgf.CheckPrison(tp) then return end
local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
vgf.SendtoPrison(g,tp) vgf.SendtoPrison(g,tp)
end end
\ No newline at end of file
...@@ -49,7 +49,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -49,7 +49,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,vgf.filter.IsV,tp,0,LOCATION_CIRCLE,1,1,nil):GetFirst() local tc=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,Card.IsV,tp,0,LOCATION_CIRCLE,1,1,nil):GetFirst()
if tc:GetAttack()>1 then if tc:GetAttack()>1 then
local atk=tc:GetAttack()-1 local atk=tc:GetAttack()-1
vgf.AtkUp(c,tc,-atk) vgf.AtkUp(c,tc,-atk)
......
...@@ -10,7 +10,7 @@ end ...@@ -10,7 +10,7 @@ end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetLabelObject() local c=e:GetLabelObject()
if c:IsRelateToEffect(e) and vgf.IsCanBeCalled(c,e,tp) then if c:IsRelateToEffect(e) and c:IsCanBeCalled(e,tp) then
vgf.Sendto(LOCATION_CIRCLE,c,0,tp) vgf.Sendto(LOCATION_CIRCLE,c,0,tp)
end end
end end
......
...@@ -9,6 +9,6 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -9,6 +9,6 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local rc=vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst() local rc=vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst()
if c:IsRelateToEffect(e) then vgf.Sendto(LOCATION_SOUL,c,rc) end if c:IsRelateToEffect(e) then vgf.Sendto(LOCATION_SOUL,c,rc) end
end end
\ No newline at end of file
...@@ -25,8 +25,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -25,8 +25,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttacker()==c return Duel.GetAttacker()==c
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return c:IsSetCard(0x76) and vgf.IsCanBeCalled(c,e,tp) return c:IsSetCard(0x76) and c:IsCanBeCalled(e,tp)end
end
function cm.checkfilter(c) function cm.checkfilter(c)
return c:IsRideOnVCircle() and c:IsLevelAbove(3) return c:IsRideOnVCircle() and c:IsLevelAbove(3)
end end
......
...@@ -20,5 +20,5 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp) ...@@ -20,5 +20,5 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.cfilter(c,mc) function cm.cfilter(c,mc)
return c):IsContains(mc:GetColumnGroup() and c:IsControler(mc:GetControler()) and c:GetFlagEffect(FLAG_SUPPORT)>0 return c:IsContains(mc:GetColumnGroup()) and c:IsControler(mc:GetControler()) and c:GetFlagEffect(FLAG_SUPPORT)>0
end end
\ No newline at end of file
...@@ -48,5 +48,4 @@ function cm.filter(c) ...@@ -48,5 +48,4 @@ function cm.filter(c)
return c:IsSetCard(0x77) return c:IsSetCard(0x77)
end end
function cm.filter1(c,e,tp) function cm.filter1(c,e,tp)
return c:IsLevelBelow(2) and vgf.IsCanBeCalled(c,e,tp) return c:IsLevelBelow(2) and c:IsCanBeCalled(e,tp)end
end \ No newline at end of file
\ No newline at end of file
...@@ -38,5 +38,4 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -38,5 +38,4 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
vgf.Sendto(LOCATION_CIRCLE,g,SUMMON_TYPE_RIDE,tp,"FromSouloV",POS_FACEDOWN_DEFENCE) vgf.Sendto(LOCATION_CIRCLE,g,SUMMON_TYPE_RIDE,tp,"FromSouloV",POS_FACEDOWN_DEFENCE)
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return c:IsSetCard(0x202) and vgf.IsCanBeCalled(c,e,tp,SUMMON_TYPE_RIDE,POS_FACEDOWN_DEFENCE,"FromSouloV") return c:IsSetCard(0x202) and c:IsCanBeCalled(e,tp,SUMMON_TYPE_RIDE,POS_FACEDOWN_DEFENCE,"FromSouloV")end
end \ No newline at end of file
\ No newline at end of file
...@@ -13,5 +13,5 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,5 +13,5 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return c:IsRearguard() and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_CIRCLE,0,1,nil) return c:IsRearguard() and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_CIRCLE,0,1,nil)
end end
function cm.filter(c) function cm.filter(c)
return vgf.filter.IsV and c:IsSetCard(0x77) return Card.IsV and c:IsSetCard(0x77)
end end
\ No newline at end of file
...@@ -7,7 +7,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -7,7 +7,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and vgf.IsCanBeCalled(c,e,tp) then if c:IsRelateToEffect(e) and c:IsCanBeCalled(e,tp) then
vgf.Sendto(LOCATION_CIRCLE,c,0,tp) vgf.Sendto(LOCATION_CIRCLE,c,0,tp)
end end
end end
\ No newline at end of file
...@@ -19,5 +19,4 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -19,5 +19,4 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return c:IsLevelAbove(2) and vgf.IsCanBeCalled(c,e,tp) return c:IsLevelAbove(2) and c:IsCanBeCalled(e,tp)end
end \ No newline at end of file
\ No newline at end of file
...@@ -23,7 +23,7 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp) ...@@ -23,7 +23,7 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
local ct=bit.ReturnCount(zone) local ct=bit.ReturnCount(zone)
zone=bit.bor(zone,0xffffff00) zone=bit.bor(zone,0xffffff00)
if ct>2 then ct=2 end if ct>2 then ct=2 end
local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,vgf.IsCanBeCalled,tp,LOCATION_HAND,0,0,ct,nil,e,tp) local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,Card.IsCanBeCalled,tp,LOCATION_HAND,0,0,ct,nil,e,tp)
if g:GetCount()==1 then if g:GetCount()==1 then
vgf.Sendto(LOCATION_CIRCLE,g,0,tp) vgf.Sendto(LOCATION_CIRCLE,g,0,tp)
elseif g:GetCount()==2 then elseif g:GetCount()==2 then
......
...@@ -14,5 +14,5 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -14,5 +14,5 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_CIRCLE,0,1,nil,e:GetHandler()) and Duel.GetAttacker()==e:GetHandler() and vgf.con.IsR(e) return vgf.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_CIRCLE,0,1,nil,e:GetHandler()) and Duel.GetAttacker()==e:GetHandler() and vgf.con.IsR(e)
end end
function cm.cfilter(c,mc) function cm.cfilter(c,mc)
return c):IsContains(mc:GetColumnGroup() and c:IsControler(mc:GetControler()) and c:GetFlagEffect(FLAG_SUPPORT)>0 return c:IsContains(mc:GetColumnGroup()) and c:IsControler(mc:GetControler()) and c:GetFlagEffect(FLAG_SUPPORT)>0
end end
\ No newline at end of file
...@@ -14,8 +14,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -14,8 +14,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
vgf.Sendto(LOCATION_CIRCLE,g,0,tp,nil,POS_FACEUP_DEFENSE) vgf.Sendto(LOCATION_CIRCLE,g,0,tp,nil,POS_FACEUP_DEFENSE)
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return c:IsLevel(c,0,1) and vgf.IsCanBeCalled(c,e,tp) return c:IsLevel(c,0,1) and c:IsCanBeCalled(e,tp)end
end
function cm.operation1(e,tp,eg,ep,ev,re,r,rp) function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
......
...@@ -10,8 +10,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -10,8 +10,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
local off=1 local off=1
local ops={} local ops={}
local a=vgf.IsCanBeCalled(tc,e,tp) local a = tc:IsCanBeCalled(e,tp)
if a then if a then
ops[off]=1152 ops[off]=1152
off=off+1 off=off+1
end end
......
...@@ -5,8 +5,8 @@ function cm.initial_effect(c) ...@@ -5,8 +5,8 @@ function cm.initial_effect(c)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,vgf.filter.IsV,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,Card.IsV,tp,LOCATION_CIRCLE,0,1,1,nil)
vgd.action.AbilityCont(c, m, LOCATION_CIRCLE, EFFECT_TYPE_FIELD, EFFECT_UPDATE_ATTACK, 5000, nil, cm.tg, LOCATION_CIRCLE, 0, RESET_PHASE+PHASE_END, g:GetFirst() vgd.action.AbilityCont(c, m, LOCATION_CIRCLE, EFFECT_TYPE_FIELD, EFFECT_UPDATE_ATTACK, 5000, nil, cm.tg, LOCATION_CIRCLE, 0, RESET_PHASE+PHASE_END, g:GetFirst())
end end
function cm.tg(e,c) function cm.tg(e,c)
return c:IsRearguard()end return c:IsRearguard()end
\ No newline at end of file
...@@ -13,7 +13,7 @@ function cm.filter(c) ...@@ -13,7 +13,7 @@ function cm.filter(c)
return c:IsCanChangePosition() and c:IsPosition(POS_FACEUP_ATTACK) and c:IsRearguard()end return c:IsCanChangePosition() and c:IsPosition(POS_FACEUP_ATTACK) and c:IsRearguard()end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsV,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsV,tp,0,LOCATION_CIRCLE,1,1,nil)
if g:GetCount()>0 then vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) end if g:GetCount()>0 then vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) end
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
vgf.AtkUp(c,c,10000) vgf.AtkUp(c,c,10000)
...@@ -29,7 +29,7 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -29,7 +29,7 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(g) Duel.ConfirmCards(g)
local ct1=vgf.GetAvailableLocation(tp) local ct1=vgf.GetAvailableLocation(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
local sg=g:FilterSelect(tp,vgf.IsCanBeCalled,0,ct1,nil,e,tp) local sg=g:FilterSelect(tp,Card.IsCanBeCalled,0,ct1,nil,e,tp)
if sg:GetCount()>0 then if sg:GetCount()>0 then
vgf.Sendto(LOCATION_CIRCLE,sg,0,tp) vgf.Sendto(LOCATION_CIRCLE,sg,0,tp)
g:Sub(sg) g:Sub(sg)
......
...@@ -13,14 +13,14 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,14 +13,14 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
end end
if ct>=15 then if ct>=15 then
local g1=vgf.GetMatchingGroup(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,nil) local g1=vgf.GetMatchingGroup(Card.IsR,tp,LOCATION_CIRCLE,0,nil)
local g2=vgf.GetMatchingGroup(vgf.filter.IsR,tp,0,LOCATION_CIRCLE,nil) local g2=vgf.GetMatchingGroup(Card.IsR,tp,0,LOCATION_CIRCLE,nil)
local tc1=vgf.GetVMonster(tp) local tc1=vgf.GetVMonster(tp)
local tc2=vgf.GetVMonster(1-tp) local tc2=vgf.GetVMonster(1-tp)
vgf.Sendto(LOCATION_SOUL,g1,tc1) vgf.Sendto(LOCATION_SOUL,g1,tc1)
vgf.Sendto(LOCATION_SOUL,g2,tc2) vgf.Sendto(LOCATION_SOUL,g2,tc2)
if vgf.GetAvailableLocation(tp)>0 then if vgf.GetAvailableLocation(tp)>0 then
local g=tc1:GetOverlayGroup():FilterSelect(tp,vgf.IsCanBeCalled,tp,0,2,nil,e,tp) local g=tc1:GetOverlayGroup():FilterSelect(tp,Card.IsCanBeCalled,tp,0,2,nil,e,tp)
vgf.Sendto(LOCATION_CIRCLE,g,0,tp) vgf.Sendto(LOCATION_CIRCLE,g,0,tp)
end end
end end
......
...@@ -16,6 +16,6 @@ function cm.con1(e,tp,eg,ep,ev,re,r,rp) ...@@ -16,6 +16,6 @@ function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,m)>0 and cm.con(e,tp,eg,ep,ev,re,r,rp) return Duel.GetFlagEffect(tp,m)>0 and cm.con(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end end
\ No newline at end of file
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgd.action.AbilityCont(c, m, LOCATION_CIRCLE, EFFECT_TYPE_SINGLE, EFFECT_UPDATE_ATTACK, 5000, function(e) vgd.action.AbilityCont(c, m, LOCATION_R_CIRCLE, EFFECT_TYPE_SINGLE, EFFECT_UPDATE_ATTACK, 5000, cm.con)
vgd.action.AbilityCont(c, m, LOCATION_G_CIRCLE, EFFECT_TYPE_SINGLE, 5000, EFFECT_UPDATE_DEFENSE, cm.con) vgd.action.AbilityCont(c, m, LOCATION_G_CIRCLE, EFFECT_TYPE_SINGLE, EFFECT_UPDATE_DEFENSE, 5000, cm.con)
vgd.action.AbilityAuto(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,vgf.cost.SoulBlast(1),vgf.con.RideOnRCircle) vgd.action.AbilityAuto(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,vgf.cost.SoulBlast(1),vgf.con.RideOnRCircle)
end end
function cm.con(e) function cm.con(e)
...@@ -18,4 +18,5 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -18,4 +18,5 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter1(c) function cm.filter1(c)
return c:IsRearguard() and c:IsFrontrow()end return c:IsRearguard() and c:IsFrontrow()
\ No newline at end of file end
\ No newline at end of file
...@@ -11,7 +11,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -11,7 +11,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
vgf.cost.SoulBlast(1)(e,tp,eg,ep,ev,re,r,rp,chk) vgf.cost.SoulBlast(1)(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,vgf.IsCanBeCalled,tp,LOCATION_HAND,0,1,1,nil,e,tp) local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,Card.IsCanBeCalled,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if vgf.Sendto(LOCATION_CIRCLE,g,0,tp)>0 and g:GetFirst():IsLevel(3) then if vgf.Sendto(LOCATION_CIRCLE,g,0,tp)>0 and g:GetFirst():IsLevel(3) then
Duel.Draw(tp,2,REASON_EFFECT) Duel.Draw(tp,2,REASON_EFFECT)
end end
......
...@@ -12,7 +12,7 @@ function cm.filter(c,tp) ...@@ -12,7 +12,7 @@ function cm.filter(c,tp)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_RMONSTER,e,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_RMONSTER,e,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,1,nil)
vgf.AtkUp(c,g,10000) vgf.AtkUp(c,g,10000)
end end
function cm.checkcon(e,tp,eg,ep,ev,re,r,rp) function cm.checkcon(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -7,6 +7,6 @@ function cm.con(e) ...@@ -7,6 +7,6 @@ function cm.con(e)
return c:IsBackrow()end return c:IsBackrow()end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,1,c) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,1,c)
vgf.AtkUp(c,g,c:GetAttack()) vgf.AtkUp(c,g,c:GetAttack())
end end
\ No newline at end of file
...@@ -3,6 +3,6 @@ function cm.initial_effect(c) ...@@ -3,6 +3,6 @@ function cm.initial_effect(c)
vgd.action.AdditionalEffect(c,m,cm.op) vgd.action.AdditionalEffect(c,m,cm.op)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,vgf.filter.IsV,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,Card.IsV,tp,LOCATION_CIRCLE,0,1,1,nil)
Duel.ChangePosition(g,POS_FACEUP_ATTACK) Duel.ChangePosition(g,POS_FACEUP_ATTACK)
end end
\ No newline at end of file
...@@ -12,8 +12,8 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -12,8 +12,8 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return vgf.IsExistingMatchingCard(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,c) end if chk==0 then return vgf.IsExistingMatchingCard(Card.IsR,tp,LOCATION_CIRCLE,0,1,c) end
local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,1,c) local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,1,c)
vgf.Sendto(LOCATION_SOUL,g) vgf.Sendto(LOCATION_SOUL,g)
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -11,7 +11,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -11,7 +11,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
if not vgf.CheckPrison(tp) then return end if not vgf.CheckPrison(tp) then return end
local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
vgf.SendtoPrison(g,tp) vgf.SendtoPrison(g,tp)
if vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,3,nil) then if vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,3,nil) then
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
......
...@@ -4,7 +4,7 @@ function cm.initial_effect(c) ...@@ -4,7 +4,7 @@ function cm.initial_effect(c)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.GetMatchingGroup(vgf.filter.Front,tp,LOCATION_CIRCLE,0,nil) local g=vgf.GetMatchingGroup(Card.IsFrontrow,tp,LOCATION_CIRCLE,0,nil)
vgf.AtkUp(c,g,"DOUBLE") vgf.AtkUp(c,g,"DOUBLE")
vgf.StarUp(c,g,"DOUBLE") vgf.StarUp(c,g,"DOUBLE")
end end
\ No newline at end of file
...@@ -7,16 +7,16 @@ function cm.initial_effect(c) ...@@ -7,16 +7,16 @@ function cm.initial_effect(c)
end end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp) function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
local c=Duel.GetAttacker() local c=Duel.GetAttacker()
return vgf.con.IsR(e) and vgf.GetMatchingGroupCount(vgf.filter.IsR,tp,0,LOCATION_CIRCLE,nil)<=2 and c:IsVanguard()end return vgf.con.IsR(e) and vgf.GetMatchingGroupCount(Card.IsR,tp,0,LOCATION_CIRCLE,nil)<=2 and c:IsVanguard()end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return c:IsRelateToEffect(e) end if chk==0 then return c:IsRelateToEffect(e) end
local rc=vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst() local rc=vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst()
vgf.Sendto(LOCATION_SOUL,c,rc) vgf.Sendto(LOCATION_SOUL,c,rc)
end end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp) function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_CRITICAL_STRIKE,e,tp,vgf.filter.IsV,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_CRITICAL_STRIKE,e,tp,Card.IsV,tp,LOCATION_CIRCLE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
local e1=vgf.StarUp(c,g,1,nil) local e1=vgf.StarUp(c,g,1,nil)
vgf.effect.Reset(c,e1,EVENT_BATTLED) vgf.effect.Reset(c,e1,EVENT_BATTLED)
......
...@@ -23,5 +23,5 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp) ...@@ -23,5 +23,5 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.condition (e,tp,eg,ep,ev,re,r,rp) function cm.condition (e,tp,eg,ep,ev,re,r,rp)
return vgf.GetMatchingGroupCount(vgf.filter.IsR,tp,0,LOCATION_CIRCLE,nil)<=2 return vgf.GetMatchingGroupCount(Card.IsR,tp,0,LOCATION_CIRCLE,nil)<=2
end end
\ No newline at end of file
...@@ -7,7 +7,7 @@ end ...@@ -7,7 +7,7 @@ end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
vgf.op.SoulCharge(1)(e,tp,eg,ep,ev,re,r,rp) vgf.op.SoulCharge(1)(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end end
......
...@@ -16,6 +16,6 @@ function cm.condition1(e,tp,eg,ep,ev,re,r,rp) ...@@ -16,6 +16,6 @@ function cm.condition1(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.GetMatchingGroup(vgf.filter.Front,tp,LOCATION_CIRCLE,0,nil) local g=vgf.GetMatchingGroup(Card.IsFrontrow,tp,LOCATION_CIRCLE,0,nil)
vgf.AtkUp(c,g,5000,nil) vgf.AtkUp(c,g,5000,nil)
end end
\ No newline at end of file
...@@ -14,7 +14,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -14,7 +14,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return vgf.GetMatchingGroupCount(nil,tp,0,LOCATION_HAND,nil)>=1 end if chk==0 then return vgf.GetMatchingGroupCount(nil,tp,0,LOCATION_HAND,nil)>=1 end
local rc=vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst() local rc=vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst()
local g=vgf.SelectMatchingCard(HINTMSG_OVERLAY,e,tp,nil,tp,LOCATION_HAND,0,1,1,nil,e,tp) local g=vgf.SelectMatchingCard(HINTMSG_OVERLAY,e,tp,nil,tp,LOCATION_HAND,0,1,1,nil,e,tp)
vgf.Sendto(LOCATION_SOUL,g,rc) vgf.Sendto(LOCATION_SOUL,g,rc)
end end
......
...@@ -12,9 +12,9 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -12,9 +12,9 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return vgf.IsExistingMatchingCard(nil,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,c) and vgf.cost.CounterBlast(1)(e,tp,eg,ep,ev,re,r,rp,chk) end if chk==0 then return vgf.IsExistingMatchingCard(nil,Card.IsR,tp,LOCATION_CIRCLE,0,1,c) and vgf.cost.CounterBlast(1)(e,tp,eg,ep,ev,re,r,rp,chk) end
vgf.cost.CounterBlast(1)(e,tp,eg,ep,ev,re,r,rp,chk) vgf.cost.CounterBlast(1)(e,tp,eg,ep,ev,re,r,rp,chk)
local g=vgf.SelectMatchingCard(HINTMSG_OVERLAY,nil,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,c) local g=vgf.SelectMatchingCard(HINTMSG_OVERLAY,nil,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,c)
vgf.Sendto(LOCATION_SOUL,g) vgf.Sendto(LOCATION_SOUL,g)
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -4,7 +4,7 @@ function cm.initial_effect(c) ...@@ -4,7 +4,7 @@ function cm.initial_effect(c)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and vgf.IsCanBeCalled(c,e,tp) then if c:IsRelateToEffect(e) and c:IsCanBeCalled(e,tp) then
vgf.Sendto(LOCATION_CIRCLE,c,0,tp) vgf.Sendto(LOCATION_CIRCLE,c,0,tp)
end end
end end
......
...@@ -15,7 +15,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -15,7 +15,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp,chk)
if ct>0 then if ct>0 then
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
local sg=g:FilterSelect(tp,vgf.IsCanBeCalled,0,ct,nil,e,tp) local sg=g:FilterSelect(tp,Card.IsCanBeCalled,0,ct,nil,e,tp)
vgf.Sendto(LOCATION_CIRCLE,sg,0,tp) vgf.Sendto(LOCATION_CIRCLE,sg,0,tp)
sg=Duel.GetOperatedGroup() sg=Duel.GetOperatedGroup()
vgf.AtkUp(c,sg,5000) vgf.AtkUp(c,sg,5000)
......
...@@ -8,7 +8,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -8,7 +8,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_CIRCLE,0,1,nil) and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_CIRCLE,0,1,nil)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end end
function cm.filter(c) function cm.filter(c)
......
...@@ -3,7 +3,7 @@ function cm.initial_effect(c) ...@@ -3,7 +3,7 @@ function cm.initial_effect(c)
vgd.action.AbilityAuto(c,m,LOCATION_CIRCLE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.op,nil,cm.con) vgd.action.AbilityAuto(c,m,LOCATION_CIRCLE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.op,nil,cm.con)
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.GetMatchingGroup(vgf.filter.IsR,tp,0,LOCATION_CIRCLE,nil):GetCount()<=2 and vgf.con.IsR(e) return vgf.GetMatchingGroup(Card.IsR,tp,0,LOCATION_CIRCLE,nil):GetCount()<=2 and vgf.con.IsR(e)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -4,7 +4,7 @@ function cm.initial_effect(c) ...@@ -4,7 +4,7 @@ function cm.initial_effect(c)
vgd.action.AbilityAuto(c,m,LOCATION_CIRCLE,EFFECT_TYPE_FIELD,EVENT_TO_GRAVE,cm.op,vgf.cost.And(vgf.cost.CounterBlast(1),vgf.cost.Retire()),cm.con) vgd.action.AbilityAuto(c,m,LOCATION_CIRCLE,EFFECT_TYPE_FIELD,EVENT_TO_GRAVE,cm.op,vgf.cost.And(vgf.cost.CounterBlast(1),vgf.cost.Retire()),cm.con)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end end
function cm.filter(c,tp) function cm.filter(c,tp)
......
...@@ -16,7 +16,7 @@ function cm.op(e,tp,eg,ep,re,r,rp) ...@@ -16,7 +16,7 @@ function cm.op(e,tp,eg,ep,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
Duel.ConfirmCards(g) Duel.ConfirmCards(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
local sg=g:FilterSelect(tp,vgf.IsCanBeCalled,0,1,nil,e,tp) local sg=g:FilterSelect(tp,Card.IsCanBeCalled,0,1,nil,e,tp)
if sg:GetCount()>0 then if sg:GetCount()>0 then
vgf.Sendto(LOCATION_CIRCLE,g,0,tp) vgf.Sendto(LOCATION_CIRCLE,g,0,tp)
g:Sub(sg) g:Sub(sg)
......
...@@ -9,7 +9,7 @@ end ...@@ -9,7 +9,7 @@ end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return c:IsRelateToEffect(e) end if chk==0 then return c:IsRelateToEffect(e) end
local rc=vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst() local rc=vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst()
vgf.Sendto(LOCATION_SOUL,c,rc) vgf.Sendto(LOCATION_SOUL,c,rc)
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -7,7 +7,7 @@ end ...@@ -7,7 +7,7 @@ end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return c:IsRelateToEffect(e) end if chk==0 then return c:IsRelateToEffect(e) end
local rc=vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst() local rc=vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst()
vgf.Sendto(LOCATION_SOUL,c,rc) vgf.Sendto(LOCATION_SOUL,c,rc)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -6,7 +6,8 @@ function cm.initial_effect(c) ...@@ -6,7 +6,8 @@ function cm.initial_effect(c)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local c):FilterSelect(tp,cm.filter,1,1,nil,tp:GetColumnGroup() local atk=2000 local g = c:GetColumnGroup():FilterSelect(tp,cm.filter,1,1,nil,tp)
local atk=2000
if Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)==10102001 then if Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)==10102001 then
atk=5000 atk=5000
end end
......
...@@ -4,6 +4,6 @@ function cm.initial_effect(c) ...@@ -4,6 +4,6 @@ function cm.initial_effect(c)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,vgf.filter.IsV,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,Card.IsV,tp,LOCATION_CIRCLE,0,1,1,nil)
vgf.AtkUp(c,g,10000,nil) vgf.AtkUp(c,g,10000,nil)
end end
\ No newline at end of file
...@@ -7,7 +7,7 @@ function cm.initial_effect(c) ...@@ -7,7 +7,7 @@ function cm.initial_effect(c)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,vgf.filter.IsV,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,Card.IsV,tp,LOCATION_CIRCLE,0,1,1,nil)
local e1=vgf.AtkUp(c,g,30000,nil) local e1=vgf.AtkUp(c,g,30000,nil)
vgf.effect.Reset(c,e1,EVENT_BATTLED) vgf.effect.Reset(c,e1,EVENT_BATTLED)
end end
\ No newline at end of file
...@@ -6,9 +6,10 @@ end ...@@ -6,9 +6,10 @@ end
function cm.filter(c,p) function cm.filter(c,p)
return c:IsControler(p) and c:IsRearguard()end return c:IsControler(p) and c:IsRearguard()end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_OPPO,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_OPPO,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
if g:GetCount()==0 then return end if g:GetCount()==0 then return end
local g:GetFirst()):Filter(cm.filter,nil,1-tp:GetColumnGroup() if sg:GetCount()>0 then g:Sub(sg) end local sg = g:GetFirst():GetColumnGroup():Filter(cm.filter,nil,1-tp)
if sg:GetCount()>0 then g:Sub(sg) end
vgf.Sendto(LOCATION_DECK,g,nil,0,REASON_EFFECT) vgf.Sendto(LOCATION_DECK,g,nil,0,REASON_EFFECT)
local og=Duel.GetOperatedGroup() local og=Duel.GetOperatedGroup()
if #og>1 then if #og>1 then
...@@ -21,9 +22,9 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -21,9 +22,9 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil,nil):GetFirst():GetOverlayGroup():IsExists(Card.IsLevel,1,nil,3) vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil,nil):GetFirst():GetOverlayGroup():IsExists(Card.IsLevel,1,nil,3)
end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local g=vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsLevel,1,1,nil,3) local g=vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsLevel,1,1,nil,3)
vgf.Sendto(LOCATION_DROP,g,REASON_COST) vgf.Sendto(LOCATION_DROP,g,REASON_COST)
end end
\ No newline at end of file
...@@ -6,6 +6,6 @@ function cm.initial_effect(c) ...@@ -6,6 +6,6 @@ function cm.initial_effect(c)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,1,c) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,1,c)
vgf.AtkUp(c,g,5000) vgf.AtkUp(c,g,5000)
end end
\ No newline at end of file
...@@ -3,8 +3,8 @@ local cm,m,o=GetID() ...@@ -3,8 +3,8 @@ local cm,m,o=GetID()
--通过【费用】[将你的2张后防者退场]施放! --通过【费用】[将你的2张后防者退场]施放!
--抽1张卡,将这张卡放置到灵魂里,计数回充1。 --抽1张卡,将这张卡放置到灵魂里,计数回充1。
function cm.initial_effect(c) function cm.initial_effect(c)
vgd.action.Order(c,m,cm.op,vgf.cost.Retire(vgf.filter.IsR,2,2)) vgd.action.Order(c,m,cm.op,vgf.cost.Retire(Card.IsR,2,2))
VgF.AddAlchemagic(m,"LOCATION_CIRCLE","LOCATION_DROP",2,2,vgf.filter.IsR) VgF.AddAlchemagic(m,"LOCATION_CIRCLE","LOCATION_DROP",2,2,Card.IsR)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -8,6 +8,6 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -8,6 +8,6 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_CIRCLE,0,1,1,nil)
vgf.AtkUp(c,g,5000,EVENT_BATTLED) vgf.AtkUp(c,g,5000,EVENT_BATTLED)
local sg=vgf.SelectMatchingCard(HINTMSG_RTOHAND,vgf.filter.IsR,e,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,1,Duel.GetAttackTarget()) local sg=vgf.SelectMatchingCard(HINTMSG_RTOHAND,Card.IsR,e,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,1,Duel.GetAttackTarget())
vgf.Sendto(LOCATION_HAND,sg,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,sg,REASON_EFFECT)
end end
\ No newline at end of file
...@@ -7,7 +7,7 @@ function cm.initial_effect(c) ...@@ -7,7 +7,7 @@ function cm.initial_effect(c)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_OPPO,e,tp,vgf.filter.IsV,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_OPPO,e,tp,Card.IsV,tp,0,LOCATION_CIRCLE,1,1,nil)
local e1=vgf.StarUp(c,g,-1,EVENT_BATTLED) local e1=vgf.StarUp(c,g,-1,EVENT_BATTLED)
vgf.effect.Reset(c,e1,EVENT_BATTLED) vgf.effect.Reset(c,e1,EVENT_BATTLED)
end end
\ No newline at end of file
...@@ -12,6 +12,6 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -12,6 +12,6 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,vgf.filter.IsV,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,Card.IsV,tp,LOCATION_CIRCLE,0,1,1,nil)
vgf.AtkUp(c,g,10000) vgf.AtkUp(c,g,10000)
end end
\ No newline at end of file
...@@ -10,5 +10,4 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -10,5 +10,4 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
vgf.Sendto(LOCATION_CIRCLE,g,0,tp,"NoMonster") vgf.Sendto(LOCATION_CIRCLE,g,0,tp,"NoMonster")
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return vgf.IsCanBeCalled(c,e,tp) return c:IsCanBeCalled(e,tp)end
end \ No newline at end of file
\ No newline at end of file
...@@ -15,6 +15,6 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -15,6 +15,6 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.con.IsR(e) and Duel.GetAttacker()==e:GetHandler() return vgf.con.IsR(e) and Duel.GetAttacker()==e:GetHandler()
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,0,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,0,1,nil)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end end
\ No newline at end of file
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgd.action.AbilityAuto(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.op.CardsFromTo(REASON_EFFECT,LOCATION_CIRCLE,LOCATION_SOUL,Card.IsSetCard,1,1,0x78),nil,vgf.con.RideOnVCircle) vgd.action.AbilityAuto(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.op.CardsFromTo(REASON_EFFECT,LOCATION_CIRCLE,LOCATION_SOUL,Card.IsSetCard,1,1,0x78),nil,vgf.con.RideOnVCircle)
vgd.action.AbilityAct(c,m,LOCATION_CIRCLE,cm.op,vgf.cost.And(vgf.cost.CounterBlast(1),vgf.cost.Retire(vgf.filter.IsR,3,3)),nil,nil,1) vgd.action.AbilityAct(c,m,LOCATION_CIRCLE,cm.op,vgf.cost.And(vgf.cost.CounterBlast(1),vgf.cost.Retire(Card.IsR,3,3)),nil,nil,1)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,2,2,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,2,2,nil)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
vgf.AtkUp(c,c,10000) vgf.AtkUp(c,c,10000)
vgf.StarUp(c,c,1) vgf.StarUp(c,c,1)
......
...@@ -8,7 +8,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -8,7 +8,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_RMONSTER,e,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_RMONSTER,e,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,1,nil)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
if tc then if tc then
vgf.AtkUp(c,tc,5000) vgf.AtkUp(c,tc,5000)
......
...@@ -9,7 +9,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -9,7 +9,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
local val=5000 local val=5000
if vgf.IsExistingMatchingCard(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,3,c) then val=10000 end if vgf.IsExistingMatchingCard(Card.IsR,tp,LOCATION_CIRCLE,0,3,c) then val=10000 end
local e1=vgf.AtkUp(c,c,val) local e1=vgf.AtkUp(c,c,val)
vgf.effect.Reset(c,e1,EVENT_BATTLED) vgf.effect.Reset(c,e1,EVENT_BATTLED)
end end
......
...@@ -10,7 +10,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -10,7 +10,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,vgf.filter.IsV,tp,LOCATION_CIRCLE,0,1,1,nil):GetFirst() local tc=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,Card.IsV,tp,LOCATION_CIRCLE,0,1,1,nil):GetFirst()
if tc:IsSkill(SKILL_TWINDRIVE) then if tc:IsSkill(SKILL_TWINDRIVE) then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
...@@ -22,7 +22,8 @@ end ...@@ -22,7 +22,8 @@ end
function cm.op2(e,tp,eg,ep,ev,re,r,rp) function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then e:Reset() return end if not c:IsRelateToEffect(e) or c:IsFacedown() then e:Reset() return end
local c):Filter(cm.filter,nil,tp:GetColumnGroup() vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) local g = c:GetColumnGroup():Filter(cm.filter,nil,tp)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
e:Reset() e:Reset()
end end
......
...@@ -13,7 +13,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,7 +13,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
local ct=bit.ReturnCount(vgf.GetAvailableLocation(tp)) local ct=bit.ReturnCount(vgf.GetAvailableLocation(tp))
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
local sg=g:FilterSelect(tp,vgf.IsCanBeCalled,0,ct,nil,e,tp) local sg=g:FilterSelect(tp,Card.IsCanBeCalled,0,ct,nil,e,tp)
if sg:GetCount()>0 then if sg:GetCount()>0 then
vgf.Sendto(LOCATION_CIRCLE,sg,0,tp) vgf.Sendto(LOCATION_CIRCLE,sg,0,tp)
g:Sub(sg) g:Sub(sg)
......
...@@ -11,5 +11,5 @@ function cm.initial_effect(c) ...@@ -11,5 +11,5 @@ function cm.initial_effect(c)
end end
function cm.tg(e,tc) function cm.tg(e,tc)
local c=e:GetHandler() local c=e:GetHandler()
return tc:IsFrontrow() and c):IsContains(tc:GetColumnGroup() and tc:IsControler(c:GetControler()) return tc:IsFrontrow() and c:IsContains(tc:GetColumnGroup()) and tc:IsControler(c:GetControler())
end end
\ No newline at end of file
...@@ -3,7 +3,7 @@ function cm.initial_effect(c) ...@@ -3,7 +3,7 @@ function cm.initial_effect(c)
vgd.action.Order(c,m,cm.op,vgf.cost.And(vgf.cost.CounterBlast(1),vgf.cost.SoulBlast(1))) vgd.action.Order(c,m,cm.op,vgf.cost.And(vgf.cost.CounterBlast(1),vgf.cost.SoulBlast(1)))
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp,chk) function cm.op(e,tp,eg,ep,ev,re,r,rp,chk)
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsR,tp,LOCATION_CIRCLE,LOCATION_CIRCLE,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
local ct=bit.ReturnCount(vgf.GetAvailableLocation(tp)) local ct=bit.ReturnCount(vgf.GetAvailableLocation(tp))
...@@ -17,5 +17,4 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -17,5 +17,4 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp,chk)
end end
end end
function cm.filter(c,lv,e,tp) function cm.filter(c,lv,e,tp)
return c:IsLevel(lv) and vgf.IsCanBeCalled(c,e,tp) return c:IsLevel(lv) and c:IsCanBeCalled(e,tp)end
end \ No newline at end of file
\ No newline at end of file
...@@ -13,5 +13,4 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,5 +13,4 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
if sg:GetCount()>0 then vgf.Sendto(LOCATION_CIRCLE,sg,0,tp) end if sg:GetCount()>0 then vgf.Sendto(LOCATION_CIRCLE,sg,0,tp) end
end end
function cm.filter(c,lv,e,tp) function cm.filter(c,lv,e,tp)
return c:IsLevelBelow(lv) and vgf.IsCanBeCalled(c,e,tp) return c:IsLevelBelow(lv) and c:IsCanBeCalled(e,tp)end
end \ No newline at end of file
\ No newline at end of file
...@@ -13,7 +13,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,7 +13,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.con.IsR(e) and vgf.GetVMonster(tp):IsCode(10401002) return vgf.con.IsR(e) and vgf.GetVMonster(tp):IsCode(10401002)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end end
function cm.op1(e,tp,eg,ep,ev,re,r,rp) function cm.op1(e,tp,eg,ep,ev,re,r,rp)
...@@ -22,5 +22,5 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -22,5 +22,5 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
vgf.AtkUp(c,c,5000) vgf.AtkUp(c,c,5000)
end end
function cm.con1(e,tp,eg,ep,ev,re,r,rp) function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return vgf.GetMatchingGroupCount(vgf.filter.IsV,tp,0,LOCATION_CIRCLE,nil)<=1 return vgf.GetMatchingGroupCount(Card.IsV,tp,0,LOCATION_CIRCLE,nil)<=1
end end
\ No newline at end of file
...@@ -5,11 +5,11 @@ end ...@@ -5,11 +5,11 @@ end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
vgf.op.CardsFromTo(REASON_EFFECT,LOCATION_CIRCLE,LOCATION_HAND,vgf.IsCanBeCalled,1,1,e,tp) vgf.op.CardsFromTo(REASON_EFFECT,LOCATION_CIRCLE,LOCATION_HAND,Card.IsCanBeCalled,1,1,e,tp)
local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION) local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
if vgf.GetValueType(ct)=="number" and ct==10102001 then if vgf.GetValueType(ct)=="number" and ct==10102001 then
Duel.BreakEffect() Duel.BreakEffect()
local g=vgf.GetMatchingGroup(vgf.filter.Front,tp,LOCATION_CIRCLE,0,nil) local g=vgf.GetMatchingGroup(Card.IsFrontrow,tp,LOCATION_CIRCLE,0,nil)
vgf.AtkUp(c,g,10000,nil) vgf.AtkUp(c,g,10000,nil)
end end
end end
\ No newline at end of file
...@@ -10,9 +10,9 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -10,9 +10,9 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
vgf.AtkUp(c,c,10000,nil) vgf.AtkUp(c,c,10000,nil)
end end
if vgf.cost.And(vgf.cost.SoulBlast(1),vgf.cost.Retire(vgf.filter.IsR,1,1,c))(e,tp,eg,ep,ev,re,r,rp,0) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then if vgf.cost.And(vgf.cost.SoulBlast(1),vgf.cost.Retire(Card.IsR,1,1,c))(e,tp,eg,ep,ev,re,r,rp,0) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then
Duel.BreakEffect() Duel.BreakEffect()
vgf.cost.And(vgf.cost.SoulBlast(1),vgf.cost.Retire(vgf.filter.IsR,1,1,c))(e,tp,eg,ep,ev,re,r,rp,0) vgf.cost.And(vgf.cost.SoulBlast(1),vgf.cost.Retire(Card.IsR,1,1,c))(e,tp,eg,ep,ev,re,r,rp,0)
local g=Duel.GetDecktopGroup(tp,5) local g=Duel.GetDecktopGroup(tp,5)
Duel.ConfirmCards(tp,g) Duel.ConfirmCards(tp,g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
...@@ -25,5 +25,5 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -25,5 +25,5 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return vgf.IsCanBeCalled(c,e,tp) and c:IsLevelBelow(1) return c:IsCanBeCalled(e,tp) and c:IsLevelBelow(1)
end end
\ No newline at end of file
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgd.action.AbilityAuto(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,vgf.cost.And(vgf.cost.CounterBlast(1),vgf.cost.Retire(vgf.filter.IsR,1,1,c))) vgd.action.AbilityAuto(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,vgf.cost.And(vgf.cost.CounterBlast(1),vgf.cost.Retire(Card.IsR,1,1,c)))
vgd.action.GlobalCheckEffect(c,m,EVENT_TO_GRAVE,cm.chkcon) vgd.action.GlobalCheckEffect(c,m,EVENT_TO_GRAVE,cm.chkcon)
vgd.action.AbilityCont(c, m, LOCATION_R_CIRCLE, EFFECT_TYPE_SINGLE, EFFECT_UPDATE_ATTACK, 5000, cm.con) vgd.action.AbilityCont(c, m, LOCATION_R_CIRCLE, EFFECT_TYPE_SINGLE, EFFECT_UPDATE_ATTACK, 5000, cm.con)
end end
......
...@@ -9,7 +9,7 @@ end ...@@ -9,7 +9,7 @@ end
function cm.con1(e) function cm.con1(e)
local c=e:GetHandler() local c=e:GetHandler()
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return vgf.con.IsV(e) and not vgf.IsExistingMatchingCard(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,nil) and Duel.GetTurnPlayer()==tp return vgf.con.IsV(e) and not vgf.IsExistingMatchingCard(Card.IsR,tp,LOCATION_CIRCLE,0,1,nil) and Duel.GetTurnPlayer()==tp
end end
function cm.con2(e) function cm.con2(e)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -32,4 +32,3 @@ end ...@@ -32,4 +32,3 @@ end
function cm.filter(c) function cm.filter(c)
return c:IsSetCard(0xa040) and c:IsLevel(2) return c:IsSetCard(0xa040) and c:IsLevel(2)
end end
...@@ -11,7 +11,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,7 +11,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(tp,g) Duel.ConfirmCards(tp,g)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc:IsType(TYPE_UNIT) and tc:GetLevel()~=2 and vgf.IsCanBeCalled(tc,e,tp) and vgf.Sendto(LOCATION_CIRCLE,tc,0,tp,"NoMonster")==0 then if tc:IsType(TYPE_UNIT) and tc:GetLevel()~=2 and tc:IsCanBeCalled(e,tp) and vgf.Sendto(LOCATION_CIRCLE,tc,0,tp,"NoMonster")==0 then
Duel.MoveSequence(tc,1) Duel.MoveSequence(tc,1)
end end
end end
......
...@@ -19,7 +19,7 @@ end ...@@ -19,7 +19,7 @@ end
function cm.op2(e,tp,eg,ep,ev,re,r,rp) function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.GetMatchingGroup(vgf.filter.Front,tp,LOCATION_CIRCLE,0,nil) local g=vgf.GetMatchingGroup(Card.IsFrontrow,tp,LOCATION_CIRCLE,0,nil)
vgf.AtkUp(c,g,5000) vgf.AtkUp(c,g,5000)
end end
......
...@@ -21,5 +21,4 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -21,5 +21,4 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return not c:IsTrigger(TRIGGER_NONE) and vgf.IsCanBeCalled(c,e,tp) return not c:IsTrigger(TRIGGER_NONE) and c:IsCanBeCalled(e,tp)end
end \ No newline at end of file
\ No newline at end of file
...@@ -8,7 +8,7 @@ end ...@@ -8,7 +8,7 @@ end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
vgf.op.SoulCharge(1)(e,tp,eg,ep,ev,re,r,rp) vgf.op.SoulCharge(1)(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_RMONSTER,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_RMONSTER,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
if tc then if tc then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
...@@ -15,6 +15,6 @@ end ...@@ -15,6 +15,6 @@ end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return c:IsRelateToEffect(e) end if chk==0 then return c:IsRelateToEffect(e) end
local rc=vgf.GetMatchingGroup(vgf.filter.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst() local rc=vgf.GetMatchingGroup(Card.IsV,tp,LOCATION_CIRCLE,0,nil):GetFirst()
vgf.Sendto(LOCATION_SOUL,c,rc) vgf.Sendto(LOCATION_SOUL,c,rc)
end end
\ No newline at end of file
...@@ -7,5 +7,5 @@ end ...@@ -7,5 +7,5 @@ end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c = e:GetHandler() local c = e:GetHandler()
return vgf.con.RideOnRCircle(e) and c:IsPreviousLocation(LOCATION_HAND) and vgf.IsExistingMatchingCard(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,3,c) return vgf.con.RideOnRCircle(e) and c:IsPreviousLocation(LOCATION_HAND) and vgf.IsExistingMatchingCard(Card.IsR,tp,LOCATION_CIRCLE,0,3,c)
end end
\ No newline at end of file
...@@ -15,5 +15,6 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -15,5 +15,6 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter(c,tp,mc) function cm.filter(c,tp,mc)
local mc:GetColumnGroup() return g:GetCount()>0 and g:IsContains(c) local g = mc:GetColumnGroup()
return g:GetCount()>0 and g:IsContains(c)
end end
\ No newline at end of file
...@@ -7,6 +7,6 @@ end ...@@ -7,6 +7,6 @@ end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
-- 选择你的1张先导者 -- 选择你的1张先导者
local g=vgf.SelectMatchingCard(HINTMSG_VMONSTER,tp,vgf.filter.IsV,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_VMONSTER,tp,Card.IsV,tp,LOCATION_CIRCLE,0,1,1,nil)
vgf.AtkUp(c,g,5000) vgf.AtkUp(c,g,5000)
end end
\ No newline at end of file
...@@ -8,7 +8,7 @@ function cm.initial_effect(c) ...@@ -8,7 +8,7 @@ function cm.initial_effect(c)
end end
function cm.con1(e) function cm.con1(e)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return vgf.con.IsV(e) and not vgf.IsExistingMatchingCard(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,nil) and Duel.GetTurnPlayer()==tp return vgf.con.IsV(e) and not vgf.IsExistingMatchingCard(Card.IsR,tp,LOCATION_CIRCLE,0,1,nil) and Duel.GetTurnPlayer()==tp
end end
function cm.con2(e) function cm.con2(e)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -6,7 +6,7 @@ function cm.initial_effect(c) ...@@ -6,7 +6,7 @@ function cm.initial_effect(c)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,tp,vgf.filter.IsR,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,tp,Card.IsR,tp,LOCATION_CIRCLE,0,1,1,nil)
vgf.AtkUp(c,g,5000) vgf.AtkUp(c,g,5000)
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -6,6 +6,6 @@ function cm.initial_effect(c) ...@@ -6,6 +6,6 @@ function cm.initial_effect(c)
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
local ct1=bit.ReturnCount(vgf.GetAvailableLocation(tp)) local ct1=bit.ReturnCount(vgf.GetAvailableLocation(tp))
local ct2=vgf.GetMatchingGroupCount(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,nil) local ct2=vgf.GetMatchingGroupCount(Card.IsR,tp,LOCATION_CIRCLE,0,nil)
return ct1-ct2>=3 return ct1-ct2>=3
end end
\ No newline at end of file
...@@ -7,5 +7,5 @@ end ...@@ -7,5 +7,5 @@ end
function cm.con1(e) function cm.con1(e)
local c= e:GetHandler() local c= e:GetHandler()
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return vgf.con.IsR(e) and vgf.IsExistingMatchingCard(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,3,c) return vgf.con.IsR(e) and vgf.IsExistingMatchingCard(Card.IsR,tp,LOCATION_CIRCLE,0,3,c)
end end
\ No newline at end of file
...@@ -7,7 +7,7 @@ end ...@@ -7,7 +7,7 @@ end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and vgf.IsCanBeCalled(c,e,tp) then if c:IsRelateToEffect(e) and c:IsCanBeCalled(e,tp) then
vgf.Sendto(LOCATION_CIRCLE,c,0,tp,"NoMonster") vgf.Sendto(LOCATION_CIRCLE,c,0,tp,"NoMonster")
end end
end end
......
...@@ -7,7 +7,7 @@ end ...@@ -7,7 +7,7 @@ end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if vgf.IsExistingMatchingCard(vgf.filter.IsR,tp,LOCATION_CIRCLE,0,3,nil) then if vgf.IsExistingMatchingCard(Card.IsR,tp,LOCATION_CIRCLE,0,3,nil) then
local ac=Duel.GetAttackTarget() local ac=Duel.GetAttackTarget()
local e1=vgf.AtkUp(c,ac,15000,nil) local e1=vgf.AtkUp(c,ac,15000,nil)
vgf.effect.Reset(c,e1,EVENT_BATTLED) vgf.effect.Reset(c,e1,EVENT_BATTLED)
......
...@@ -6,7 +6,7 @@ end ...@@ -6,7 +6,7 @@ end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,vgf.filter.IsV,tp,LOCATION_CIRCLE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,Card.IsV,tp,LOCATION_CIRCLE,0,1,1,nil)
vgf.AtkUp(c,g,5000) vgf.AtkUp(c,g,5000)
Duel.ChangePosition(c,POS_FACEDOWN_ATTACK) Duel.ChangePosition(c,POS_FACEDOWN_ATTACK)
end end
......
...@@ -25,7 +25,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -25,7 +25,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
--效果二处理 --效果二处理
function cm.operation2(e,tp,eg,ep,ev,re,r,rp) function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.filter.IsR,tp,0,LOCATION_CIRCLE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,Card.IsR,tp,0,LOCATION_CIRCLE,1,1,nil)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
if c:IsRelateToEffect(e) and c:IsFaceup() then if c:IsRelateToEffect(e) and c:IsFaceup() then
vgf.AtkUp(c,c,5000) vgf.AtkUp(c,c,5000)
......
...@@ -9,8 +9,7 @@ function cm.ridefilter(c) ...@@ -9,8 +9,7 @@ function cm.ridefilter(c)
return c:IsLevel(3) and c:IsSetCard(0x12d) return c:IsLevel(3) and c:IsSetCard(0x12d)
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return c:IsLevelBelow(3) and vgf.IsCanBeCalled(c,e,tp) return c:IsLevelBelow(3) and c:IsCanBeCalled(e,tp)end
end
-- 选择你的手牌中的至多1张等级3以下的卡,CALL到R上 -- 选择你的手牌中的至多1张等级3以下的卡,CALL到R上
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -11,8 +11,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,8 +11,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsLevelBelow(2) and tc:IsType(TYPE_NORMAL) and tc:IsType(TYPE_UNIT) and vgf.IsCanBeCalled(tc,e,tp) if tc:IsLevelBelow(2) and tc:IsType(TYPE_NORMAL) and tc:IsType(TYPE_UNIT) and tc:IsCanBeCalled(e,tp) and Duel.SelectYesNo(tp,vgf.Stringid(m,0)) then
and Duel.SelectYesNo(tp,vgf.Stringid(m,0)) then
-- 将那张卡CALL到R上 -- 将那张卡CALL到R上
vgf.Sendto(LOCATION_CIRCLE,tc,0,tp) vgf.Sendto(LOCATION_CIRCLE,tc,0,tp)
else else
......
...@@ -9,7 +9,7 @@ end ...@@ -9,7 +9,7 @@ end
-- 将这张卡横置CALL到R上 -- 将这张卡横置CALL到R上
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and vgf.IsCanBeCalled(c,e,tp,0,POS_FACEUP_DEFENSE) then if c:IsRelateToEffect(e) and c:IsCanBeCalled(e,tp,0,POS_FACEUP_DEFENSE) then
vgf.Sendto(LOCATION_CIRCLE,c,0,tp,0x20,POS_FACEUP_DEFENSE) vgf.Sendto(LOCATION_CIRCLE,c,0,tp,0x20,POS_FACEUP_DEFENSE)
end end
end end
\ No newline at end of file
...@@ -235,7 +235,7 @@ function VgD.Register.RideFilter2(c, lv, code, rc) ...@@ -235,7 +235,7 @@ function VgD.Register.RideFilter2(c, lv, code, rc)
end end
function VgD.Register.RideCondition() function VgD.Register.RideCondition()
local tp = Duel.GetTurnPlayer() local tp = Duel.GetTurnPlayer()
local rc = Duel.GetMatchingGroup(VgF.Filter.IsV, tp, LOCATION_CIRCLE, 0, nil):GetFirst() local rc = Duel.GetMatchingGroup(Card.IsV, tp, LOCATION_CIRCLE, 0, nil):GetFirst()
if not rc then return false end if not rc then return false end
local lv = rc:GetLevel() local lv = rc:GetLevel()
local code = rc:GetCode() local code = rc:GetCode()
...@@ -308,7 +308,7 @@ function VgD.Register.RideOperation() ...@@ -308,7 +308,7 @@ function VgD.Register.RideOperation()
e1:SetTargetRange(LOCATION_CIRCLE, 0) e1:SetTargetRange(LOCATION_CIRCLE, 0)
e1:SetValue(10000) e1:SetValue(10000)
e1:SetTarget(function (te, tc) e1:SetTarget(function (te, tc)
return VgF.Filter.Front(tc) return Card.IsFrontrow(tc)
end) end)
e1:SetReset(RESET_PHASE + PHASE_END) e1:SetReset(RESET_PHASE + PHASE_END)
Duel.RegisterEffect(e1, tp) Duel.RegisterEffect(e1, tp)
...@@ -710,7 +710,7 @@ function VgD.Register.MonsterBattle(c) ...@@ -710,7 +710,7 @@ function VgD.Register.MonsterBattle(c)
e:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE) e:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e:SetTargetRange(LOCATION_CIRCLE, LOCATION_CIRCLE) e:SetTargetRange(LOCATION_CIRCLE, LOCATION_CIRCLE)
e:SetTarget(function (_, c) e:SetTarget(function (_, c)
return c:IsPosition(POS_DEFENSE) or (VgF.Filter.Back(c) and c:GetFlagEffect(FLAG_ATTACK_AT_REAR) == 0) return c:IsPosition(POS_DEFENSE) or (Card.IsBackrow(c) and c:GetFlagEffect(FLAG_ATTACK_AT_REAR) == 0)
end) end)
Duel.RegisterEffect(e, 0) Duel.RegisterEffect(e, 0)
end end
...@@ -747,7 +747,7 @@ function VgD.Register.MonsterBattle(c) ...@@ -747,7 +747,7 @@ function VgD.Register.MonsterBattle(c)
e:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET) e:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e:SetTargetRange(LOCATION_CIRCLE, LOCATION_CIRCLE) e:SetTargetRange(LOCATION_CIRCLE, LOCATION_CIRCLE)
e:SetTarget(function (_, c) e:SetTarget(function (_, c)
return VgF.Filter.Back(c) return Card.IsBackrow(c)
end) end)
e:SetValue(VgF.True) e:SetValue(VgF.True)
Duel.RegisterEffect(e, 0) Duel.RegisterEffect(e, 0)
...@@ -801,7 +801,7 @@ function VgD.Register.MonsterBattle(c) ...@@ -801,7 +801,7 @@ function VgD.Register.MonsterBattle(c)
e:SetOperation(function () e:SetOperation(function ()
local tc = Duel.GetAttacker() local tc = Duel.GetAttacker()
local tp = tc:GetControler() local tp = tc:GetControler()
if not tc:GetFlagEffectLabel(FLAG_ATTACK_TRIGGER) or tc:GetFlagEffectLabel(FLAG_ATTACK_TRIGGER) == 0 or VgF.Filter.IsR(tc:IsRearguard() and tc:GetFlagEffect(FLAG_ALSO_CAN_TRIGGER) == 0) then return end if not tc:GetFlagEffectLabel(FLAG_ATTACK_TRIGGER) or tc:GetFlagEffectLabel(FLAG_ATTACK_TRIGGER) == 0 or Card.IsR(tc:IsRearguard() and tc:GetFlagEffect(FLAG_ALSO_CAN_TRIGGER) == 0) then return end
VgD.Register.Trigger(tp) VgD.Register.Trigger(tp)
end) end)
Duel.RegisterEffect(e, 0) Duel.RegisterEffect(e, 0)
...@@ -1906,7 +1906,7 @@ function VgD.CallInPrisonOperation(val) ...@@ -1906,7 +1906,7 @@ function VgD.CallInPrisonOperation(val)
end end
end end
function VgD.CallInPrisonFilter(c, e, tp) function VgD.CallInPrisonFilter(c, e, tp)
return c:GetFlagEffect(FLAG_IMPRISON) > 0 and (VgF.IsCanBeCalled(c, e, tp) or not c:IsType(TYPE_UNIT)) return c:GetFlagEffect(FLAG_IMPRISON) > 0 and (Card.IsCanBeCalled(c, e, tp) or not c:IsType(TYPE_UNIT))
end end
--其他---------------------------------------------------------------------------------------- --其他----------------------------------------------------------------------------------------
......
...@@ -295,7 +295,7 @@ function VgF.Condition.Level(e_or_c) ...@@ -295,7 +295,7 @@ function VgF.Condition.Level(e_or_c)
local c = VgF.GetValueType(e_or_c) == "Effect" and e_or_c:GetHandler() or e_or_c local c = VgF.GetValueType(e_or_c) == "Effect" and e_or_c:GetHandler() or e_or_c
local tp, lv = c:GetControler(), c:GetLevel() local tp, lv = c:GetControler(), c:GetLevel()
return VgF.IsExistingMatchingCard(function (tc) return VgF.IsExistingMatchingCard(function (tc)
return VgF.Filter.IsV(tc) and tc:IsLevelAbove(lv) return Card.IsV(tc) and tc:IsLevelAbove(lv)
end, tp, LOCATION_CIRCLE, 0, 1, nil) end, tp, LOCATION_CIRCLE, 0, 1, nil)
end end
...@@ -303,18 +303,17 @@ end ...@@ -303,18 +303,17 @@ end
---@param e Effect ---@param e Effect
---@return boolean ---@return boolean
function VgF.Condition.IsR(e) function VgF.Condition.IsR(e)
return VgF.Filter.IsR(e:GetHandler()) return Card.IsR(e:GetHandler())
end end
---用于效果的Condition,判断e是否以先导者发动。 ---用于效果的Condition,判断e是否以先导者发动。
---@param e Effect ---@param e Effect
---@return boolean ---@return boolean
function VgF.Condition.IsV(e) function VgF.Condition.IsV(e)
return VgF.Filter.IsV(e:GetHandler()) return e:GetHandler():IsV()
end end
function VgF.Condition.RideOnVCircle(e) function VgF.Condition.RideOnVCircle(e)
local c = e:GetHandler() return e:GetHandler():IsRideOnVCircle()
return VgF.Filter.RideOnVCircle(c)
end end
function VgF.Condition.RideOnRCircle(e) function VgF.Condition.RideOnRCircle(e)
...@@ -444,10 +443,10 @@ function VgF.Cost.SoulBlast(val) ...@@ -444,10 +443,10 @@ function VgF.Cost.SoulBlast(val)
local m = c:GetOriginalCode() local m = c:GetOriginalCode()
VgF.AddAlchemagic(m, "LOCATION_SOUL", "LOCATION_DROP", val, val) VgF.AddAlchemagic(m, "LOCATION_SOUL", "LOCATION_DROP", val, val)
end end
return Duel.GetMatchingGroup(VgF.Filter.IsV, tp, LOCATION_CIRCLE, 0, nil, nil):GetFirst():GetOverlayCount() >= val return Duel.GetMatchingGroup(Card.IsV, tp, LOCATION_CIRCLE, 0, nil, nil):GetFirst():GetOverlayCount() >= val
end end
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_REMOVEXYZ)
local g = Duel.GetMatchingGroup(VgF.Filter.IsV, tp, LOCATION_CIRCLE, 0, nil):GetFirst():GetOverlayGroup():Select(tp, nil, val, val, nil) local g = Duel.GetMatchingGroup(Card.IsV, tp, LOCATION_CIRCLE, 0, nil):GetFirst():GetOverlayGroup():Select(tp, nil, val, val, nil)
return VgF.Sendto(LOCATION_DROP, g, REASON_COST) return VgF.Sendto(LOCATION_DROP, g, REASON_COST)
end end
end end
...@@ -584,7 +583,7 @@ function VgF.Operation.SoulCharge(val) ...@@ -584,7 +583,7 @@ function VgF.Operation.SoulCharge(val)
end end
return Duel.GetFieldGroupCount(tp, LOCATION_DECK, 0) >= val return Duel.GetFieldGroupCount(tp, LOCATION_DECK, 0) >= val
end end
local rc = Duel.GetMatchingGroup(VgF.Filter.IsV, tp, LOCATION_CIRCLE, 0, nil):GetFirst() local rc = Duel.GetMatchingGroup(Card.IsV, tp, LOCATION_CIRCLE, 0, nil):GetFirst()
local g = Duel.GetDecktopGroup(tp, val) local g = Duel.GetDecktopGroup(tp, val)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.RaiseEvent(g, EVENT_CUSTOM + EVENT_OVERLAY_FILL, e, 0, tp, tp, val) Duel.RaiseEvent(g, EVENT_CUSTOM + EVENT_OVERLAY_FILL, e, 0, tp, tp, val)
...@@ -1180,7 +1179,7 @@ end ...@@ -1180,7 +1179,7 @@ end
---@return Card|nil p场上的先导者 ---@return Card|nil p场上的先导者
function VgF.GetVMonster(p) function VgF.GetVMonster(p)
if p ~= 0 and p ~= 1 then return end if p ~= 0 and p ~= 1 then return end
return Duel.GetMatchingGroup(VgF.Filter.IsV, p, LOCATION_CIRCLE, 0, nil):GetFirst() return Duel.GetMatchingGroup(Card.IsV, p, LOCATION_CIRCLE, 0, nil):GetFirst()
end end
---以c的名义,使g(中的每一张卡)的攻击力上升val,并在reset时重置。 ---以c的名义,使g(中的每一张卡)的攻击力上升val,并在reset时重置。
......
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