Commit a154442c authored by xiaoye's avatar xiaoye

fixed

parent 056d9eef
...@@ -678,6 +678,7 @@ EVENT_RIDE_START =VgID+3 --骑升时点 ...@@ -678,6 +678,7 @@ EVENT_RIDE_START =VgID+3 --骑升时点
EVENT_SUPPORT =VgID+4 --支援时点 EVENT_SUPPORT =VgID+4 --支援时点
EVENT_TRIGGERCOUNTUP =VgID+5 --驱动追加 EVENT_TRIGGERCOUNTUP =VgID+5 --驱动追加
EVENT_SING =VgID+6 --演唱时 EVENT_SING =VgID+6 --演唱时
EVENT_OVERLAY_FILL =VgID+7 --演唱时
--攻击时(EVENT_ATTACK_ANNOUNCE) --攻击时(EVENT_ATTACK_ANNOUNCE)
--支援时(EVENT_CUSTOM+EVENT_SUPPORT) --支援时(EVENT_CUSTOM+EVENT_SUPPORT)
......
...@@ -596,6 +596,7 @@ function VgF.OverlayFill(num) ...@@ -596,6 +596,7 @@ function VgF.OverlayFill(num)
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
local g=Duel.GetDecktopGroup(tp,num) local g=Duel.GetDecktopGroup(tp,num)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.RaiseEvent(g,EVENT_CUSTOM+EVENT_OVERLAY_FILL,e,0,tp,tp,num)
return VgF.Sendto(LOCATION_OVERLAY,g,rc) return VgF.Sendto(LOCATION_OVERLAY,g,rc)
end end
end end
......
...@@ -16,5 +16,6 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp) ...@@ -16,5 +16,6 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.ChangePosition(g,POS_FACEUP_ATTACK) Duel.ChangePosition(g,POS_FACEUP_ATTACK)
end end
function cm.con2(e,tp,eg,ep,ev,re,r,rp) function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)==10102001 and vgf.VMonsterCondition(e) local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
return VgF.GetValueType(ct)=="number" and ct==10102001 and vgf.VMonsterCondition(e)
end end
\ No newline at end of file
...@@ -12,7 +12,8 @@ function cm.initial_effect(c) ...@@ -12,7 +12,8 @@ function cm.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function cm.con2(e,tp,eg,ep,ev,re,r,rp) function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)==10102001 local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
return VgF.GetValueType(ct)=="number" and ct==10102001
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 c=e:GetHandler() local c=e:GetHandler()
......
...@@ -11,7 +11,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,7 +11,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
vgf.OverlayFill(1) vgf.OverlayFill(1)
Duel.BreakEffect() Duel.BreakEffect()
if Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)==10102001 and vgf.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
if VgF.GetValueType(ct)=="number" and ct==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) local g=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
Duel.ChangePosition(g,POS_FACEDOWN_ATTACK) Duel.ChangePosition(g,POS_FACEDOWN_ATTACK)
vgf.AtkUp(c,c,15000) vgf.AtkUp(c,c,15000)
......
...@@ -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 num=1 local num=1
if Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)==10102001 then num=num+1 end local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
if VgF.GetValueType(ct)=="number" and ct==10102001 then num=num+1 end
vgf.OverlayFill(num)(e,tp,eg,ep,ev,re,r,rp) vgf.OverlayFill(num)(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.con1(e,tp,eg,ep,ev,re,r,rp) function cm.con1(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -14,7 +14,8 @@ function cm.checkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -14,7 +14,8 @@ function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
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 Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)==10102001 local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
return VgF.GetValueType(ct)=="number" and ct==10102001
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 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)
......
...@@ -10,15 +10,17 @@ end ...@@ -10,15 +10,17 @@ 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 if chk ==0 then
return c:IsAbleToGraveAsCost()(e,tp,eg,ep,ev,r,rp,chk) return c:IsAbleToGraveAsCost()
end end
vgf.Sendto(LOCATION_DROP,c,REASON_COST) vgf.Sendto(LOCATION_DROP,c,REASON_COST)
end end
--你的主要阶段中对手的后防者退场时 --你的主要阶段中对手的后防者退场时
function cm.con(e,tp,eg,ep,re,r,rp) function cm.con(e,tp,eg,ep,re,r,rp)
return eg:IsExists(cm.filter,1,nil,tp) and Duel.GetCurrentPhase()==PHASE_MAIN1 and Duel.GetTurnPlayer()==tp return eg:IsExists(cm.filter,1,nil,tp) and Duel.GetCurrentPhase()==PHASE_MAIN1 and Duel.GetTurnPlayer()==tp and vgf.RMonsterCondition(e)
end
function cm.filter(c,tp)
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousControler(1-tp) and c:IsPreviousPosition(POS_FACEUP)
end end
function cm.op(e,tp,eg,ep,re,r,rp) 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)
...@@ -27,8 +29,7 @@ function cm.op(e,tp,eg,ep,re,r,rp) ...@@ -27,8 +29,7 @@ function cm.op(e,tp,eg,ep,re,r,rp)
if sg:GetCount()>0 then if sg:GetCount()>0 then
vgf.Sendto(LOCATION_MZONE,g,0,tp) vgf.Sendto(LOCATION_MZONE,g,0,tp)
g:Sub(sg) g:Sub(sg)
end else
if g:GetCount()>0 then
local tc=vgf.GetVMonster(tp) local tc=vgf.GetVMonster(tp)
vgf.Sendto(LOCATION_OVERLAY,g,tc) vgf.Sendto(LOCATION_OVERLAY,g,tc)
end end
......
...@@ -4,10 +4,28 @@ function cm.initial_effect(c) ...@@ -4,10 +4,28 @@ function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--通过【费用】[使用1张以上的你希望的张数的卡进行计数爆发]施放! --通过【费用】[使用1张以上的你希望的张数的卡进行计数爆发]施放!
--由于这个费用支付的计数爆发1每有1张,选择对手的1张后防者,退场。 --由于这个费用支付的计数爆发1每有1张,选择对手的1张后防者,退场。
vgd.SpellActivate(c,m,cm.op,vgf.DamageCost()) vgd.SpellActivate(c,m,cm.op,cm.cost)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=vgf.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_DAMAGE,0,nil)
if chk==0 then
if e:IsHasType(EFFECT_TYPE_ACTIVATE) then
cm.cos_g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_DAMAGE,0,nil)
cm.cos_val={nil,1,ct}
end
return vgf.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil)
end
local g=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,ct,nil)
local lab=Duel.ChangePosition(g,POS_FACEDOWN_ATTACK)
e:SetLabel(lab)
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 ct=e:GetLabel()
local ct1=vgf.GetMatchingGroupCount(nil,tp,0,LOCATION_MZONE,nil)
if ct>ct1 then ct=ct1 end
if ct==0 then return end
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,nil,tp,0,LOCATION_MZONE,1,ct,nil)
if g:GetCount()>0 then
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end
end end
...@@ -8,7 +8,6 @@ end ...@@ -8,7 +8,6 @@ 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.IsExistingMatchingCard(nil,tp,LOCATION_DAMAGE,0,3,nil) return vgf.IsExistingMatchingCard(nil,tp,LOCATION_DAMAGE,0,3,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 c=e:GetHandler() local c=e:GetHandler()
......
...@@ -3,14 +3,9 @@ local cm,m,o=GetID() ...@@ -3,14 +3,9 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
-- 【自】【R】:这个单位的攻击击中时,灵魂填充1。 -- 【自】【R】:这个单位的攻击击中时,灵魂填充1。
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.op1,nil) vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,vgf.OverlayFill(1),nil,vgf.RMonsterCondition)
-- 【自】【R】:这个单位攻击的战斗结束时,你的灵魂在10张以上的话,通过【费用】[将这个单位放置到灵魂里],计数回充1 -- 【自】【R】:这个单位攻击的战斗结束时,你的灵魂在10张以上的话,通过【费用】[将这个单位放置到灵魂里],计数回充1
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_BATTLED, vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_BATTLED,vgf.DamageFill(1),cm.cost,cm.con)
cm.op2,cm.cost,cm.con2)
end
function cm.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e.GetHandler()
vgf.OverlayFill(1)(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()
...@@ -18,11 +13,6 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -18,11 +13,6 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local rc=vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
vgf.Sendto(LOCATION_OVERLAY,c,rc) vgf.Sendto(LOCATION_OVERLAY,c,rc)
end end
function cm.op2(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() return vgf.GetMatchingGroupCount(nil,tp,LOCATION_OVERLAY,0,nil)>=10 and vgf.RMonsterCondition(e)
vgf.DamageFill(1)(e,tp,eg,ep,ev,re,r,rp)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return vgf.GetMatchingGroupCount(nil,tp,LOCATION_OVERLAY,0,nil)>=10
end end
\ No newline at end of file
...@@ -4,15 +4,15 @@ function cm.initial_effect(c) ...@@ -4,15 +4,15 @@ function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【永】【R】:这个回合中你进行过灵魂填充的话,这个单位的力量+2000 --【永】【R】:这个回合中你进行过灵魂填充的话,这个单位的力量+2000
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,2000,cm.con) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,2000,cm.con)
vgd.GlobalCheckEffect(c,m,EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS,EVENT_CHAIN_SOLVED,cm.checkcon,cm.checkop) vgd.GlobalCheckEffect(c,m,EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS,EVENT_CUSTOM+EVENT_OVERLAY_FILL,cm.checkcon,cm.checkop)
end end
function cm.con(e) function cm.con(e)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return vgf.RMonsterCondition(e) and Duel.OverlayFill()>0 return vgf.RMonsterCondition(e) and Duel.GetFlagEffect(tp,m)>0
end end
function cm.checkcon(e,tp,eg,ep,ev,re,r,rp) function cm.checkcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and rp==tp
end end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp) function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,m,PHASE_END,0,1)
end end
\ No newline at end of file
...@@ -5,9 +5,19 @@ function cm.initial_effect(c) ...@@ -5,9 +5,19 @@ function cm.initial_effect(c)
--【自】:这个单位登场到R时,选择你其他的1个与这个单位同纵列的单位,这个回合中,力量+2000。你处于“一气呵成之势”状态的话,力量不+2000而是+5000。 --【自】:这个单位登场到R时,选择你其他的1个与这个单位同纵列的单位,这个回合中,力量+2000。你处于“一气呵成之势”状态的话,力量不+2000而是+5000。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,nil,cm.con) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,nil,cm.con)
end end
function cm.op() function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=vgf.GetColumnGroup(c):FilterSelect(tp,cm.filter,1,1,nil,tp)
local atk=2000
if Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)==10102001 then
atk=5000
end
vgf.AtkUp(c,g,atk)
end
function cm.filter(c,tp)
return c:IsControler(tp) and c:IsFaceup()
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.RMonsterFilter(e:GetHandler()) local c=e:GetHandler()
return not (c:IsSummonType(SUMMON_TYPE_SELFRIDE) or c:IsSummonType(SUMMON_TYPE_RIDE))
end end
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.op,vgf.DamageCost(1),cm.con)
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return vgf.RMonsterFilter(c) and eg:IsContains(c) and vgf.GetVMonster(tp):GetOverlayCount()>=5
end
--对手要从手牌将卡CALL到G上之际,不将2张以上同时CALL的话则不能CALL出场。
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_ACTIVATE_COST)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(0,1)
e1:SetTarget(cm.costtg)
e1:SetCost(cm.costchk)
e1:SetOperation(cm.costop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
vgf.EffectReset(c,e1,EVENT_BATTLED)
end
function cm.costtg(e,re,tp)
e:SetLabelObject(re:GetHandler())
return re:IsHasCategory(CATEGORY_DEFENDER) and re:GetHandler():IsLocation(LOCATION_HAND) and re:GetHandlerPlayer()==tp and not vgf.IsExistingMatchingCard(nil,tp,LOCATION_GZONE,0,1,nil) and Duel.GetAttacker()==e:GetHandler()
end
function cm.costchk(e,re,tp)
return vgf.IsExistingMatchingCard(vgf.IsAbleToGZone,tp,LOCATION_HAND,0,1,re:GetHandler(),LOCATION_HAND)
end
function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetLabelObject()
local g=vgf.SelectMatchingCard(HINTMSG_TO_GZONE,e,tp,vgf.IsAbleToGZone,tp,LOCATION_HAND,0,1,1,c,LOCATION_HAND)
vgf.Sendto(LOCATION_GZONE,g,tp,POS_FACEUP,REASON_EFFECT)
end
\ No newline at end of file
...@@ -7,12 +7,10 @@ function cm.initial_effect(c) ...@@ -7,12 +7,10 @@ function cm.initial_effect(c)
--【永】【R】:你的回合中,你的灵魂在10张以上的话,这个单位的力量+10000。 --【永】【R】:你的回合中,你的灵魂在10张以上的话,这个单位的力量+10000。
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,10000,cm.con2) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,10000,cm.con2)
end end
function cm.con1() function cm.con1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=c:GetMaterial()
return c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE) return c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)
end end
function cm.con2(e,tp,eg,ep,ev,re,r,rp) function cm.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return vgf.RMonsterCondition(e) and vgf.GetVMonster(tp):GetOverlayCount()>=10 return vgf.RMonsterCondition(e) and vgf.GetVMonster(tp):GetOverlayCount()>=10
......
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