Commit 6b81d098 authored by jwyxym's avatar jwyxym Committed by GitHub

Add files via upload

parent 5c64b7d9
...@@ -865,6 +865,7 @@ function VgD.BeRidedByCardOperation(m,op,cost,tg,stringid) ...@@ -865,6 +865,7 @@ function VgD.BeRidedByCardOperation(m,op,cost,tg,stringid)
e1:SetType(type+EFFECT_TYPE_FIELD) e1:SetType(type+EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetLabelObject(c)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(VgD.BeRidedByCardOpCondtion) e1:SetCondition(VgD.BeRidedByCardOpCondtion)
if VgF.GetValueType(cost)=="function" then e1:SetCost(cost) end if VgF.GetValueType(cost)=="function" then e1:SetCost(cost) end
...@@ -931,10 +932,20 @@ function VgD.EffectTypeIgnition(c,m,loc,op,cost,con,tg,count,property,stringid) ...@@ -931,10 +932,20 @@ function VgD.EffectTypeIgnition(c,m,loc,op,cost,con,tg,count,property,stringid)
if count and count>0 then e1:SetCountLimit(count) end if count and count>0 then e1:SetCountLimit(count) end
if VgF.GetValueType(con)=="function" then e1:SetCondition(con) end if VgF.GetValueType(con)=="function" then e1:SetCondition(con) end
if VgF.GetValueType(cost)=="function" then e1:SetCost(cost) end if VgF.GetValueType(cost)=="function" then e1:SetCost(cost) end
if VgF.GetValueType(tg)=="function" then e1:SetTarget(tg) end if VgF.GetValueType(tg)=="function" then e1:SetTarget(VgD.EffectTypeIgnitionTarget(tg)) end
if VgF.GetValueType(op)=="function" then e1:SetOperation(op) end if VgF.GetValueType(op)=="function" then e1:SetOperation(op) end
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function VgD.EffectTypeIgnitionTarget(tg)
return function (e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
return VgF.GetValueType(tg)~="function" or tg(e,tp,eg,ep,ev,re,r,rp,chk)
end
local c=e:GetLabelObject()
Duel.SetTargetCard(c)
tg(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
function VgD.EffectTypeTriggerWhenHitting(c,m,loc,typ,op,cost,con,tg,count,p,property,stringid) function VgD.EffectTypeTriggerWhenHitting(c,m,loc,typ,op,cost,con,tg,count,p,property,stringid)
if not typ or typ==0 then typ=EFFECT_TYPE_SINGLE end if not typ or typ==0 then typ=EFFECT_TYPE_SINGLE end
if not p then p=c:GetControler() end if not p then p=c:GetControler() end
......
...@@ -375,8 +375,35 @@ function VgF.AtkUp(c,g,val,reset) ...@@ -375,8 +375,35 @@ function VgF.AtkUp(c,g,val,reset)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(val) e1:SetValue(val)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+reset) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(reset)
e2:SetRange(c:GetLocation())
e2:SetLabelObject(e1)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(function (e,tp,eg,ep,ev,re,r,rp)
local effect=e:GetLabelObject()
effect:Reset()
end)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(reset)
e3:SetRange(c:GetLocation())
e3:SetLabelObject(e1)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(function (e,tp,eg,ep,ev,re,r,rp)
local effect=e:GetLabelObject()
effect:Reset()
end)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetLabelObject(e2)
tc:RegisterEffect(e4)
end end
return return
elseif VgF.GetValueType(g)=="Card" then elseif VgF.GetValueType(g)=="Card" then
...@@ -385,8 +412,35 @@ function VgF.AtkUp(c,g,val,reset) ...@@ -385,8 +412,35 @@ function VgF.AtkUp(c,g,val,reset)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(val) e1:SetValue(val)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+reset) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(reset)
e2:SetRange(c:GetLocation())
e2:SetLabelObject(e1)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(function (e,tp,eg,ep,ev,re,r,rp)
local effect=e:GetLabelObject()
effect:Reset()
end)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(reset)
e3:SetRange(c:GetLocation())
e3:SetLabelObject(e1)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(function (e,tp,eg,ep,ev,re,r,rp)
local effect=e:GetLabelObject()
effect:Reset()
end)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetLabelObject(e2)
tc:RegisterEffect(e4)
end end
end end
---以c的名义,使g(中的每一张卡)的☆上升val,并在reset时重置。 ---以c的名义,使g(中的每一张卡)的☆上升val,并在reset时重置。
......
...@@ -19,7 +19,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -19,7 +19,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.IsSequence(c,5) and r==REASON_RIDEUP return vgf.IsSequence(c,5) and r==REASON_RIDEUP
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 vgf.GetAvailableLocation(tp)<=0 then return end if vgf.GetAvailableLocation(tp)&0x4<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
local g=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsCanBeSpecialSummoned,1,1,nil,e,0,tp,false,false,POS_FACEUP_ATTACK,0x4) local g=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsCanBeSpecialSummoned,1,1,nil,e,0,tp,false,false,POS_FACEUP_ATTACK,0x4)
if vgf.Call(g,0,tp,0x4)>0 then if vgf.Call(g,0,tp,0x4)>0 then
......
...@@ -6,7 +6,7 @@ function cm.initial_effect(c) ...@@ -6,7 +6,7 @@ function cm.initial_effect(c)
end end
function cm.condition(e,tp,eg,ep,ev,re,r,rp) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return c:IsSummonType(SUMMON_TYPE_RIDE) and c:IsSummonType(SUMMON_TYPE_SELFRIDE) return c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)
end end
function cm.filter(c) function cm.filter(c)
return c:IsSetCard(0x3040) return c:IsSetCard(0x3040)
......
...@@ -7,18 +7,35 @@ function cm.initial_effect(c) ...@@ -7,18 +7,35 @@ function cm.initial_effect(c)
--【自】【V】:这个单位攻击先导者时,通过【费用】[使用等级均不同的卡进行灵魂爆发4],选择对手的1张先导者,这个回合中,力量增减至1,对手有等级3以上的先导者的话,这个单位的☆+1。(仅将那个时点的力量增减至1,这之后那个单位的力量仍然能通过其他方式增减。) --【自】【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) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,cm.cost,cm.condition)
--【永】【R】:这个回合中由于你的卡片的能力的费用同时使用4张以上的卡进行了灵魂爆发的话,这个单位的力量+5000。 --【永】【R】:这个回合中由于你的卡片的能力的费用同时使用4张以上的卡进行了灵魂爆发的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_MOVE)
ge1:SetCondition(cm.checkcon)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
function cm.checkfilter(c,re)
return c:IsReason(REASON_COST) and re:IsActivated() and c:IsPreviousLocation(LOCATION_OVERLAY)
end
function cm.checkcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.checkfilter,1,nil,re) and eg:GetClassCount(Card.GetLevel)>=4
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
function cm.con(e,c)
local tp=e:GetHandlerPlayer()
return Duel.GetFlagEffect(tp,m)>0
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.VMonsterFilter(e:GetHandler()) and vgf.VMonsterFilter(Duel.GetAttackTarget()) return VgF.VMonsterFilter(e:GetHandler()) and vgf.VMonsterFilter(Duel.GetAttackTarget())
end end
function cm.check(sg) function cm.check(g)
return sg:FilterCount(Card.IsLevel,nil,1)<=1 return g:GetClassCount(Card.GetLevel)==#g
and sg:FilterCount(Card.IsLevel,nil,2)<=1
and sg:FilterCount(Card.IsLevel,nil,3)<=1
and sg:FilterCount(Card.IsLevel,nil,4)<=1
and sg:FilterCount(Card.IsLevel,nil,5)<=1
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()
...@@ -28,19 +45,20 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -28,19 +45,20 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
return g:GetClassCount(Card.GetLevel)>=4 return g:GetClassCount(Card.GetLevel)>=4
end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local sg=g:SelectSubGroup(tp,vgf.True,true,4,4) local sg=g:SelectSubGroup(tp,cm.check,true,4,4)
Duel.SendtoGrave(sg,REASON_EFFECT) Duel.SendtoGrave(sg,REASON_EFFECT)
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 e1=Effect.CreateEffect(c) local tc=Duel.SelectTarget(tp,vgf.VMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil):GetFirst()
e1:SetType(EFFECT_TYPE_SINGLE) if tc:GetAttack()>1 then
e1:SetCode(EFFECT_SET_ATTACK_FINAL) local atk=tc:GetAttack()-1
e1:SetReset(nil) vgf.AtkUp(c,tc,-atk)
e1:SetValue(1) end
Duel.GetAttackTarget():RegisterEffect(e1) if Duel.IsExistingMatchingCard(tp,cm.filter,tp,0,LOCATION_MZONE,1,1,nil) then
if Duel.GetAttackTarget():IsLevelAbove(4) VgF.StarUp(c,c,1)
then
VgF.StarUp(c,c,1,nil)
end end
end end
function cm.filter(c)
return vgf.VMonsterFilter(c) and c:IsLevelAbove(4)
end
\ No newline at end of file
...@@ -3,28 +3,20 @@ local cm,m,o=GetID() ...@@ -3,28 +3,20 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】【V/R】:这个单位的攻击击中先导者时,灵魂填充1。 --【自】【V/R】:这个单位的攻击击中先导者时,灵魂填充1。
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.operation,nil,cm.condition) vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,vgf.OverlayFill(1),nil,cm.condition)
--【自】:这个单位被含有「道拉珠艾尔德」的单位RIDE时,灵魂填充1,你的灵魂里有3张以上的相互不同等级的卡的话,抽1张卡。 --【自】:这个单位被含有「道拉珠艾尔德」的单位RIDE时,灵魂填充1,你的灵魂里有3张以上的相互不同等级的卡的话,抽1张卡。
vgd.BeRidedByCard(c,m,nil,cm.operation2,nil,condition2) vgd.BeRidedByCard(c,m,cm.filter,cm.operation)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck()
Duel.Overlay(VgF.GetVMonster(tp),Duel.GetDecktopGroup(tp,1))
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.VMonsterFilter(Duel.GetAttackTarget()) return vgf.VMonsterFilter(Duel.GetAttackTarget())
end end
function cm.operation(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()
Duel.DisableShuffleCheck() vgf.OverlayFillOP(1,e,tp,eg,ep,ev,re,r,rp)
Duel.Overlay(c,Duel.GetDecktopGroup(tp,1)) if VgF.GetVMonster(tp):GetOverlayGroup():GetClassCount(Card.GetLevel)>=3 then
if VgF.GetVMonster(tp):GetOverlayGroup():GetClassCount(Card.GetLevel)>=3
then
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
end end
end end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp) function cm.filter(c)
return e:GetHandler().IsSetCard(0xe8) return c:IsSetCard(0xe8)
end end
...@@ -2,28 +2,32 @@ ...@@ -2,28 +2,32 @@
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)
--【自】:这个单位被「魔石龙 珠艾尼尔」骑升时,将这张卡召唤到RC上。 --【自】:这个单位被「魔石龙 珠艾尼尔」骑升时,将这张卡召唤到R上。
vgd.BeRidedByCard(c,m,10202002,cm.operation,nil,cm.condition) vgd.BeRidedByCard(c,m,10202002,cm.operation,nil,cm.condition)
--【自】【R】:这个单位攻击或支援时,这次战斗中,这个单位的力量+5000。这次战斗结束时,将这个单位放置到灵魂里。(这个效果为强制执行。) --【自】【R】:这个单位攻击或支援时,这次战斗中,这个单位的力量+5000。这次战斗结束时,将这个单位放置到灵魂里。(这个效果为强制执行。)
--没有找到支援时点,仅实现攻击时点
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation2,nil,cm.condition2) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation2,nil,cm.condition2)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.operation2,nil,cm.condition3) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.operation2,nil,cm.condition3)
--vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_BATTLED,cm.operation3,nil,cm.condition2)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
vgf.Call(e:GetHandler():GetMaterial(),0,tp) local c=e:GetLabelObject()
if c:IsRelateToEffect() then
vgf.Call(c,0,tp)
end
end end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
--这里应该有一条检测被ride的珠宝核龙存在于灵魂之中的判断条件
return true
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()
VgF.AtkUp(c,c,5000,EVENT_BATTLED) if c:IsRelateToEffect() then
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_BATTLED,cm.operation3) VgF.AtkUp(c,c,5000,EVENT_BATTLED)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLED)
e1:SetRange(LOCATION_MZONE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetOperation(cm.operation3)
c:RegisterEffect(e1)
end
end end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp) function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
return VgF.RMonsterFilter(e:GetHandler()) and Duel.GetAttacker()==e:GetHandler() return VgF.RMonsterFilter(e:GetHandler()) and Duel.GetAttacker()==e:GetHandler()
...@@ -32,5 +36,8 @@ function cm.condition3(e,tp,eg,ep,ev,re,r,rp) ...@@ -32,5 +36,8 @@ function cm.condition3(e,tp,eg,ep,ev,re,r,rp)
return eg:GetFirst()==e:GetHandler() return eg:GetFirst()==e:GetHandler()
end end
function cm.operation3(e,tp,eg,ep,ev,re,r,rp) function cm.operation3(e,tp,eg,ep,ev,re,r,rp)
Duel.Overlay(VgF.GetVMonster(tp),e:GetHandler()) if e:GetHandler():IsCanOverlay() then
Duel.Overlay(VgF.GetVMonster(tp),e:GetHandler())
end
e:Reset()
end end
...@@ -8,11 +8,20 @@ end ...@@ -8,11 +8,20 @@ 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.AtkUp(c,c,10000,EVENT_BATTLED) if c:IsRelateToEffect() then
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_BATTLED,cm.operation2) VgF.AtkUp(c,c,10000,EVENT_BATTLED)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLED)
e1:SetRange(LOCATION_MZONE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetOperation(cm.operation2)
c:RegisterEffect(e1)
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.RMonsterFilter(e:GetHandler()) and Duel.GetAttacker()==e:GetHandler() and VgF.GetVMonster(tp):IsSetCard(0xe8) return VgF.RMonsterFilter(e:GetHandler()) and VgF.GetVMonster(tp):IsSetCard(0xe8)
end end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp) function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
Duel.Overlay(VgF.GetVMonster(tp),e:GetHandler()) Duel.Overlay(VgF.GetVMonster(tp),e:GetHandler())
......
...@@ -3,13 +3,11 @@ local cm,m,o=GetID() ...@@ -3,13 +3,11 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】:你的RIDE阶段中这张卡被从手牌舍弃时,你可以将这张卡放置到灵魂里。 --【自】:你的RIDE阶段中这张卡被从手牌舍弃时,你可以将这张卡放置到灵魂里。
vgd.EffectTypeTrigger(c,m,LOCATION_GRAVE,EFFECT_TYPE_SINGLE,EVENT_TO_GRAVE,cm.operation,vgf.True,cm.condition) vgd.EffectTypeTrigger(c,m,loc,EFFECT_TYPE_SINGLE,EVENT_DISCARD,cm.operation,vgf.True,cm.condition)
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 e:GetHandler():IsPreviousLocation(LOCATION_HAND) and Duel.GetCurrentPhase()==PHASE_STANDBY return Duel.GetCurrentPhase()==PHASE_STANDBY
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=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
......
...@@ -4,11 +4,7 @@ function cm.initial_effect(c) ...@@ -4,11 +4,7 @@ function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】【R】:这个单位支援等级2以上的单位时,你可以灵魂填充1。 --【自】【R】:这个单位支援等级2以上的单位时,你可以灵魂填充1。
--时点需要改成支援时 --时点需要改成支援时
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.operation,VgF.True,cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,vgf.OverlayFill(1),VgF.True,cm.condition)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck()
Duel.Overlay(VgF.GetVMonster(tp),Duel.GetDecktopGroup(tp,1))
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 Duel.GetAttacker():IsLevelAbove(3) and eg:GetFirst()==e:GetHandler() return Duel.GetAttacker():IsLevelAbove(3) and eg:GetFirst()==e:GetHandler()
......
...@@ -6,15 +6,20 @@ function cm.initial_effect(c) ...@@ -6,15 +6,20 @@ function cm.initial_effect(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,VgF.DamageCost(1),cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,VgF.DamageCost(1),cm.condition)
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.RMonsterFilter(e:GetHandler()) and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>=3 local c=e:GetHandler()
return not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)) and c:IsPreviousLocation(LOCATION_HAND)
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 g=Duel.GetDecktopGroup(tp,3) local g=Duel.GetDecktopGroup(tp,3)
Duel.ConfirmCards(tp,g)
Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local sc=g:Select(tp,1,1,nil):GetFirst() local sc=g:FilterSelect(tp,Card.IsCanOverlay,1,1,nil):GetFirst()
Duel.Overlay(VgF.GetVMonster(tp),sc) if sc then
if VgF.GetVMonster(tp):GetOverlayGroup():GetClassCount(Card.GetLevel)>=4 Duel.Overlay(VgF.GetVMonster(tp),sc)
then end
Duel.ShuffleDeck(tp)
if VgF.GetVMonster(tp):GetOverlayGroup():GetClassCount(Card.GetLevel)>=4 then
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
end end
end end
...@@ -10,10 +10,21 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -10,10 +10,21 @@ 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 g=Duel.GetDecktopGroup(tp,2) local g=Duel.GetDecktopGroup(tp,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL) Duel.ConfirmCards(tp,g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
local sc=g:Select(tp,1,1,nil):GetFirst() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
Duel.Overlay(VgF.GetVMonster(tp),sc) local sc=g:FilterSelect(tp,Card.IsCanOverlay,1,1,nil):GetFirst()
local sg=Duel.GetDecktopGroup(tp,1) if sc then
Duel.MoveSequence(sg:GetFirst(),SEQ_DECKBOTTOM) Duel.Overlay(VgF.GetVMonster(tp),sc)
g:RemoveCard(sc)
end
if #g>1 then
Duel.SortDecktop(tp,tp,#g-1)
for i=1,#g-1 do
local dg=Duel.GetDecktopGroup(tp,1)
Duel.MoveSequence(dg:GetFirst(),SEQ_DECKBOTTOM)
end
elseif #g>0 then
Duel.MoveSequence(g:GetFirst(),SEQ_DECKBOTTOM)
end
end end
\ No newline at end of file
...@@ -20,7 +20,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -20,7 +20,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.HintSelection(g) Duel.HintSelection(g)
vgf.Call(g,0,tp,nil,POS_FACEUP_DEFENSE) vgf.Call(g,0,tp,nil,POS_FACEUP_DEFENSE)
end end
function cm.filter(c) function cm.filter(c,e,tp)
return c:IsLevel(c,0,1) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) return c:IsLevel(c,0,1) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK)
end end
function cm.operation1(e,tp,eg,ep,ev,re,r,rp) function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
......
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