Commit 4c6fb746 authored by Flagsh33p's avatar Flagsh33p Committed by GitHub

四炎之魔宝龙(除拥宝之龙牙)脚本完成

拥宝之龙牙不会写QAQ
parent 51fdb780
...@@ -3,63 +3,44 @@ local cm,m,o=GetID() ...@@ -3,63 +3,44 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【永】:这张卡将要被RIDE之际,这张卡也当做「魔宝龙 道拉珠艾尔德」使用。 --【永】:这张卡将要被RIDE之际,这张卡也当做「魔宝龙 道拉珠艾尔德」使用。
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CHANGE_CODE)
e1:SetCondition(cm.condition1)
e1:SetValue(10407005)
e1:SetReset(nil)
c:RegisterEffect(e1)
--【自】【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.operation2,cm.cost2,cm.condition2) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,cm.cost,cm.condition)
--【永】【R】:这个回合中由于你的卡片的能力的费用同时使用4张以上的卡进行了灵魂爆发的话,这个单位的力量+5000。 --【永】【R】:这个回合中由于你的卡片的能力的费用同时使用4张以上的卡进行了灵魂爆发的话,这个单位的力量+5000。
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.rmcon)
e2:SetValue(2000)
c:RegisterEffect(e2)
end
function cm.condition1(e,tp,eg,ep,ev,re,r,rp)
return VgF.VMonsterFilter(e:GetHandler()) and Duel.GetCurrentPhase()==PHASE_STANDBY
end end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local g = Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup() return VgF.VMonsterFilter(e:GetHandler()) and vgf.VMonsterFilter(Duel.GetAttackTarget())
return VgF.VMonsterFilter(e:GetHandler()) and vgf.VMonsterFilter(Duel.GetAttackTarget()) and g:GetClassCount(Card.GetLevel)>=4
end end
function cm.cost2(e,tp,eg,ep,ev,re,r,rp,chk) function cm.check(sg)
--if chk==0 return sg:FilterCount(Card.IsLevel,nil,1)<=1
local g = Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup() and sg:FilterCount(Card.IsLevel,nil,2)<=1
local sg=g:SelectSubGroup(tp,cm.ATKcheck,false,4,4) and sg:FilterCount(Card.IsLevel,nil,3)<=1
Duel.SendtoGrave(sg,REASON_EFFECT) and sg:FilterCount(Card.IsLevel,nil,4)<=1
and sg:FilterCount(Card.IsLevel,nil,5)<=1
end end
function cm.ATKcheck(g) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
return g:FilterCount(Card.IsLevel,nil,0)<=1 local c=e:GetHandler()
and g:FilterCount(Card.IsLevel,nil,1)<=1 local g=c:GetOverlayGroup()
and g:FilterCount(Card.IsLevel,nil,2)<=1 if chk==0
and g:FilterCount(Card.IsLevel,nil,3)<=1 then
and g:FilterCount(Card.IsLevel,nil,4)<=1 return g:GetClassCount(Card.GetLevel)>=4
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local sg=g:SelectSubGroup(tp,vgf.True,true,4,4)
Duel.SendtoGrave(sg,REASON_EFFECT)
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 t=Duel.GetAttackTarget() local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL) e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetReset(nil) e1:SetReset(nil)
e1:SetValue(1) e1:SetValue(1)
t:RegisterEffect(e1) Duel.GetAttackTarget():RegisterEffect(e1)
if t.IsLevelAbove(3) if Duel.GetAttackTarget():IsLevelAbove(4)
then then
VgF.StarUp(c,c,1,nil) VgF.StarUp(c,c,1,nil)
end end
end end
function cm.rmcon(e)
--需要灵魂爆发4的标识
return Duel.GetFlagEffect(0,id)>0
end
...@@ -5,12 +5,12 @@ function cm.initial_effect(c) ...@@ -5,12 +5,12 @@ function cm.initial_effect(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,cm.operation,nil,cm.condition)
--【自】:这个单位被含有「道拉珠艾尔德」的单位RIDE时,灵魂填充1,你的灵魂里有3张以上的相互不同等级的卡的话,抽1张卡。 --【自】:这个单位被含有「道拉珠艾尔德」的单位RIDE时,灵魂填充1,你的灵魂里有3张以上的相互不同等级的卡的话,抽1张卡。
--目前条件设置为被「拥宝之龙牙 道拉珠艾尔德」Ride时发动 vgd.BeRidedByCard(c,m,nil,cm.operation2,nil,condition2)
vgd.BeRidedByCard(c,m,10202001,cm.operation2,nil)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.Overlay(e:GetHandler(),Duel.GetDecktopGroup(tp,1)) 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())
...@@ -20,38 +20,11 @@ function cm.operation2(e,tp,eg,ep,ev,re,r,rp) ...@@ -20,38 +20,11 @@ function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.Overlay(c,Duel.GetDecktopGroup(tp,1)) Duel.Overlay(c,Duel.GetDecktopGroup(tp,1))
if(Drajewlcheck(c,3)) if VgF.GetVMonster(tp):GetOverlayGroup():GetClassCount(Card.GetLevel)>=3
then 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 Drajewlcheck(c,target) return e:GetHandler().IsSetCard(0xe8)
local g = c:GetOverlayGroup()
local levelnum = {0,0,0,0,0}
if g:GetCount()>0 then
for tc in VgF.Next(g) do
if tc:IsLevel(0) and levelnum[0]==0
then
levelnum[0]=1
elseif tc:IsLevel(1) and levelnum[1]==0
then
levelnum[1]=1
elseif tc:IsLevel(2) and levelnum[2]==0
then
levelnum[2]=1
elseif tc:IsLevel(3) and levelnum[3]==0
then
levelnum[3]=1
elseif tc:IsLevel(4) and levelnum[4]==0
then
levelnum[4]=1
end
end
end
local sum=0
for i2,value in ipairs(levelnum) do
sum=sum+value
end
return sum>=target
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)
--【自】:这个单位被「魔石龙 珠艾尼尔」骑升时,将这张卡召唤到RC上。
vgd.BeRidedByCard(c,m,10202002,cm.operation,nil,cm.condition)
--【自】【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_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
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
vgf.Call(e:GetHandler():GetMaterial(),0,tp)
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)
--无法设置重置时点于战斗结束时
local c=e:GetHandler()
VgF.AtkUp(c,c,5000,EVENT_BATTLED)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_BATTLED,cm.operation3)
end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
return VgF.RMonsterFilter(e:GetHandler()) and Duel.GetAttacker()==e:GetHandler()
end
function cm.condition3(e,tp,eg,ep,ev,re,r,rp)
return eg:GetFirst()==e:GetHandler()
end
function cm.operation3(e,tp,eg,ep,ev,re,r,rp)
Duel.Overlay(VgF.GetVMonster(tp),e:GetHandler())
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.BeRidedByCard(c,m,nil,cm.operation,nil,cm.condition) vgd.BeRidedByCard(c,m,nil,cm.operation,cm.condition)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
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 tp==1 and Duel.GetTurnPlayer()==tp return tp==1 and Duel.GetTurnPlayer()==tp
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end end
\ No newline at end of file
--野蛮侵袭
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】【R】:这个单位攻击时,你有含有「道拉珠艾尔德」的先导者的话,通过【费用】[计数爆发1],这次战斗中,这个单位的力量+10000。这次战斗结束时,将这个单位放置到灵魂里。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,VgF.DamageCost(1),cm.condition)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
--无法设置重置时点于战斗结束时
local c=e:GetHandler()
VgF.AtkUp(c,c,10000,EVENT_BATTLED)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_BATTLED,cm.operation2)
end
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)
end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
Duel.Overlay(VgF.GetVMonster(tp),e:GetHandler())
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)
--【自】:你的RIDE阶段中这张卡被从手牌舍弃时,你可以将这张卡放置到灵魂里。
vgd.EffectTypeTrigger(c,m,LOCATION_GRAVE,EFFECT_TYPE_SINGLE,EVENT_TO_GRAVE,cm.operation,vgf.True,cm.condition)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_HAND) and Duel.GetCurrentPhase()==PHASE_STANDBY
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
Duel.Overlay(rc,c)
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)
--【自】【R】:这个单位支援等级2以上的单位时,你可以灵魂填充1。
--时点需要改成支援时
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.operation,VgF.True,cm.condition)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck()
Duel.Overlay(VgF.GetVMonster(tp),Duel.GetDecktopGroup(tp,1))
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttacker():IsLevelAbove(3) and eg:GetFirst()==e:GetHandler()
end
\ No newline at end of file
--恐怖人偶 谢丝汀
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【起】【R】【1回合1次】:你有等级3以上的先导者的话,通过【费用】[计数爆发2],抽1张卡。
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation,VgF.DamageCost(2),cm.condition,nil,1)
end end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return VgF.RMonsterFilter(e:GetHandler()) and VgF.GetVMonster(tp):IsLevelAbove(4)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end
\ No newline at end of file
--招来万雷者 弗尔格雷斯
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】:这个单位登场到R时,你有含有「道拉珠艾尔德」的先导者的话,通过【费用】[灵魂爆发1],选择你的弃牌区中的1张卡,放置到灵魂里,这个回合中,这个单位的力量+2000。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,VgF.OverlayCost(1),cm.condition)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return VgF.GetVMonster(tp):IsSetCard(0xe8) and VgF.RMonsterFilter(e:GetHandler())
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local c=e:GetHandler()
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.Overlay(VgF.GetVMonster(tp),g)
end
VgF.AtkUp(c,c,2000,nil)
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)
--【自】:这个单位从手牌登场到R时,通过【费用】[计数爆发1],查看你的牌堆顶的3张卡,选择1张卡,放置到灵魂里,然后牌堆洗切,你的灵魂里有4张以上的相互不同等级的卡的话,抽1张卡。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,VgF.DamageCost(1),cm.condition)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return VgF.RMonsterFilter(e:GetHandler()) and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>=3
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,3)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local sc=g:Select(tp,1,1,nil):GetFirst()
Duel.Overlay(VgF.GetVMonster(tp),sc)
if VgF.GetVMonster(tp):GetOverlayGroup():GetClassCount(Card.GetLevel)>=4
then
Duel.Draw(tp,1,REASON_EFFECT)
end
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)
--【自】:这个单位登场到R时,查看你的牌堆顶的2张卡,选择1张卡,放置到灵魂里,其余的卡放置到牌堆底。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,nil,cm.condition)
end end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return VgF.RMonsterFilter(e:GetHandler())
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
Duel.DisableShuffleCheck()
local sc=g:Select(tp,1,1,nil):GetFirst()
Duel.Overlay(VgF.GetVMonster(tp),sc)
local sg=Duel.GetDecktopGroup(tp,1)
Duel.MoveSequence(sg:GetFirst(),SEQ_DECKBOTTOM)
end
\ No newline at end of file
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