Commit dd7f300c authored by xiaoye's avatar xiaoye

update VgF.IsExistingMatchingCard

parent cbe9e3bc
......@@ -397,6 +397,6 @@ function cm.initial_effect(c)
c:RegisterEffect(e2)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return vgf.VMonsterCondition(e) and Duel.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_MZONE,0,3,nil,3)
return vgf.VMonsterCondition(e) and vgf.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_MZONE,0,3,nil,3)
end
```
......@@ -27,11 +27,11 @@ function VgD.RideUpFilter1(c,e,lv,code,rc)
if rc:IsAttribute(SKILL_SELF_RIDE) and c:IsCode(code) then
return false
end
return ((c:IsLevel(lv,lv+1) and c:IsLocation(LOCATION_HAND)) or (c:IsLevel(lv+1) and c:IsLocation(LOCATION_RIDE) and Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND,0,1,nil))) and c:IsType(TYPE_MONSTER)
return ((c:IsLevel(lv,lv+1) and c:IsLocation(LOCATION_HAND)) or (c:IsLevel(lv+1) and c:IsLocation(LOCATION_RIDE) and VgF.IsExistingMatchingCard(nil,tp,LOCATION_HAND,0,1,nil))) and c:IsType(TYPE_MONSTER)
end
function VgD.DisCardRideUpFilter(c,e,lv,code,rc)
local tp=c:GetControler()
return c:IsDiscardable() and Duel.IsExistingMatchingCard(VgD.RideUpFilter1,tp,LOCATION_HAND+LOCATION_RIDE,0,1,c,e,lv,code,rc)
return c:IsDiscardable() and VgF.IsExistingMatchingCard(VgD.RideUpFilter1,tp,LOCATION_HAND+LOCATION_RIDE,0,1,c,e,lv,code,rc)
end
function VgD.RideUpFilter2(c,e,lv,code,rc)
local tp=e:GetHandlerPlayer()
......@@ -85,8 +85,8 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp)
end
sc:SetMaterial(Group.FromCards(rc))
VgF.Sendto(LOCATION_OVERLAY,Group.FromCards(rc),sc)
vgf.Sendto(LOCATION_MZONE,sc,SUMMON_TYPE_RIDE,tp,0x20)
if Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_RIDE,0,1,nil,TYPE_EMBLEM) then
VgF.Sendto(LOCATION_MZONE,sc,SUMMON_TYPE_RIDE,tp,0x20)
if VgF.IsExistingMatchingCard(Card.IsType,tp,LOCATION_RIDE,0,1,nil,TYPE_EMBLEM) then
local tc=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_RIDE,0,nil,TYPE_EMBLEM):GetFirst()
VgF.Sendto(LOCATION_EMBLEM,tc,tp,POS_FACEUP_DEFENSE,REASON_EFFECT)
end
......@@ -100,7 +100,7 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp)
end
sc:SetMaterial(Group.FromCards(rc))
VgF.Sendto(LOCATION_OVERLAY,Group.FromCards(rc),sc)
vgf.Sendto(LOCATION_MZONE,sc,SUMMON_TYPE_SELFRIDE,tp,0x20)
VgF.Sendto(LOCATION_MZONE,sc,SUMMON_TYPE_SELFRIDE,tp,0x20)
Duel.Draw(tp,1,REASON_EFFECT)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
......@@ -127,7 +127,7 @@ function VgD.RideZeroOperation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
g=g:Select(tp,1,1,nil)
end
vgf.Sendto(LOCATION_MZONE,g,SUMMON_TYPE_RIDE,tp,0x20)
VgF.Sendto(LOCATION_MZONE,g,SUMMON_TYPE_RIDE,tp,0x20)
end
--Call到R位
function VgD.CallToR(c)
......@@ -161,7 +161,7 @@ function VgD.CallOperation(e,tp,eg,ep,ev,re,r,rp)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE)
local zone=Duel.SelectField(tp,1,LOCATION_MZONE,0,z)
if Duel.IsExistingMatchingCard(VgD.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,zone) then
if VgF.IsExistingMatchingCard(VgD.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,zone) then
local tc=Duel.GetMatchingGroup(VgD.CallFilter,tp,LOCATION_MZONE,0,nil,tp,zone):GetFirst()
VgF.Sendto(LOCATION_DROP,tc,REASON_COST)
end
......@@ -191,7 +191,7 @@ function VgD.OverDressCondition(f)
return function (e,c)
if c==nil then return true end
local tp=e:GetHandlerPlayer()
return VgF.LvCondition(e) and Duel.IsExistingMatchingCard(VgD.OverDressFilter,tp,LOCATION_MZONE,0,1,nil,f)
return VgF.LvCondition(e) and VgF.IsExistingMatchingCard(VgD.OverDressFilter,tp,LOCATION_MZONE,0,1,nil,f)
end
end
function VgD.OverDressFilter(c,f,zone)
......@@ -460,8 +460,8 @@ function VgD.SupportValue(e)
end
function VgD.SendToGCost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,OAFFECT_CODE_SENDTOG) or Duel.IsExistingMatchingCard(nil,tp,LOCATION_GZONE,0,1,nil) or Duel.IsExistingMatchingCard(VgF.IsAbleToGZone,tp,LOCATION_HAND,0,1,c,LOCATION_HAND) end
if Duel.IsPlayerAffectedByEffect(tp,OAFFECT_CODE_SENDTOG) and not Duel.IsExistingMatchingCard(nil,tp,LOCATION_GZONE,0,1,nil) then
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,OAFFECT_CODE_SENDTOG) or VgF.IsExistingMatchingCard(nil,tp,LOCATION_GZONE,0,1,nil) or VgF.IsExistingMatchingCard(VgF.IsAbleToGZone,tp,LOCATION_HAND,0,1,c,LOCATION_HAND) end
if Duel.IsPlayerAffectedByEffect(tp,OAFFECT_CODE_SENDTOG) and not VgF.IsExistingMatchingCard(nil,tp,LOCATION_GZONE,0,1,nil) then
local tc=Duel.SelectMatchingCard(tp,VgF.IsAbleToGZone,tp,LOCATION_HAND,0,1,1,c,LOCATION_HAND)
tc=VgF.ReturnCard(tc)
Duel.ConfirmCards(1-tp,tc)
......@@ -798,7 +798,7 @@ function VgD.MixCost(cost)
return function(e,tp,eg,ep,ev,re,r,rp,chk,bool)
local c=e:GetHandler()
if chk==0 then return VgF.GetValueType(cost)~="function" or cost(e,tp,eg,ep,ev,re,r,rp,0) end
if not bool and (Duel.IsPlayerAffectedByEffect(tp,AFFECT_CODE_MIX) and Duel.IsExistingMatchingCard(VgD.MixCostFilter,tp,LOCATION_DROP,0,1,nil,e,tp,eg,ep,ev,re,r,rp,c) and Duel.SelectYesNo(tp,VgF.Stringid(VgID,6))) then
if not bool and (Duel.IsPlayerAffectedByEffect(tp,AFFECT_CODE_MIX) and VgF.IsExistingMatchingCard(VgD.MixCostFilter,tp,LOCATION_DROP,0,1,nil,e,tp,eg,ep,ev,re,r,rp,c) and Duel.SelectYesNo(tp,VgF.Stringid(VgID,6))) then
local bc=Duel.SelectMatchingCard(tp,VgD.MixCostFilter,tp,LOCATION_DROP,0,1,1,nil,e,tp,eg,ep,ev,re,r,rp,c):GetFirst()
if cost then cost(e,tp,eg,ep,ev,re,r,rp) end
if bc then
......
......@@ -337,7 +337,7 @@ function VgF.Call(g,sumtype,tp,zone,pos,chk)
end
sc:SetMaterial(Group.FromCards(tc))
VgF.Sendto(LOCATION_OVERLAY,Group.FromCards(tc),sc)
elseif Duel.IsExistingMatchingCard(VgD.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,szone) then
elseif VgF.IsExistingMatchingCard(VgD.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,szone) then
local tc=Duel.GetMatchingGroup(VgD.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
VgF.Sendto(LOCATION_DROP,tc,REASON_COST)
end
......@@ -360,7 +360,7 @@ function VgF.Call(g,sumtype,tp,zone,pos,chk)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE)
local szone=Duel.SelectField(tp,1,LOCATION_MZONE,0,z)
if Duel.IsExistingMatchingCard(VgD.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,szone) then
if VgF.IsExistingMatchingCard(VgD.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,szone) then
local tc=Duel.GetMatchingGroup(VgD.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
VgF.Sendto(LOCATION_DROP,tc,REASON_COST)
end
......@@ -374,7 +374,7 @@ end
function VgF.LvCondition(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()
return Duel.IsExistingMatchingCard(VgF.LvConditionFilter,tp,LOCATION_MZONE,0,1,nil,lv)
return VgF.IsExistingMatchingCard(VgF.LvConditionFilter,tp,LOCATION_MZONE,0,1,nil,lv)
end
function VgF.LvConditionFilter(c,lv)
return VgF.VMonsterFilter(c) and c:IsLevelAbove(lv)
......@@ -528,7 +528,7 @@ function VgF.DisCardCost(num)
cm.cos_g=Duel.GetMatchingGroup(nil,tp,LOCATION_HAND,0,nil)
cm.cos_val={nil,num,num}
end
return Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND,0,num,nil)
return VgF.IsExistingMatchingCard(nil,tp,LOCATION_HAND,0,num,nil)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_HAND,0,num,num,nil)
......@@ -549,7 +549,7 @@ function VgF.EnergyCost(num)
cm.cos_g=Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,10800730)
cm.cos_val={nil,num,num}
end
return Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_EMBLEM,0,num,nil,10800730)
return VgF.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_EMBLEM,0,num,nil,10800730)
end
local sg=Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,10800730)
local g=VgF.GetCardsFromGroup(sg,num)
......@@ -613,7 +613,7 @@ function VgF.DamageCost(num)
cm.cos_g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_DAMAGE,0,nil)
cm.cos_val={nil,num,num}
end
return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,num,nil)
return VgF.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,num,nil)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DAMAGE)
local g=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,num,num,nil)
......@@ -756,7 +756,7 @@ function VgF.SendtoPrison(g,p)
end
--[[
function VgF.PrisonFilter(c,tp)
return c:IsSetCard(0x3040) and not Duel.IsExistingMatchingCard(function (tc)
return c:IsSetCard(0x3040) and not VgF.IsExistingMatchingCard(function (tc)
return tc:GetSequence()<c:GetSequence()
end,tp,LOCATION_ORDER,0,1,c)
end
......@@ -815,29 +815,54 @@ function VgF.EffectResetOperation(e,tp,eg,ep,ev,re,r,rp)
if VgF.GetValueType(e1)=="Effect" then e1:Reset() end
e:Reset()
end
function VgF.IsExistingMatchingCard(f,tp,loc_self,loc_op,int,except_g,...)
local g=Group.CreateGroup()
if loc_self|LOCATION_MZONE>0 then
local g1=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
loc_self=loc_self-LOCATION_MZONE
if g1:GetCount()>0 then g:Merge(g1) end
end
if loc_op|LOCATION_MZONE>0 then
local g1=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_MZONE,nil)
loc_op=loc_op-LOCATION_MZONE
if g1:GetCount()>0 then g:Merge(g1) end
end
if loc_self>0 or loc_op>0 then
local g1=Duel.GetMatchingGroup(nil,tp,loc_self,loc_op,nil)
if g1:GetCount()>0 then g:Merge(g1) end
end
if g:GetCount()>0 then
g=g:Filter(f,except_g,...)
end
return g:GetCount()>=int
end
function VgF.SelectMatchingCard(hintmsg,e,select_tp,f,tp,loc_self,loc_op,int_min,int_max,except_g,...)
local a=false
if ((select_tp==tp and loc_self|LOCATION_DECK>0) or (select_tp~=tp and loc_op|LOCATION_DECK>0)) and Duel.SelectYesNo(select_tp,VgF.Stringid(VgID,13)) then
local g=Duel.GetFieldGroup(select_tp,LOCATION_DECK,0)
Duel.DisableShuffleCheck()
Duel.ConfirmCards(select_tp,g)
Duel.ConfirmCards(select_tp,g)
a=true
end
local g=Group.CreateGroup()
if loc_self|LOCATION_MZONE>0 then
local g1=Duel.GetMatchingGroup(Card.IsCanBeEffectTarget,tp,LOCATION_MZONE,0,nil,e)
local g1=Duel.GetMatchingGroup(function (c)
return c:IsCanBeEffectTarget(e) and c:IsFaceup()
end,tp,LOCATION_MZONE,0,nil)
loc_self=loc_self-LOCATION_MZONE
if g1:GetCount()>0 then g:Merge(g1) end
end
if loc_op|LOCATION_MZONE>0 then
local g1=Duel.GetMatchingGroup(Card.IsCanBeEffectTarget,tp,0,LOCATION_MZONE,nil,e)
local g1=Duel.GetMatchingGroup(function (c)
return c:IsCanBeEffectTarget(e) and c:IsFaceup()
end,tp,0,LOCATION_MZONE,nil)
loc_op=loc_op-LOCATION_MZONE
if g1:GetCount()>0 then g:Merge(g1) end
end
local g1=Duel.GetMatchingGroup(nil,tp,0,loc_op,nil)
if g1:GetCount()>0 then g:Merge(g1) end
local g2=Duel.GetMatchingGroup(nil,tp,loc_self,0,nil)
if g2:GetCount()>0 then g:Merge(g2) end
if loc_self>0 or loc_op>0 then
local g1=Duel.GetMatchingGroup(nil,tp,loc_self,loc_op,nil)
if g1:GetCount()>0 then g:Merge(g1) end
end
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,select_tp,hintmsg)
if VgF.GetValueType(f)=="function" then
......@@ -876,7 +901,7 @@ function VgF.Sendto(loc,sg,...)
if loc==LOCATION_DROP then
AddOverlayGroup(g)
local function repfilter(c,tp)
return c:IsControler(tp) and (c:IsLocation(LOCATION_GZONE) or vgf.RMonsterFilter(c)) and c:IsType(TYPE_MONSTER) and c:GetLevel()%2==1
return c:IsControler(tp) and (c:IsLocation(LOCATION_GZONE) or VgF.RMonsterFilter(c)) and c:IsType(TYPE_MONSTER) and c:GetLevel()%2==1
end
local print=0
for tp=0,1 do
......
......@@ -16,7 +16,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,nil) end
if chk==0 then return vgf.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,nil) end
local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
vgf.Sendto(LOCATION_OVERLAY,g,c)
end
......
......@@ -11,7 +11,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
vgf.OverlayFill(1)
Duel.BreakEffect()
if Duel.GetFlagEffectLabel(tp,ConditionFlag)==10102001 and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then
if Duel.GetFlagEffectLabel(tp,ConditionFlag)==10102001 and vgf.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then
local g=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
Duel.ChangePosition(g,POS_FACEDOWN_ATTACK)
vgf.AtkUp(c,c,15000)
......
......@@ -24,12 +24,12 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_HAND,0,3,nil,3) end
if chk==0 then return vgf.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_HAND,0,3,nil,3) end
local g=vgf.SelectMatchingCard(HINTMSG_CONFIRM,e,tp,vgf.IsLevel,tp,LOCATION_HAND,0,3,3,nil,3)
Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp)
end
function cm.condition(e,c)
local tp=e:GetHandlerPlayer()
return vgf.RMonsterCondition(e) and Duel.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_MZONE,0,3,nil,3)
return vgf.RMonsterCondition(e) and vgf.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_MZONE,0,3,nil,3)
end
\ No newline at end of file
......@@ -6,7 +6,7 @@ function cm.initial_effect(c)
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation2,vgf.DamageCost(1),vgf.RMonsterCondition,nil,1)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_HAND,0,2,nil,3) end
if chk==0 then return vgf.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_HAND,0,2,nil,3) end
local g=vgf.SelectMatchingCard(HINTMSG_CONFIRM,e,tp,vgf.IsLevel,tp,LOCATION_HAND,0,2,2,nil,3)
Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp)
......
......@@ -13,5 +13,5 @@ end
function cm.con(e)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
return vgf.RMonsterCondition(e) and Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,4,c)
return vgf.RMonsterCondition(e) and vgf.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,4,c)
end
\ No newline at end of file
......@@ -17,7 +17,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
c:RegisterEffect(e2)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=1 end
if chk==0 then return vgf.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=1 end
local g1=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
Duel.ChangePosition(g1,POS_FACEDOWN)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
......
......@@ -9,7 +9,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
local atk=5000
if Duel.IsExistingMatchingCard(vgf.IsSequence,tp,LOCATION_MZONE,0,3,nil,1,2,3) then atk=15000 end
if vgf.IsExistingMatchingCard(vgf.IsSequence,tp,LOCATION_MZONE,0,3,nil,1,2,3) then atk=15000 end
if g then
vgf.AtkUp(c,g,atk)
end
......
......@@ -7,7 +7,7 @@ function cm.initial_effect(c)
end
function cm.con(e,c)
local tp=e:GetHandler()
return Duel.GetTurnPlayer()==tp and vgf.VMonsterCondition(e) and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
return Duel.GetTurnPlayer()==tp and vgf.VMonsterCondition(e) and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
end
function cm.filter(c)
return c:GetFlagEffect(ImprisonFlag)>0
......
......@@ -17,7 +17,7 @@ end
function cm.con(e)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
return vgf.RMonsterFilter(c) and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
return vgf.RMonsterFilter(c) and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
end
function cm.filter(c)
return c:GetFlagEffect(ImprisonFlag)>0
......
......@@ -13,7 +13,7 @@ function cm.filter(c)
end
function cm.condition1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not cm.condition(e,tp,eg,ep,ev,re,r,rp) and Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_ORDER,0,1,nil)
return not cm.condition(e,tp,eg,ep,ev,re,r,rp) and vgf.IsExistingMatchingCard(cm.filter1,tp,LOCATION_ORDER,0,1,nil)
end
function cm.filter1(c)
return c:GetFlagEffect(ImprisonFlag)>0
......@@ -22,7 +22,7 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=1 end
if chk==0 then return vgf.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=1 end
local g1=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
Duel.ChangePosition(g1,POS_FACEDOWN)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
......
......@@ -6,7 +6,7 @@ function cm.initial_effect(c)
end
function cm.con(e,c)
local tp=e:GetHandler()
return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
return vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
end
function cm.filter(c)
return c:GetFlagEffect(ImprisonFlag)>0
......
......@@ -10,7 +10,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
end
function cm.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
local a=Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=1
local b=Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil)
local b=vgf.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil)
if chk==0 then return a or b end
local off=1
local ops={}
......
......@@ -55,7 +55,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local atk=tc:GetAttack()-1
vgf.AtkUp(c,tc,-atk)
end
if Duel.IsExistingMatchingCard(tp,cm.filter,tp,0,LOCATION_MZONE,1,1,nil) then
if vgf.IsExistingMatchingCard(tp,cm.filter,tp,0,LOCATION_MZONE,1,1,nil) then
vgf.StarUp(c,c,1)
end
end
......
......@@ -9,7 +9,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return vgf.RMonsterFilter(c) and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil)
return vgf.RMonsterFilter(c) and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil)
end
function cm.filter(c)
return vgf.VMonsterFilter and c:IsSetCard(0x77)
......
......@@ -5,7 +5,7 @@ function cm.initial_effect(c)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return vgf.RMonsterFilter(c) and vgf.VMonsterFilter(Duel.GetAttackTarget()) and Duel.IsExistingMatchingCard(nil,tp,LOCATION_MZONE,0,4,nil)
return vgf.RMonsterFilter(c) and vgf.VMonsterFilter(Duel.GetAttackTarget()) and vgf.IsExistingMatchingCard(nil,tp,LOCATION_MZONE,0,4,nil)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=1 end
......
......@@ -41,7 +41,7 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
local tc1=g:GetFirst()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE)
local szone=Duel.SelectField(tp,1,LOCATION_MZONE,0,zone)
if Duel.IsExistingMatchingCard(vgd.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,szone) then
if vgf.IsExistingMatchingCard(vgd.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,szone) then
local tc=Duel.GetMatchingGroup(vgd.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
vgf.Sendto(LOCATION_DROP,tc,REASON_COST)
end
......@@ -54,7 +54,7 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
local tc2=g:GetNext()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE)
szone=Duel.SelectField(tp,1,LOCATION_MZONE,0,zone)
if Duel.IsExistingMatchingCard(vgd.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,szone) then
if vgf.IsExistingMatchingCard(vgd.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,szone) then
local tc=Duel.GetMatchingGroup(vgd.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
vgf.Sendto(LOCATION_DROP,tc,REASON_COST)
end
......
......@@ -14,7 +14,7 @@ function cm.filter(c)
return vgf.RMonsterFilter(c)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil,e:GetHandler()) and Duel.GetAttacker()==e:GetHandler() and vgf.RMonsterCondition(e)
return vgf.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil,e:GetHandler()) and Duel.GetAttacker()==e:GetHandler() and vgf.RMonsterCondition(e)
end
function cm.cfilter(c,mc)
return vgf.GetColumnGroup(c):IsContains(mc) and c:IsControler(mc:GetControler()) and c:GetFlagEffect(SupportFlag)>0
......
......@@ -6,7 +6,7 @@ function cm.initial_effect(c)
vgd.GlobalCheckEffect(c,m,EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS,EVENT_TO_GRAVE,cm.checkcon,cm.checkop)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,2,nil) end
if chk==0 then return vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,2,nil) end
local g=vgf.SelectMatchingCard(HINTMSG_POSCHANGE,e,tp,cm.filter,tp,LOCATION_MZONE,0,2,2,nil)
Duel.ChangePosition(g,POS_FACEUP_DEFENCE)
end
......
......@@ -15,7 +15,7 @@ function cm.filter(c)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return vgf.RMonsterFilter(c) and Duel.IsExistingMatchingCard(Card.IsPosition,tp,LOCATION_ORDER,0,2,nil,POS_FACEDOWN)
return vgf.RMonsterFilter(c) and vgf.IsExistingMatchingCard(Card.IsPosition,tp,LOCATION_ORDER,0,2,nil,POS_FACEDOWN)
end
function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -10,7 +10,7 @@ end
function cm.con1(e)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
return vgf.VMonsterCondition(e) and not Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,nil) and Duel.GetTurnPlayer()==tp
return vgf.VMonsterCondition(e) and not vgf.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,nil) and Duel.GetTurnPlayer()==tp
end
function cm.con2(e)
local c=e:GetHandler()
......
......@@ -11,7 +11,7 @@ end
function cm.con1(e)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
local a=Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_ORDER,0,1,c)
local a=vgf.IsExistingMatchingCard(cm.filter1,tp,LOCATION_ORDER,0,1,c)
return vgf.VMonsterCondition(e) and a and Duel.GetTurnPlayer()==tp
end
......
......@@ -10,7 +10,7 @@ end
function cm.con1(e)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
local a = Duel.IsExistingMatchingCard(nil,tp,LOCATION_ORDER,0,2,c)
local a = vgf.IsExistingMatchingCard(nil,tp,LOCATION_ORDER,0,2,c)
return vgf.RMonsterCondition(e) and a and Duel.GetTurnPlayer()==tp
end
......@@ -10,7 +10,7 @@ end
function cm.con1(e)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
return vgf.VMonsterCondition(e) and not Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,nil) and Duel.GetTurnPlayer()==tp
return vgf.VMonsterCondition(e) and not vgf.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,nil) and Duel.GetTurnPlayer()==tp
end
function cm.con2(e)
local c=e:GetHandler()
......
......@@ -10,8 +10,8 @@ function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return cm.con2(e,tp,eg,ep,ev,re,r,rp) and vgf.RMonsterCondition(e)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil)
local b=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
local a=vgf.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil)
local b=vgf.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
return not a and b
end
......
......@@ -12,7 +12,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)) and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,c)
return not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)) and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,c)
end
function cm.filter(c)
return c:IsSetCard(0xa013) and vgf.RMonsterFilter(c)
......
......@@ -8,5 +8,5 @@ end
function cm.con1(e)
local c= e:GetHandler()
local tp=e:GetHandlerPlayer()
return vgf.RMonsterCondition(e) and Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,3,c)
return vgf.RMonsterCondition(e) and vgf.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,3,c)
end
\ No newline at end of file
......@@ -18,8 +18,8 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return eg:IsContains(c) and cm.con1(e,tp,eg,ep,ev,re,r,rp) and vgf.RMonsterCondition(e)
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil)
local b=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
local a=vgf.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil)
local b=vgf.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
return not a and b
end
......
......@@ -11,8 +11,8 @@ end
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil)
local b=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
local a=vgf.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil)
local b=vgf.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
return not a and b
end
......
......@@ -8,7 +8,7 @@ end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b=Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,3,nil)
local b=vgf.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,3,nil)
if b then
local ac=Duel.GetAttackTarget()
local e1=vgf.AtkUp(c,ac,15000,nil)
......
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