Commit f85898d5 authored by xiaoye's avatar xiaoye

fix

parent 829feb3c
......@@ -316,7 +316,7 @@ end
## 6.特别用于“力量上升”的【永】能力注册范例
```lua
vgd.EffectTypeContinuousChangeAttack(c,m, typ, val[, con, tg, loc_self, loc_op, reset, mc])
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE, typ, val[, con, tg, loc_self, loc_op, reset, mc])
```
参数注释
......@@ -337,7 +337,7 @@ vgd.EffectTypeContinuousChangeAttack(c,m, typ, val[, con, tg, loc_self, loc_op,
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,function(e) return vgf.RMonsterCondition(e) and cm.con(e) end)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,function(e) return vgf.RMonsterCondition(e) and cm.con(e) end)
vgd.EffectTypeContinuousChangeDefense(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
end
function cm.con(e)
......
......@@ -1268,11 +1268,14 @@ end
---@param property integer|nil 指示效果的特殊属性。如确有必要填,请咨询群主。
function VgD.EffectTypeTrigger(c,m,loc,typ,code,op,cost,con,tg,count,property,stringid)
local cm=_G["c"..m]
local f=VgF.True
if not cm.is_has_trigger then cm.is_has_trigger=true end
local type2=EFFECT_TYPE_TRIGGER_F
if VgF.GetValueType(cost)=="function" then type2=EFFECT_TYPE_TRIGGER_O end
if not typ then typ=EFFECT_TYPE_SINGLE end
if not loc then loc=LOCATION_MZONE end
if loc==LOCATION_RZONE then loc=LOCATION_MZONE f=VgF.RMonsterCondition end
if loc==LOCATION_VZONE then loc=LOCATION_MZONE f=VgF.VMonsterCondition end
if not stringid then stringid=1 end
if not property then property=0 end
local e1=Effect.CreateEffect(c)
......@@ -1282,7 +1285,7 @@ function VgD.EffectTypeTrigger(c,m,loc,typ,code,op,cost,con,tg,count,property,st
e1:SetCode(code)
e1:SetProperty(property+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
if count and count>0 then e1:SetCountLimit(count) end
if VgF.GetValueType(con)=="function" then e1:SetCondition(con) end
e1:SetCondition(function (e,tp,eg,ep,ev,re,r,rp) return (VgF.GetValueType(con)~="function" or con(e,tp,eg,ep,ev,re,r,rp)) and f(e) end)
if VgF.GetValueType(cost)=="function" then e1:SetCost(cost) end
if VgF.GetValueType(tg)=="function" then e1:SetTarget(tg) end
if VgF.GetValueType(op)=="function" then e1:SetOperation(op) end
......@@ -1300,8 +1303,11 @@ end
---@param property integer|nil 指示效果的特殊属性。如确有必要填,请咨询群主。
function VgD.EffectTypeIgnition(c,m,loc,op,cost,con,tg,count,property,stringid)
local cm=_G["c"..m]
local f=VgF.True
if not cm.is_has_ignition then cm.is_has_ignition=true end
if not loc then loc=LOCATION_MZONE end
if loc==LOCATION_RZONE then loc=LOCATION_MZONE f=VgF.RMonsterCondition end
if loc==LOCATION_VZONE then loc=LOCATION_MZONE f=VgF.VMonsterCondition end
if not stringid then stringid=1 end
local e1=Effect.CreateEffect(c)
e1:SetDescription(VgF.Stringid(VgID+2,stringid))
......@@ -1309,7 +1315,7 @@ function VgD.EffectTypeIgnition(c,m,loc,op,cost,con,tg,count,property,stringid)
e1:SetRange(loc)
if property and property>0 then e1:SetProperty(property) end
if count and count>0 then e1:SetCountLimit(count) end
if VgF.GetValueType(con)=="function" then e1:SetCondition(con) end
e1:SetCondition(function (e,tp,eg,ep,ev,re,r,rp) return (VgF.GetValueType(con)~="function" or con(e,tp,eg,ep,ev,re,r,rp)) and f(e) end)
if VgF.GetValueType(cost)=="function" then e1:SetCost(cost) end
if VgF.GetValueType(tg)=="function" then e1:SetTarget(VgD.EffectTypeIgnitionTarget(tg)) end
if VgF.GetValueType(op)=="function" then e1:SetOperation(op) end
......@@ -1372,20 +1378,23 @@ function VgD.ContinuousSpellOperation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
VgF.Sendto(LOCATION_ORDER,c,tp,POS_FACEUP_ATTACK,REASON_RULE)
end
function VgD.EffectTypeContinuousChangeAttack(c,m,typ,val,con,tg,loc_self,loc_op,reset,mc)
function vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,loc,typ,val,con,tg,loc_self,loc_op,reset,mc)
local cm=_G["c"..m]
local f=VgF.True
if not cm.is_has_continuous and not reset then cm.is_has_continuous=true end
if VgF.GetValueType(mc)~="Card" then mc=c end
if not typ then typ=EFFECT_TYPE_SINGLE end
if not loc_self then loc_self=0 end
if not loc_op then loc_op=0 end
if loc==LOCATION_RZONE then loc=LOCATION_MZONE f=VgF.RMonsterCondition end
if loc==LOCATION_VZONE then loc=LOCATION_MZONE f=VgF.VMonsterCondition end
local e1=Effect.CreateEffect(c)
e1:SetType(typ)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetRange(LOCATION_MZONE)
if VgF.GetValueType(reset)=="number" then e1:SetReset(RESET_EVENT+RESETS_STANDARD+reset) end
if typ==EFFECT_TYPE_FIELD then e1:SetTargetRange(loc_self,loc_op) end
if VgF.GetValueType(con)=="function" then e1:SetCondition(con) end
e1:SetCondition(function (e,tp,eg,ep,ev,re,r,rp) return (VgF.GetValueType(con)~="function" or con(e,tp,eg,ep,ev,re,r,rp)) and f(e) end)
if VgF.GetValueType(tg)=="function" then e1:SetTarget(tg) end
e1:SetValue(val)
mc:RegisterEffect(e1)
......@@ -1476,8 +1485,11 @@ end
function VgD.CannotBeTarget(c,m,con,val,loc,tg,range)
local cm=_G["c"..m]
local f=VgF.True
if not cm.is_has_continuous then cm.is_has_continuous=true end
if not loc then loc=LOCATION_MZONE end
if loc==LOCATION_RZONE then loc=LOCATION_MZONE f=VgF.RMonsterCondition end
if loc==LOCATION_VZONE then loc=LOCATION_MZONE f=VgF.VMonsterCondition end
if VgF.GetValueType(tg)=="function" or VgF.GetValueType(tg)=="number" then
if VgF.GetValueType(range)~="tabel" then range={} end
if #range==0 then range={LOCATION_MZONE,0}
......@@ -1488,7 +1500,7 @@ function VgD.CannotBeTarget(c,m,con,val,loc,tg,range)
e1:SetRange(loc)
e1:SetTargetRange(range[1],range[2])
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
if VgF.GetValueType(con)=="function" then e1:SetCondition(con) end
e1:SetCondition(function (e,tp,eg,ep,ev,re,r,rp) return (VgF.GetValueType(con)~="function" or con(e,tp,eg,ep,ev,re,r,rp)) and f(e) end)
if VgF.GetValueType(val)=="function" then e1:SetValue(val) else
e1:SetValue(function (e,re,rp)
return rp==1-e:GetHandlerPlayer()
......
......@@ -25,6 +25,8 @@ LOCATION_RIDE =LOCATION_EXTRA
LOCATION_DROP =LOCATION_GRAVE
LOCATION_LOCK =LOCATION_REMOVED
LOCATION_ALL =0xffff
LOCATION_RZONE =0x10000
LOCATION_VZONE =0x20000
LOCATION_LIST={0x1,0x2,0x4,0x10,0x20,0x40,0x80,0x400,0x800,0x1000,0x2000,0x4000,0x8000}
--LOCATION_LIST={LOCATION_HAND,LOCATION_MZONE,LOCATION_DROP,LOCATION_LOCK,LOCATION_RIDE,LOCATION_OVERLAY,LOCATION_EXILE,LOCATION_DAMAGE,LOCATION_ORDER,LOCATION_SPARE,LOCATION_GZONE,LOCATION_EMBLEM}
LOCATION_LIST_STRING={"LOCATION_DECK","LOCATION_HAND","LOCATION_MZONE","LOCATION_DROP","LOCATION_LOCK","LOCATION_RIDE","LOCATION_OVERLAY","LOCATION_EXILE","LOCATION_DAMAGE","LOCATION_ORDER","LOCATION_SPARE","LOCATION_GZONE","LOCATION_EMBLEM"}
......
......@@ -573,17 +573,13 @@ function VgF.DamageFill(val)
end
end
function VgF.CostAnd(f1,f2,c1,c2)
function VgF.CostAnd(f1,f2)
return function (e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local a=false
local b=false
if VgF.GetValueType(c1)~="nil" then a=f1(c1)(e,tp,eg,ep,ev,re,r,rp,chk) else a=f1(e,tp,eg,ep,ev,re,r,rp,chk) end
if VgF.GetValueType(c2)~="nil" then b=f2(c2)(e,tp,eg,ep,ev,re,r,rp,chk) else b=f2(e,tp,eg,ep,ev,re,r,rp,chk) end
return a and b
return f1(e,tp,eg,ep,ev,re,r,rp,chk) and f2(e,tp,eg,ep,ev,re,r,rp,chk)
end
if VgF.GetValueType(c1)~="nil" then f1(c1)(e,tp,eg,ep,ev,re,r,rp,chk) else f1(e,tp,eg,ep,ev,re,r,rp,chk) end
if VgF.GetValueType(c2)~="nil" then f2(c2)(e,tp,eg,ep,ev,re,r,rp,chk) else f2(e,tp,eg,ep,ev,re,r,rp,chk) end
f1(e,tp,eg,ep,ev,re,r,rp,chk)
f2(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
......@@ -721,7 +717,7 @@ function VgF.DamageCost(val)
return Duel.GetOperatedGroup():GetCount()
end
end
function VgF.LeaveFieldCost(card_or_code_or_func,val_max,val_min,...)
function VgF.LeaveFieldCost(card_or_code_or_func,val_max,val_min,except,...)
local ext_params={...}
if VgF.GetValueType(val_max)~="number" then val_max=1 end
if VgF.GetValueType(val_min)~="number" or val_min>val_max then val_min=val_max end
......@@ -744,11 +740,11 @@ function VgF.LeaveFieldCost(card_or_code_or_func,val_max,val_min,...)
if chk==0 then
return VgF.IsExistingMatchingCard(function (tc)
return filter(tc,table.unpack(ext_params)) and tc:IsAbleToGraveAsCost()
end,tp,LOCATION_MZONE,0,val_min,nil)
end,tp,LOCATION_MZONE,0,val_min,except)
end
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,function (tc)
return filter(tc,table.unpack(ext_params)) and tc:IsAbleToGraveAsCost()
end,tp,LOCATION_MZONE,0,val_min,val_max,nil)
end,tp,LOCATION_MZONE,0,val_min,val_max,except)
VgF.Sendto(LOCATION_DROP,g,REASON_COST)
end
end
......@@ -768,7 +764,7 @@ end
---用于效果的Operation。执行“从loc_from中选取最少int_min,最多int_max张满足f的卡,送去loc_to。”。
---@param loc_to integer 要送去的区域。不填则返回0。
---@param loc_from integer 要选取的区域。不填则返回0。
---@param f function 卡片过滤的条件
---@param f function|nil 卡片过滤的条件
function VgF.SearchCard(loc_to,loc_from,f,int_max,int_min,...)
local ext_params={...}
return function (e,tp,eg,ep,ev,re,r,rp)
......@@ -1065,16 +1061,54 @@ function VgF.SelectMatchingCard(hintmsg,e,select_tp,f,tp,loc_self,loc_op,int_min
a=true
end
local g=Group.CreateGroup()
local loc_self_f=VgF.True
local loc_op_f=VgF.True
if bit.band(loc_self,LOCATION_VZONE)>0 and bit.band(loc_self,LOCATION_RZONE)>0 then
loc_self=loc_self-LOCATION_VZONE-LOCATION_RZONE
if bit.band(loc_self,LOCATION_MZONE)==0 then
loc_self=loc_self+LOCATION_MZONE
end
elseif bit.band(loc_self,LOCATION_VZONE)>0 then
loc_self=loc_self-LOCATION_VZONE
loc_self_f=VgF.VMonsterFilter
if bit.band(loc_self,LOCATION_MZONE)==0 then
loc_self=loc_self+LOCATION_MZONE
end
elseif bit.band(loc_self,LOCATION_RZONE)>0 then
loc_self=loc_self-LOCATION_RZONE
loc_self_f=VgF.RMonsterFilter
if bit.band(loc_self,LOCATION_MZONE)==0 then
loc_self=loc_self+LOCATION_MZONE
end
end
if bit.band(loc_op,LOCATION_VZONE)>0 and bit.band(loc_op,LOCATION_RZONE)>0 then
loc_op=loc_op-LOCATION_VZONE-LOCATION_RZONE
if bit.band(loc_op,LOCATION_MZONE)==0 then
loc_op=loc_op+LOCATION_MZONE
end
elseif bit.band(loc_op,LOCATION_VZONE)>0 then
loc_op=loc_op-LOCATION_VZONE
loc_op_f=VgF.VMonsterFilter
if bit.band(loc_op,LOCATION_MZONE)==0 then
loc_op=loc_op+LOCATION_MZONE
end
elseif bit.band(loc_op,LOCATION_RZONE)>0 then
loc_op=loc_op-LOCATION_RZONE
loc_op_f=VgF.RMonsterFilter
if bit.band(loc_op,LOCATION_MZONE)==0 then
loc_op=loc_op+LOCATION_MZONE
end
end
if bit.band(loc_self,LOCATION_MZONE)>0 then
local g1=Duel.GetMatchingGroup(function (c)
return c:IsCanBeEffectTarget(e) and c:IsFaceup()
return c:IsCanBeEffectTarget(e) and c:IsFaceup() and loc_self_f(c)
end,tp,LOCATION_MZONE,0,nil)
loc_self=loc_self-LOCATION_MZONE
if g1:GetCount()>0 then g:Merge(g1) end
end
if bit.band(loc_op,LOCATION_MZONE)>0 then
local g1=Duel.GetMatchingGroup(function (c)
return c:IsCanBeEffectTarget(e) and c:IsFaceup()
return c:IsCanBeEffectTarget(e) and c:IsFaceup() and loc_op_f(c)
end,tp,0,LOCATION_MZONE,nil)
loc_op=loc_op-LOCATION_MZONE
if g1:GetCount()>0 then g:Merge(g1) end
......@@ -1115,14 +1149,56 @@ function VgF.GetMatchingGroupCount(f,tp,loc_self,loc_op,except_g,...)
return VgF.GetMatchingGroup(f,tp,loc_self,loc_op,except_g,...):GetCount()
end
function VgF.GetMatchingGroup(f,tp,loc_self,loc_op,except_g,...)
local loc_self_f=VgF.True
local loc_op_f=VgF.True
if bit.band(loc_self,LOCATION_VZONE)>0 and bit.band(loc_self,LOCATION_RZONE)>0 then
loc_self=loc_self-LOCATION_VZONE-LOCATION_RZONE
if bit.band(loc_self,LOCATION_MZONE)==0 then
loc_self=loc_self+LOCATION_MZONE
end
elseif bit.band(loc_self,LOCATION_VZONE)>0 then
loc_self=loc_self-LOCATION_VZONE
loc_self_f=VgF.VMonsterFilter
if bit.band(loc_self,LOCATION_MZONE)==0 then
loc_self=loc_self+LOCATION_MZONE
end
elseif bit.band(loc_self,LOCATION_RZONE)>0 then
loc_self=loc_self-LOCATION_RZONE
loc_self_f=VgF.RMonsterFilter
if bit.band(loc_self,LOCATION_MZONE)==0 then
loc_self=loc_self+LOCATION_MZONE
end
end
if bit.band(loc_op,LOCATION_VZONE)>0 and bit.band(loc_op,LOCATION_RZONE)>0 then
loc_op=loc_op-LOCATION_VZONE-LOCATION_RZONE
if bit.band(loc_op,LOCATION_MZONE)==0 then
loc_op=loc_op+LOCATION_MZONE
end
elseif bit.band(loc_op,LOCATION_VZONE)>0 then
loc_op=loc_op-LOCATION_VZONE
loc_op_f=VgF.VMonsterFilter
if bit.band(loc_op,LOCATION_MZONE)==0 then
loc_op=loc_op+LOCATION_MZONE
end
elseif bit.band(loc_op,LOCATION_RZONE)>0 then
loc_op=loc_op-LOCATION_RZONE
loc_op_f=VgF.RMonsterFilter
if bit.band(loc_op,LOCATION_MZONE)==0 then
loc_op=loc_op+LOCATION_MZONE
end
end
local g=Group.CreateGroup()
if bit.band(loc_self,LOCATION_MZONE)>0 then
local g1=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
local g1=Duel.GetMatchingGroup(function (c)
return c:IsFaceup() and loc_self_f(c)
end,tp,LOCATION_MZONE,0,nil)
loc_self=loc_self-LOCATION_MZONE
if g1:GetCount()>0 then g:Merge(g1) end
end
if bit.band(loc_op,LOCATION_MZONE)>0 then
local g1=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_MZONE,nil)
local g1=Duel.GetMatchingGroup(function (c)
return c:IsFaceup() and loc_op_f(c)
end,tp,0,LOCATION_MZONE,nil)
loc_op=loc_op-LOCATION_MZONE
if g1:GetCount()>0 then g:Merge(g1) end
end
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.BeRidedByCard(c,m,10101001,vgf.SearchCard(LOCATION_HAND,LOCATION_DECK,cm.filter),vgf.OverlayCost(1))
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
end
function cm.filter(c)
return c:IsCode(10101006)
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.BeRidedByCard(c,m,10101002,vgf.SearchCard(LOCATION_MZONE,LOCATION_DECK,cm.filter))
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
end
function cm.filter(c)
return c:IsCode(10101009)
......
......@@ -2,7 +2,7 @@
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
end
function cm.con(e)
return Duel.GetAttacker()==e:GetHandler()
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,cm.cost,vgf.VSummonCondition)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,nil,vgf.VSummonCondition)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
......
......@@ -6,7 +6,7 @@ function cm.initial_effect(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_BATTLED,cm.operation,vgf.DisCardCost(1),cm.condition,nil,1)
vgd.GlobalCheckEffect(c,m,EVENT_MOVE,cm.checkcon,cm.checkop)
--【永】【V】:你的回合中,你所有的等级3的单位的力量+2000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_FIELD,2000,cm.con,cm.target,LOCATION_MZONE+LOCATION_GZONE,0)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,2000,cm.con,cm.target,LOCATION_MZONE+LOCATION_GZONE,0)
end
function cm.checkfilter(c,tp)
return c:IsLocation(LOCATION_TRIGGER) and c:IsLevel(3) and c:IsControler(tp)
......
......@@ -4,7 +4,7 @@ function cm.initial_effect(c)
vgf.VgCard(c)
cm.is_has_continuous=true
vgd.BeRidedByCard(c,m,10103001,cm.operation,cm.cost)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.condition)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.condition)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
......
......@@ -5,7 +5,7 @@ function cm.initial_effect(c)
--【自】:这个单位被「树角兽 拉提斯」RIDE时,将你的牌堆顶的1张卡公开,那张卡是等级2以下的单位卡的话,CALL到R上,不是的话,放置到你的灵魂里。
vgd.BeRidedByCard(c,m,10104002,cm.operation)
--【永】【后列的R】:这个单位攻击的战斗中,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
end
function cm.con(e)
local c=e:GetHandler()
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.op1,vgf.DamageCost(1),nil,nil,1)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,10000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,10000,cm.con)
vgd.TriggerCountUp(c,m,1)
end
function cm.con(e,c)
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,nil,vgf.VSummonCondition)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,con)
vgd.EffectTypeContinuousChangeDefense(c,m,EFFECT_TYPE_SINGLE,5000,con)
end
function cm.con(e,c)
......
......@@ -3,7 +3,7 @@ function cm.initial_effect(c)
vgf.VgCard(c)
vgf.AddRideMaterialCode(c,m,10406013)
vgf.AddRideMaterialSetCard(c,m,0xc014,0x74)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.op,cm.cost,vgf.VMonsterCondition)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -8,7 +8,7 @@ function cm.initial_effect(c)
--【自】【V】:这个单位攻击先导者时,通过【费用】[使用等级均不同的卡进行灵魂爆发4],选择对手的1张先导者,这个回合中,力量增减至1,对手有等级3以上的先导者的话,这个单位的☆+1。(仅将那个时点的力量增减至1,这之后那个单位的力量仍然能通过其他方式增减。)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,cm.cost,cm.condition)
--【永】【R】:这个回合中由于你的卡片的能力的费用同时使用4张以上的卡进行了灵魂爆发的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
......
......@@ -7,7 +7,7 @@ function cm.initial_effect(c)
--【反抗舞装】
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_BATTLED,cm.operation,nil,cm.condition)
--【永】【R】:这个回合中曾有你的等级3以上的先导者登场过的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.GlobalCheckEffect(c,m,EVENT_SPSUMMON_SUCCESS,cm.checkcon)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.BeRidedByCard(c,m,10203002,cm.operation,vgf.OverlayCost(1))
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
end
function cm.con(e)
return Duel.GetAttacker()==e:GetHandler()
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,vgf.True,vgf.VMonsterCondition)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -7,7 +7,7 @@ end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,vgf.VMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_FIELD,5000,nil,cm.tg,LOCATION_MZONE,0,RESET_PHASE+PHASE_END,g:GetFirst())
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,5000,nil,cm.tg,LOCATION_MZONE,0,RESET_PHASE+PHASE_END,g:GetFirst())
end
function cm.tg(e,c)
return vgf.RMonsterFilter(c)
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.OverDress(c,cm.filter)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,cm.val,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.val,cm.con)
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.op,cm.cost,cm.con)
end
function cm.filter(c)
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.GlobalCheckEffect(c,m,EVENT_CHANGE_POS,cm.checkcon)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeStar(c,m,EFFECT_TYPE_SINGLE,1,cm.con1)
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.op,vgf.DamageCost(1))
end
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.op,vgf.DamageCost(2),cm.con1)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,function(e) return vgf.RMonsterCondition(e) and cm.con(e) end)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,function(e) return vgf.RMonsterCondition(e) and cm.con(e) end)
vgd.EffectTypeContinuousChangeDefense(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,vgf.OverlayCost(1),vgf.RSummonCondition)
end
......
......@@ -17,6 +17,6 @@ function cm.condition1(e,tp,eg,ep,ev,re,r,rp)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g2=vgf.GetMatchingGroup(vgf.IsSequence,tp,LOCATION_MZONE,0,nil,0,4,5)
vgf.AtkUp(c,g2,10000,nil)
local g=vgf.GetMatchingGroup(vgf.FrontFilter,tp,LOCATION_MZONE,0,nil)
vgf.AtkUp(c,g,5000,nil)
end
\ No newline at end of file
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_MOVE,cm.op,nil,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con2)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con2)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.SearchCard(LOCATION_HAND,LOCATION_DROP,cm.filter,1,0),nil,vgf.VSummonCondition)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con2)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con2)
vgd.GlobalCheckEffect(c,m,EVENT_CHAINING,cm.checkcon)
end
function cm.filter(c)
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
--【永】【R】:这个回合中你进行过灵魂填充的话,这个单位的力量+2000
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.GlobalCheckEffect(c,m,EVENT_CUSTOM+EVENT_OVERLAY_FILL,cm.checkcon)
end
function cm.con(e)
......
......@@ -5,7 +5,7 @@ function cm.initial_effect(c)
--【自】:这个单位登场到V时,灵魂填充1
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.OverlayFill(1),nil,vgf.VSummonCondition)
--【永】【R】:你的回合中,你的灵魂在10张以上的话,这个单位的力量+10000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,10000,cm.con2)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,10000,cm.con2)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
end
function cm.con(e,c)
local tp=e:GetHandlerPlayer()
......
......@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.SearchCard(LOCATION_HAND,LOCATION_DECK,Card.IsSetCard,1,0,0x5040),nil,vgf.VSummonCondition)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
end
function cm.filter(c)
return c:IsSetCard(0x5040)
......
......@@ -6,7 +6,7 @@ function cm.initial_effect(c)
--选择你的手牌中的至多1张指令卡,舍弃,没有舍弃的话,选择手牌中的的2张卡舍弃。
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation,vgf.OverlayCost(1),vgf.VMonsterCondition,nil,1)
--【永】【R】:这个回合中你施放过指令卡的话,这个单位的力量+2000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.GlobalCheckEffect(c,m,EVENT_CHAINING,cm.checkcon)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -3,7 +3,7 @@ function cm.initial_effect(c)
vgf.VgCard(c)
vgd.OverDress(c,10101009)
vgd.EffectTypeTrigger(c,m,LOCATION_HAND,EFFECT_TYPE_FIELD,EVENT_BATTLED,cm.op,vgf.OverlayCost(2),cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,10000,cm.con2)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,10000,cm.con2)
vgd.EffectTypeContinuousChangeDefense(c,m,EFFECT_TYPE_SINGLE,10000,cm.con2)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,cm.val,vgf.RMonsterCondition)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.val,vgf.RMonsterCondition)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_BATTLED,cm.op,vgf.LeaveFieldCost(10000001),cm.con)
end
function cm.val(e)
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_SPSUMMON_SUCCESS,cm.op,nil,cm.con2)
end
function cm.con(e,c)
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.GlobalCheckEffect(c,m,EVENT_CHAINING,cm.checkcon)
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,nil,vgf.RSummonCondition)
end
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,vgf.CostAnd(vgf.DamageCost,vgf.DisCardCost,1,1),cm.condition)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,vgf.CostAnd(vgf.DamageCost(1),vgf.DisCardCost(1)),cm.condition)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.SpellActivate(c,m,cm.op,vgf.CostAnd(vgf.DamageCost,vgf.OverlayCost,1,1))
vgd.SpellActivate(c,m,cm.op,vgf.CostAnd(vgf.DamageCost(1),vgf.OverlayCost(1)))
end
function cm.op(e,tp,eg,ep,ev,re,r,rp,chk)
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEFIELD,e,tp,vgf.RMonsterFilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.op,vgf.OverlayCost(1))
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.op,vgf.OverlayCost(1),vgf.RMonsterCondition)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,cm.op,nil,cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetFlagEffect(FLAG_SUPPORT)>0 and vgf.GetVMonster(tp):IsCode(10401003)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
vgf.OverlayFill(1)(e,tp,eg,ep,ev,re,r,rp)
if vgf.GetVMonster(tp):GetOverlayCount()>=10 and vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,0) and Duel.SelectYesNo(tp,vgf.Stringid(VgID,10)) then
Duel.BreakEffect()
vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,1)
Duel.Draw(tp,2,REASON_EFFECT)
end
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeDefense(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.GetVMonster(1-tp):IsLevelAbove(3)
end
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.SpellActivate(c,m,cm.op,vgf.CostAnd(vgf.DamageCost(1),vgf.DisCardCost(1)))
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
vgf.OverlayFill(3)(e,tp,eg,ep,ev,re,r,rp)
if vgf.GetVMonster(tp):GetOverlayCount()>=10 then
vgf.SearchCard(LOCATION_HAND,LOCATION_OVERLAY,nil,1)(e,tp,eg,ep,ev,re,r,rp)
end
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.SpellActivate(c,m,cm.op,vgf.DamageCost(1))
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Draw(tp,1,REASON_EFFECT)
vgf.SearchCard(LOCATION_MZONE,LOCATION_HAND,vgf.IsCanBeCalled,1,1,e,tp)
local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
if VgF.GetValueType(ct)=="number" and ct==10102001 then
Duel.BreakEffect()
local g=vgf.GetMatchingGroup(vgf.FrontFilter,tp,LOCATION_MZONE,0,nil)
vgf.AtkUp(c,g,10000,nil)
end
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.op,nil,cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.GetMatchingGroup(cm.filter,tp,LOCATION_MZONE,0,nil)
return g:GetCount()>0 and vgf.RMonsterCondition(e)
end
function cm.filter(c)
return c:GetFlagEffect(FLAG_SUPPORT)>0 and c:IsCode(10000001)
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,nil,vgf.RSummonCondition)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,3)
Duel.ConfirmCards(tp,g)
Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:FilterSelect(tp,Card.IsSetCard,0,1,nil,0x5040)
if sg:GetCount()>0 then vgf.Sendto(LOCATION_HAND,sg,nil,REASON_EFFECT) g:Sub(sg) end
if #g>1 then
Duel.SortDecktop(tp,tp,#g)
for i=1,#g do
local dg=Duel.GetDecktopGroup(tp,1)
Duel.MoveSequence(dg:GetFirst(),SEQ_DECKBOTTOM)
end
end
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,vgf.DamageFill(1),vgf.LeaveFieldCost(10000001),cm.con1)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,vgf.DamageFill(1),vgf.LeaveFieldCost(10000001),cm.con2)
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsPlayerAffectedByEffect(tp,AFFECT_CODE_DEEP_NIGHT)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return cm.con1(e,tp,eg,ep,ev,re,r,rp) and eg:GetFirst()==e:GetHandler()
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation,vgf.ChangePosDefence(),cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.RMonsterCondition(e) and vgf.GetMatchingGroupCount(cm.filter,tp,LOCATION_ORDER,0,nil)<=1
end
function cm.filter(c)
return c:GetFlagEffect(FLAG_IMPRISON)>0
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if not vgf.CheckPrison(tp) then return end
local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,Card.IsType,tp,0,LOCATION_GRAVE,1,1,nil,TYPE_MONSTER)
vgf.SendtoPrison(g,tp)
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeContinuousChangeDefense(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.GetVMonster(1-tp):IsLevelAbove(3)
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.SpellActivate(c,m,cm.op,vgf.OverlayCost(1),cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not vgf.CheckPrison(tp) then return end
local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,1-tp,nil,tp,0,LOCATION_HAND,1,1,nil)
vgf.SendtoPrison(g,tp)
if vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,3,nil) then
Duel.BreakEffect()
local sg=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
vgf.AtkUp(c,sg,5000)
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.GetMatchingGroupCount(nil,tp,LOCATION_HAND,0,nil)>=4
end
function cm.filter(c)
return c:GetFlagEffect(FLAG_IMPRISON)>0
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,vgf.OverlayCost(1),cm.con)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_MOVE,vgf.DamageFill(1),vgf.DamageCost(1),cm.con,nil,1)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then
vgf.AtkUp(c,c,10000,nil)
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.RSummonCondition(e) and vgf.GetVMonster(tp):IsCode(10401008)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,2)
Duel.ConfirmCards(tp,g)
Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,vgf.Stringid(m,0))
local sg=g:Select(tp,0,2,nil)
if #sg>0 then
for tc in vgf.Next(sg) do
Duel.MoveSequence(tc,SEQ_DECKTOP)
end
Duel.SortDecktop(tp,tp,#sg)
g:Sub(sg)
end
if #g>1 then
for tc in vgf.Next(g) do
Duel.MoveSequence(tc,SEQ_DECKTOP)
end
Duel.SortDecktop(tp,tp,#g)
for i=1,#g do
local dg=Duel.GetDecktopGroup(tp,1)
Duel.MoveSequence(dg:GetFirst(),SEQ_DECKBOTTOM)
end
end
end
\ No newline at end of file
local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,vgf.OverlayCost(1),cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.RSummonCondition(e) and vgf.GetVMonster(tp):IsSetCard(0x78)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then
vgf.AtkUp(c,c,10000,nil)
end
if vgf.CostAnd(vgf.OverlayCost(1),vgf.LeaveFieldCost(vgf.RMonsterFilter,1,1,c))(e,tp,eg,ep,ev,re,r,rp,0) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then
Duel.BreakEffect()
vgf.CostAnd(vgf.OverlayCost(1),vgf.LeaveFieldCost(vgf.RMonsterFilter,1,1,c))(e,tp,eg,ep,ev,re,r,rp,0)
local g=Duel.GetDecktopGroup(tp,5)
Duel.ConfirmCards(tp,g)
Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
local sg=g:FilterSelect(tp,cm.filter,0,1,nil,e,tp)
if sg:GetCount()>0 then
vgf.Sendto(LOCATION_MZONE,sg,0,tp)
end
Duel.ShuffleDeck(tp)
end
end
function cm.filter(c,e,tp)
return vgf.IsCanBeCalled(c,e,tp) and c:IsLevelBelow(1)
end
\ No newline at end of file
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【V】:你的回合中,你没有后防者的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con1)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con1)
--【自】:通过在「认真的挑战者 克拉莉萨」上RIDE的方式将这个单位登场到V时,通过【费用】[灵魂爆发1],查看你的牌堆顶的7张卡,选择至多1张等级2以下的含有「诚意真心」的卡,公开后加入手牌,将其余的卡洗切后放置到牌堆底。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,vgf.OverlayCost(1),cm.con2)
end
......
......@@ -4,7 +4,7 @@ function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【V】:【永】【V】:你的回合中,你的指令区中有正面表示的歌曲卡的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con1)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con1)
-- 【自】:这个单位被RIDE时,选择你的牌堆或手牌中的至多1张等级2的歌曲卡,公开后放置到指令区,从牌堆探寻了的话,牌堆洗切。从手牌放置了的话,抽卡1张。
vgd.BeRidedByCard(c,m,nil,cm.operation)
end
......
......@@ -5,7 +5,7 @@ function cm.initial_effect(c)
-- 【永】【R】:这个回合中你施放了「不移之绯红」和「无尽之苍蓝」的话,这个单位的力量+10000。
vgd.GlobalCheckEffect(c,m,EVENT_CHAIN_SOLVING,cm.checkcon1)
vgd.GlobalCheckEffect(c,m,EVENT_CHAIN_SOLVING,cm.checkcon2,cm.checkop)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,10000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,10000,cm.con)
end
function cm.con(e)
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【R/G】:你的R上的〈幽灵〉有3张以上的话,这个单位的力量+2000、盾护+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con1)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con1)
vgd.EffectTypeContinuousChangeDefense(c,m,EFFECT_TYPE_SINGLE,5000,cm.con2)
end
......
......@@ -14,7 +14,7 @@ function cm.initial_effect(c)
e2:SetCondition(cm.con)
c:RegisterEffect(e2)
-- -2000
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,-2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,-2000,cm.con)
end
function cm.con(e)
local c = e:GetHandler()
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【R】:你的回合中,你的指令区中有卡存在的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con)
end
function cm.con(e)
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【V/R】:对手的回合中,这个单位的力量-2000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,-2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,-2000,cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -5,7 +5,7 @@ function cm.initial_effect(c)
-- 【自】:这个单位被RIDE时,通过【费用】[灵魂爆发1],选择你的弃牌区中的至多1张〈幽灵〉,加入手牌。
vgd.BeRidedByCard(c,m,nil,cm.op,OverlayCost(1))
-- 【永】【V/R】:你的回合中,你的R上有〈幽灵〉的话,这个单位的力量+2000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【R】:你的回合中,你的指令区中有2张以上的卡的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con1)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con1)
end
function cm.con1(e)
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【R】:你的回合中,你有含有「诚意真心」的单位的话,这个单位的力量+2000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
end
function cm.con(e)
......
......@@ -5,7 +5,7 @@ function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【R】:这个回合中你施放了指令卡的话,这个单位的力量+2000。
vgd.GlobalCheckEffect(c,m,EVENT_CHAIN_SOLVING,cm.checkcon)
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con1)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con1)
end
function cm.con1(e)
local tp=e:GetHandlerPlayer()
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【V】:你的回合中,你没有后防者的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con1)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con1)
-- 【自】:通过在「凛然之志 克拉莉萨」上RIDE的方式将这个单位登场到V时,查看你的牌堆顶的7张卡,选择至多1张等级1以下的含有「诚意真心」的卡,公开后加入手牌,将其余的卡洗切后放置到牌堆底。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,nil,cm.con2,nil,1)
end
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)-【永】【R/G】:这个单位的力量+2000、盾护+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.EffectTypeContinuousChangeDefense(c,m,EFFECT_TYPE_SINGLE,5000,vgf.WhiteWing)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
vgf.VgCard(c)
-- 【永】【R】:你其他的后防者有3张以上的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,5000,cm.con1)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,5000,cm.con1)
end
function cm.con1(e)
local c= e:GetHandler()
......
......@@ -4,7 +4,7 @@ function cm.initial_effect(c)
vgf.VgCard(c)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
-- 【永】【R】:你的回合中,这个单位的力量+10000。
vgd.EffectTypeContinuousChangeAttack(c,m,EFFECT_TYPE_SINGLE,10000,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,10000,cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.WhiteWing(e) and Duel.GetTurnPlayer()==tp and vgf.RMonsterCondition(e)
......
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