Commit 19fa379a authored by jwyxym's avatar jwyxym Committed by GitHub

Add files via upload

parent 8deb46a5
...@@ -27,7 +27,7 @@ function VgD.RideUpFilter1(c,e,lv,code,rc) ...@@ -27,7 +27,7 @@ function VgD.RideUpFilter1(c,e,lv,code,rc)
if rc:IsAttribute(SKILL_SELF_RIDE) and c:IsCode(code) then if rc:IsAttribute(SKILL_SELF_RIDE) and c:IsCode(code) then
return false return false
end 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(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil))) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RIDE,tp,false,false,POS_FACEUP_ATTACK) 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))) and c:IsType(TYPE_MONSTER)
end end
function VgD.DisCardRideUpFilter(c,e,lv,code,rc) function VgD.DisCardRideUpFilter(c,e,lv,code,rc)
local tp=c:GetControler() local tp=c:GetControler()
...@@ -35,7 +35,7 @@ function VgD.DisCardRideUpFilter(c,e,lv,code,rc) ...@@ -35,7 +35,7 @@ function VgD.DisCardRideUpFilter(c,e,lv,code,rc)
end end
function VgD.RideUpFilter2(c,e,lv,code,rc) function VgD.RideUpFilter2(c,e,lv,code,rc)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return c:IsLevel(lv) and c:IsType(TYPE_MONSTER) and c:IsCode(code) and rc:IsAttribute(SKILL_SELF_RIDE) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SELFRIDE,tp,false,false,POS_FACEUP_ATTACK) return c:IsLevel(lv) and c:IsType(TYPE_MONSTER) and c:IsCode(code) and rc:IsAttribute(SKILL_SELF_RIDE)
end end
function VgD.RideUpCondition(e,tp,eg,ep,ev,re,r,rp) function VgD.RideUpCondition(e,tp,eg,ep,ev,re,r,rp)
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
...@@ -77,18 +77,18 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp) ...@@ -77,18 +77,18 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp)
if sc:IsLocation(LOCATION_EXTRA) then if sc:IsLocation(LOCATION_EXTRA) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
local g=Duel.SelectMatchingCard(tp,VgD.DisCardRideUpFilter,tp,LOCATION_HAND,0,1,1,nil,e,lv,code,rc) local g=Duel.SelectMatchingCard(tp,VgD.DisCardRideUpFilter,tp,LOCATION_HAND,0,1,1,nil,e,lv,code,rc)
Duel.SendtoGrave(g,REASON_COST+REASON_DISCARD) VgF.Sendto(LOCATION_GRAVE,g,REASON_COST+REASON_DISCARD)
end end
local mg=rc:GetOverlayGroup() local mg=rc:GetOverlayGroup()
if mg:GetCount()~=0 then if mg:GetCount()~=0 then
Duel.Overlay(sc,mg) VgF.Sendto(LOCATION_OVERLAY,mg,sc)
end end
sc:SetMaterial(Group.FromCards(rc)) sc:SetMaterial(Group.FromCards(rc))
Duel.Overlay(sc,Group.FromCards(rc)) VgF.Sendto(LOCATION_OVERLAY,Group.FromCards(rc),sc)
VgF.Call(sc,SUMMON_TYPE_RIDE,tp,0x20) VgF.Call(sc,SUMMON_TYPE_RIDE,tp,0x20)
if Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_RIDE,0,1,nil,TYPE_EMBLEM) then if Duel.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() local tc=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_RIDE,0,nil,TYPE_EMBLEM):GetFirst()
Duel.Sendto(tc,tp,LOCATION_EMBLEM,POS_FACEUP_DEFENSE,REASON_EFFECT) VgF.Sendto(LOCATION_EMBLEM,tc,tp,POS_FACEUP_DEFENSE,REASON_EFFECT)
end end
elseif sel==0 or (sel==1 and a and b) then elseif sel==0 or (sel==1 and a and b) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
...@@ -96,10 +96,10 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp) ...@@ -96,10 +96,10 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp)
local sc=sg:GetFirst() local sc=sg:GetFirst()
local mg=rc:GetOverlayGroup() local mg=rc:GetOverlayGroup()
if mg:GetCount()~=0 then if mg:GetCount()~=0 then
Duel.Overlay(sc,mg) VgF.Sendto(LOCATION_OVERLAY,mg,sg)
end end
sc:SetMaterial(Group.FromCards(rc)) sc:SetMaterial(Group.FromCards(rc))
Duel.Overlay(sc,Group.FromCards(rc)) VgF.Sendto(LOCATION_OVERLAY,Group.FromCards(rc),sc)
VgF.Call(sc,SUMMON_TYPE_SELFRIDE,tp,0x20) VgF.Call(sc,SUMMON_TYPE_SELFRIDE,tp,0x20)
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -113,25 +113,22 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp) ...@@ -113,25 +113,22 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function VgD.SelfRideAtk(e,c) function VgD.SelfRideAtk(e,c)
return vgf.IsSequence(c,0,4,5) return VgF.IsSequence(c,0,4,5)
end end
function VgD.RideZeroCondition(e,tp,eg,ep,ev,re,r,rp) function VgD.RideZeroCondition(e,tp,eg,ep,ev,re,r,rp)
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
if rc then return false end if rc then return false end
local ct=Duel.GetMatchingGroupCount(VgD.RideZeroFilter,tp,LOCATION_RIDE,0,nil,e,tp) local ct=Duel.GetMatchingGroupCount(VgF.IsLevel,tp,LOCATION_RIDE,0,nil,0)
return VgF.RuleTurnCondtion(e) and ct>0 and VgF.RuleCardCondtion(e) return VgF.RuleTurnCondtion(e) and ct>0 and VgF.RuleCardCondtion(e)
end end
function VgD.RideZeroOperation(e,tp,eg,ep,ev,re,r,rp) function VgD.RideZeroOperation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(VgD.RideZeroFilter,tp,LOCATION_RIDE,0,nil,e,tp) local g=Duel.GetMatchingGroup(VgF.IsLevel,tp,LOCATION_RIDE,0,nil,0)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
g=g:Select(tp,1,1,nil) g=g:Select(tp,1,1,nil)
end end
VgF.Call(g,SUMMON_TYPE_RIDE,tp,0x20) VgF.Call(g,SUMMON_TYPE_RIDE,tp,0x20)
end end
function VgD.RideZeroFilter(c,e,tp)
return VgF.IsLevel(c,0) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RIDE,tp,false,false,POS_FACEUP_ATTACK)
end
--Call到R位 --Call到R位
function VgD.CallToR(c) function VgD.CallToR(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -149,7 +146,7 @@ function VgD.CallCondition(e,c) ...@@ -149,7 +146,7 @@ function VgD.CallCondition(e,c)
if c==nil then return true end if c==nil then return true end
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
if VgF.GetAvailableLocation(tp)<=0 then return end if VgF.GetAvailableLocation(tp)<=0 then return end
return VgF.LvCondition(e) and c:IsCanBeSpecialSummoned(e,SUMMON_VALUE_CALL,tp,false,false,POS_FACEUP_ATTACK) return VgF.LvCondition(e)
end end
function VgD.CallFilter(c,tp,zone) function VgD.CallFilter(c,tp,zone)
return VgF.RMonsterFilter(c) and zone==VgF.SequenceToGlobal(tp,c:GetLocation(),c:GetSequence()) return VgF.RMonsterFilter(c) and zone==VgF.SequenceToGlobal(tp,c:GetLocation(),c:GetSequence())
...@@ -166,7 +163,7 @@ function VgD.CallOperation(e,tp,eg,ep,ev,re,r,rp) ...@@ -166,7 +163,7 @@ function VgD.CallOperation(e,tp,eg,ep,ev,re,r,rp)
local zone=Duel.SelectField(tp,1,LOCATION_MZONE,0,z) 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 Duel.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() local tc=Duel.GetMatchingGroup(VgD.CallFilter,tp,LOCATION_MZONE,0,nil,tp,zone):GetFirst()
Duel.SendtoGrave(tc,REASON_COST) VgF.Sendto(LOCATION_GRAVE,tc,REASON_COST)
end end
e:SetValue(function () return SUMMON_VALUE_CALL,zone end) e:SetValue(function () return SUMMON_VALUE_CALL,zone end)
end end
...@@ -194,7 +191,7 @@ function VgD.OverDressCondition(f) ...@@ -194,7 +191,7 @@ function VgD.OverDressCondition(f)
return function (e,c) return function (e,c)
if c==nil then return true end if c==nil then return true end
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return VgF.LvCondition(e) and c:IsCanBeSpecialSummoned(e,SUMMON_VALUE_CALL,tp,false,false,POS_FACEUP_ATTACK) and Duel.IsExistingMatchingCard(VgD.OverDressFilter,tp,LOCATION_MZONE,0,1,nil,f) return VgF.LvCondition(e) and Duel.IsExistingMatchingCard(VgD.OverDressFilter,tp,LOCATION_MZONE,0,1,nil,f)
end end
end end
function VgD.OverDressFilter(c,f,zone) function VgD.OverDressFilter(c,f,zone)
...@@ -241,15 +238,15 @@ function VgD.OverDressOperation(f) ...@@ -241,15 +238,15 @@ function VgD.OverDressOperation(f)
if not tc then return end if not tc then return end
local mg=tc:GetOverlayGroup() local mg=tc:GetOverlayGroup()
if mg:GetCount()~=0 then if mg:GetCount()~=0 then
Duel.Overlay(c,mg) VgF.Sendto(LOCATION_OVERLAY,mg,c)
end end
c:SetMaterial(Group.FromCards(tc)) c:SetMaterial(Group.FromCards(tc))
Duel.Overlay(c,Group.FromCards(tc)) VgF.Sendto(LOCATION_OVERLAY,Group.FromCards(tc),c)
end end
end end
function VgD.OverDressSum(e,tp,eg,ep,ev,re,r,rp) function VgD.OverDressSum(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
c:RegisterFlagEffect(ConditionFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,201,vgf.Stringid(10101006,0)) c:RegisterFlagEffect(ConditionFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,201,VgF.Stringid(10101006,0))
end end
--战斗阶段 --战斗阶段
...@@ -388,7 +385,7 @@ end ...@@ -388,7 +385,7 @@ end
function VgD.TriggerCard(e,tp,eg,ep,ev,re,r,rp) function VgD.TriggerCard(e,tp,eg,ep,ev,re,r,rp)
local tg=Duel.GetDecktopGroup(tp,1) local tg=Duel.GetDecktopGroup(tp,1)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.MoveToField(tg:GetFirst(),tp,tp,LOCATION_TRIGGER,POS_FACEUP,true) VgF.Sendto(LOCATION_TRIGGER,tg:GetFirst(),tp,tp,POS_FACEUP,true)
end end
function VgD.MonsterPosDefenseOperation(e,tp,eg,ep,ev,re,r,rp) function VgD.MonsterPosDefenseOperation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -444,13 +441,13 @@ function VgD.SupportValue(e) ...@@ -444,13 +441,13 @@ function VgD.SupportValue(e)
local g=Duel.GetMatchingGroup(function (c) local g=Duel.GetMatchingGroup(function (c)
return c:GetFlagEffect(SupportFlag)>0 return c:GetFlagEffect(SupportFlag)>0
end,tp,LOCATION_MZONE,0,nil) end,tp,LOCATION_MZONE,0,nil)
for tc in vgf.Next(g) do for tc in VgF.Next(g) do
atk=atk+tc:GetAttack() atk=atk+tc:GetAttack()
end end
return atk return atk
elseif Duel.GetAttackTarget()==e:GetHandler() then elseif Duel.GetAttackTarget()==e:GetHandler() then
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_GZONE,0,nil) local g=Duel.GetMatchingGroup(nil,tp,LOCATION_GZONE,0,nil)
for tc in vgf.Next(g) do for tc in VgF.Next(g) do
local def=tc:GetDefense() local def=tc:GetDefense()
if def<0 then def=0 end if def<0 then def=0 end
atk=atk+def atk=atk+def
...@@ -474,23 +471,26 @@ function VgD.SendToGCondition(loc) ...@@ -474,23 +471,26 @@ function VgD.SendToGCondition(loc)
return function(e,tp,eg,ep,ev,re,r,rp) return function(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local bc=Duel.GetAttackTarget() local bc=Duel.GetAttackTarget()
return bc and bc:IsControler(tp) and bc~=c and vgf.IsAbleToGZone(c,loc) return bc and bc:IsControler(tp) and bc~=c and VgF.IsAbleToGZone(c,loc)
end end
end end
function VgD.SendToGOperation(e,tp,eg,ep,ev,re,r,rp) function VgD.SendToGOperation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local bc=Duel.GetAttackTarget()
local tc=e:GetLabelObject() local tc=e:GetLabelObject()
local g=Group.FromCards(c) local g=Group.FromCards(c)
if tc then if tc then
tc=VgF.ReturnCard(tc) tc=VgF.ReturnCard(tc)
g:AddCard(tc) g:AddCard(tc)
end end
Duel.Sendto(g,tp,LOCATION_GZONE,POS_FACEUP,REASON_EFFECT) local mg=c:GetOverlayGroup()
if mg:GetCount()>0 then
g:Merge(mg)
end
VgF.Sendto(LOCATION_GZONE,g,tp,POS_FACEUP,REASON_EFFECT)
end end
function VgD.GToGraveOperation(e,tp,eg,ep,ev,re,r,rp) function VgD.GToGraveOperation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.SendtoGrave(c,REASON_RULE) VgF.Sendto(LOCATION_GRAVE,c,REASON_RULE)
end end
function VgD.MonsterAttackAnnounceCondition(e,c) function VgD.MonsterAttackAnnounceCondition(e,c)
return e:GetHandler():IsPosition(POS_DEFENSE) or (VgF.IsSequence(e:GetHandler(),1,2,3) and e:GetHandler():GetFlagEffect(AttackAtRearFlag)==0) return e:GetHandler():IsPosition(POS_DEFENSE) or (VgF.IsSequence(e:GetHandler(),1,2,3) and e:GetHandler():GetFlagEffect(AttackAtRearFlag)==0)
...@@ -588,7 +588,7 @@ function VgD.CardTriggerOperation(chkop,f) ...@@ -588,7 +588,7 @@ function VgD.CardTriggerOperation(chkop,f)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODROP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODROP)
local tc=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_DAMAGE,0,1,1,nil):GetFirst() local tc=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_DAMAGE,0,1,1,nil):GetFirst()
if tc then if tc then
Duel.SendtoGrave(tc,REASON_TRIGGER) VgF.Sendto(LOCATION_GRAVE,tc,REASON_TRIGGER)
Duel.Recover(tp,1,REASON_RULE) Duel.Recover(tp,1,REASON_RULE)
end end
end end
...@@ -603,9 +603,9 @@ function VgD.CardTriggerOperation(chkop,f) ...@@ -603,9 +603,9 @@ function VgD.CardTriggerOperation(chkop,f)
Duel.HintSelection(g) Duel.HintSelection(g)
VgF.AtkUp(c,g,100000000,nil) VgF.AtkUp(c,g,100000000,nil)
Duel.Draw(tp,1,REASON_TRIGGER) Duel.Draw(tp,1,REASON_TRIGGER)
Duel.Exile(c,REASON_TRIGGER) VgF.Sendto(LOCATION_EXILE,c,REASON_TRIGGER)
else else
Duel.Sendto(c,tp,LOCATION_DAMAGE,POS_FACEUP_ATTACK,REASON_EFFECT) VgF.Sendto(LOCATION_DAMAGE,c,tp,POS_FACEUP_ATTACK,REASON_EFFECT)
Duel.Damage(tp,1,REASON_TRIGGER) Duel.Damage(tp,1,REASON_TRIGGER)
end end
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
...@@ -629,9 +629,9 @@ function VgD.CardTriggerOperation(chkop,f) ...@@ -629,9 +629,9 @@ function VgD.CardTriggerOperation(chkop,f)
VgF.AtkUp(c,g,100000000,nil) VgF.AtkUp(c,g,100000000,nil)
if f then f(e,tp,eg,ep,ev,re,r,rp) end if f then f(e,tp,eg,ep,ev,re,r,rp) end
Duel.Draw(tp,1,REASON_TRIGGER) Duel.Draw(tp,1,REASON_TRIGGER)
Duel.Exile(c,REASON_TRIGGER) VgF.Sendto(LOCATION_EXILE,c,REASON_TRIGGER)
else else
Duel.SendtoHand(c,nil,REASON_TRIGGER) VgF.Sendto(LOCATION_HAND,c,nil,REASON_TRIGGER)
Duel.ConfirmCards(1-tp,c) Duel.ConfirmCards(1-tp,c)
end end
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
...@@ -797,7 +797,7 @@ function VgD.MixCostFilter(c,e,tp,eg,ep,ev,re,r,rp,mc) ...@@ -797,7 +797,7 @@ function VgD.MixCostFilter(c,e,tp,eg,ep,ev,re,r,rp,mc)
local bmin = table.remove(bval, 1) local bmin = table.remove(bval, 1)
local bmax = table.remove(bval, 1) local bmax = table.remove(bval, 1)
local mix_f = VgF.MixFilter(mg, cf, cval, bf, bmin, bmax, bval) local mix_f = VgF.MixFilter(mg, cf, cval, bf, bmin, bmax, bval)
return mg:CheckSubGroup(mix_f, min, max) and c:IsAbleToRemoveAsCost() and VgF.LvCondition(c) return mg:CheckSubGroup(mix_f, min, max) and VgF.LvCondition(c)
end end
function VgD.MixCost(cost) function VgD.MixCost(cost)
return function(e,tp,eg,ep,ev,re,r,rp,chk,bool) return function(e,tp,eg,ep,ev,re,r,rp,chk,bool)
...@@ -807,7 +807,7 @@ function VgD.MixCost(cost) ...@@ -807,7 +807,7 @@ function VgD.MixCost(cost)
local bc=Duel.SelectMatchingCard(tp,VgD.MixCostFilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp,eg,ep,ev,re,r,rp,c):GetFirst() local bc=Duel.SelectMatchingCard(tp,VgD.MixCostFilter,tp,LOCATION_GRAVE,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 cost then cost(e,tp,eg,ep,ev,re,r,rp) end
if bc then if bc then
Duel.Remove(bc,POS_FACEUP,REASON_COST) VgF.Sendto(LOCATION_REMOVED,bc,POS_FACEUP,REASON_COST)
e:SetLabelObject(bc) e:SetLabelObject(bc)
local bce = bc:GetActivateEffect() local bce = bc:GetActivateEffect()
if bce and bce:GetCost() then bce:GetCost()(e,tp,eg,ep,ev,re,r,rp,1,true) end if bce and bce:GetCost() then bce:GetCost()(e,tp,eg,ep,ev,re,r,rp,1,true) end
...@@ -971,25 +971,25 @@ function VgD.QuickSpell(c,code,op,cost,con,tg) ...@@ -971,25 +971,25 @@ function VgD.QuickSpell(c,code,op,cost,con,tg)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_BATTLE_START) e1:SetCode(EVENT_BATTLE_START)
e1:SetCondition(VgD.LvCondition(con)) e1:SetCondition(function (e,tp,eg,ep,ev,re,r,rp)
if VgF.GetValueType(con)=="function" and not con(e,tp,eg,ep,ev,re,r,rp) then return false end
local bc=Duel.GetAttackTarget()
return bc and bc:IsControler(tp) and VgF.LvCondition(e)
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(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.LvCondition(con)
return function (e,tp,eg,ep,ev,re,r,rp)
if VgF.GetValueType(con)=="function" and not con(e,tp,eg,ep,ev,re,r,rp) then return false end
local bc=Duel.GetAttackTarget()
return bc and bc:IsControler(tp) and VgF.LvCondition(e)
end
end
function VgD.ContinuousSpell(c,cost,con,tg) function VgD.ContinuousSpell(c,cost,con,tg)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,VgID+EFFECT_COUNT_CODE_OATH) e1:SetCountLimit(1,VgID+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(VgD.LvCondition(con)) e1:SetCondition(function (e,tp,eg,ep,ev,re,r,rp)
if VgF.GetValueType(con)=="function" and not con(e,tp,eg,ep,ev,re,r,rp) then return false end
return VgF.LvCondition(e)
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(tg) end
e1:SetOperation(VgD.ContinuousSpellOperation) e1:SetOperation(VgD.ContinuousSpellOperation)
...@@ -997,7 +997,7 @@ function VgD.ContinuousSpell(c,cost,con,tg) ...@@ -997,7 +997,7 @@ function VgD.ContinuousSpell(c,cost,con,tg)
end end
function VgD.ContinuousSpellOperation(e,tp,eg,ep,ev,re,r,rp) function VgD.ContinuousSpellOperation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Sendto(c,tp,LOCATION_ORDER,POS_FACEUP_ATTACK,REASON_RULE) VgF.Sendto(LOCATION_ORDER,c,tp,POS_FACEUP_ATTACK,REASON_RULE)
end end
function VgD.EffectTypeContinuousChangeAttack(c,typ,val,con,tg,mc,code,reset,loc,loc1,loc2) function VgD.EffectTypeContinuousChangeAttack(c,typ,val,con,tg,mc,code,reset,loc,loc1,loc2)
if VgF.GetValueType(mc)~="Card" then mc=c end if VgF.GetValueType(mc)~="Card" then mc=c end
......
...@@ -329,13 +329,13 @@ function VgF.Call(g,sumtype,tp,zone,pos) ...@@ -329,13 +329,13 @@ function VgF.Call(g,sumtype,tp,zone,pos)
local tc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local tc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
local mg=tc:GetOverlayGroup() local mg=tc:GetOverlayGroup()
if mg:GetCount()~=0 then if mg:GetCount()~=0 then
Duel.Overlay(sc,mg) VgF.Sendto(LOCATION_OVERLAY,mg,sc)
end end
sc:SetMaterial(Group.FromCards(tc)) sc:SetMaterial(Group.FromCards(tc))
Duel.Overlay(sc,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 Duel.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() local tc=Duel.GetMatchingGroup(VgD.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
Duel.SendtoGrave(tc,REASON_COST) VgF.Sendto(LOCATION_GRAVE,tc,REASON_COST)
end end
return Duel.SpecialSummon(sc,sumtype,tp,tp,false,false,pos,szone) return Duel.SpecialSummon(sc,sumtype,tp,tp,false,false,pos,szone)
else else
...@@ -348,17 +348,17 @@ function VgF.Call(g,sumtype,tp,zone,pos) ...@@ -348,17 +348,17 @@ function VgF.Call(g,sumtype,tp,zone,pos)
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 mg=rc:GetOverlayGroup() local mg=rc:GetOverlayGroup()
if mg:GetCount()~=0 then if mg:GetCount()~=0 then
Duel.Overlay(sc,mg) VgF.Sendto(LOCATION_OVERLAY,mg,sc)
end end
sc:SetMaterial(Group.FromCards(rc)) sc:SetMaterial(Group.FromCards(rc))
Duel.Overlay(sc,Group.FromCards(rc)) VgF.Sendto(LOCATION_OVERLAY,Group.FromCards(rc),sc)
Duel.SpecialSummonStep(sc,sumtype,tp,tp,false,false,pos,0x20) Duel.SpecialSummonStep(sc,sumtype,tp,tp,false,false,pos,0x20)
else else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE)
local szone=Duel.SelectField(tp,1,LOCATION_MZONE,0,z) 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 Duel.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() local tc=Duel.GetMatchingGroup(VgD.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
Duel.SendtoGrave(tc,REASON_COST) VgF.Sendto(LOCATION_GRAVE,tc,REASON_COST)
end end
Duel.SpecialSummonStep(sc,sumtype,tp,tp,false,false,pos,szone) Duel.SpecialSummonStep(sc,sumtype,tp,tp,false,false,pos,szone)
z=bit.bor(z,szone) z=bit.bor(z,szone)
...@@ -527,14 +527,14 @@ function VgF.DisCardCostOP(num,e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -527,14 +527,14 @@ function VgF.DisCardCostOP(num,e,tp,eg,ep,ev,re,r,rp,chk)
local cm=_G["c"..m] local cm=_G["c"..m]
if chk==0 then if chk==0 then
if e:IsHasType(EFFECT_TYPE_ACTIVATE) then if e:IsHasType(EFFECT_TYPE_ACTIVATE) then
cm.cos_g=Duel.GetMatchingGroup(Card.IsDiscardable,tp,LOCATION_HAND,0,nil) cm.cos_g=Duel.GetMatchingGroup(nil,tp,LOCATION_HAND,0,nil)
cm.cos_val={nil,num,num} cm.cos_val={nil,num,num}
end end
return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,num,nil) return Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND,0,num,nil)
end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
local g=Duel.SelectMatchingCard(tp,Card.IsDiscardable,tp,LOCATION_HAND,0,num,num,nil) local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_HAND,0,num,num,nil)
Duel.SendtoGrave(g,REASON_COST+REASON_DISCARD) VgF.Sendto(LOCATION_GRAVE,g,REASON_COST+REASON_DISCARD)
return Duel.GetOperatedGroup():GetCount() return Duel.GetOperatedGroup():GetCount()
end end
---用于效果的Cost。它返回一个执行“【费用】[能量爆发num]”的函数。 ---用于效果的Cost。它返回一个执行“【费用】[能量爆发num]”的函数。
...@@ -558,7 +558,7 @@ function VgF.EnergyCostOP(num,e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -558,7 +558,7 @@ function VgF.EnergyCostOP(num,e,tp,eg,ep,ev,re,r,rp,chk)
end end
local sg=Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,10800730) local sg=Duel.GetMatchingGroup(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,10800730)
local g=VgF.GetCardsFromGroup(sg,num) local g=VgF.GetCardsFromGroup(sg,num)
Duel.Sendto(g,tp,0,POS_FACEUP,REASON_COST) VgF.Sendto(0,g,tp,POS_FACEUP,REASON_COST)
return Duel.GetOperatedGroup():GetCount() return Duel.GetOperatedGroup():GetCount()
end end
---用于效果的Cost。它返回一个执行“【费用】[灵魂爆发num]”的函数。 ---用于效果的Cost。它返回一个执行“【费用】[灵魂爆发num]”的函数。
...@@ -575,14 +575,14 @@ function VgF.OverlayCostOP(num,e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -575,14 +575,14 @@ function VgF.OverlayCostOP(num,e,tp,eg,ep,ev,re,r,rp,chk)
local cm=_G["c"..m] local cm=_G["c"..m]
if chk==0 then if chk==0 then
if e:IsHasType(EFFECT_TYPE_ACTIVATE) then if e:IsHasType(EFFECT_TYPE_ACTIVATE) then
cm.cos_g=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayGroup():FilterCount(Card.IsAbleToGraveAsCost,nil) cm.cos_g=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayGroup()
cm.cos_val={nil,num,num} cm.cos_val={nil,num,num}
end end
return Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayGroup():FilterCount(Card.IsAbleToGraveAsCost,nil)>=num return Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=num
end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local g=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsAbleToGraveAsCost,num,num,nil) local g=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,nil,num,num,nil)
Duel.SendtoGrave(g,REASON_COST) VgF.Sendto(LOCATION_GRAVE,g,REASON_COST)
return Duel.GetOperatedGroup():GetCount() return Duel.GetOperatedGroup():GetCount()
end end
---用于效果的Cost或Operation。它返回一个执行“【费用】[灵魂填充num]”的函数。 ---用于效果的Cost或Operation。它返回一个执行“【费用】[灵魂填充num]”的函数。
...@@ -607,7 +607,7 @@ function VgF.OverlayFillOP(num,e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -607,7 +607,7 @@ function VgF.OverlayFillOP(num,e,tp,eg,ep,ev,re,r,rp,chk)
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.Overlay(rc,g) VgF.Sendto(LOCATION_OVERLAY,g,rc)
return Duel.GetOperatedGroup():GetCount() return Duel.GetOperatedGroup():GetCount()
end end
---用于效果的Cost。它返回一个执行“【费用】[计数爆发num]”的函数。 ---用于效果的Cost。它返回一个执行“【费用】[计数爆发num]”的函数。
...@@ -648,10 +648,10 @@ function VgF.SearchCardOP(loc,f,e,tp,eg,ep,ev,re,r,rp) ...@@ -648,10 +648,10 @@ function VgF.SearchCardOP(loc,f,e,tp,eg,ep,ev,re,r,rp)
if not loc then return end if not loc then return end
local g=VgF.SelectMatchingCard(HINTMSG_ATOHAND,e,tp,function (c) local g=VgF.SelectMatchingCard(HINTMSG_ATOHAND,e,tp,function (c)
if VgF.GetValueType(f)=="function" and not f(c) then return false end if VgF.GetValueType(f)=="function" and not f(c) then return false end
return c:IsAbleToHand() return true
end,tp,loc,0,1,1,nil) end,tp,loc,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT) VgF.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
local sg=Duel.GetOperatedGroup() local sg=Duel.GetOperatedGroup()
...@@ -671,7 +671,7 @@ function VgF.SearchCardSpecialSummonOP(loc,f,e,tp,eg,ep,ev,re,r,rp) ...@@ -671,7 +671,7 @@ function VgF.SearchCardSpecialSummonOP(loc,f,e,tp,eg,ep,ev,re,r,rp)
if not loc then return end if not loc then return end
local g=VgF.SelectMatchingCard(HINTMSG_CALL,e,tp,function (c) local g=VgF.SelectMatchingCard(HINTMSG_CALL,e,tp,function (c)
if VgF.GetValueType(f)=="function" and not f(c) then return false end if VgF.GetValueType(f)=="function" and not f(c) then return false end
return c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) return true
end,tp,loc,0,1,1,nil) end,tp,loc,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
if loc&LOCATION_DECK+LOCATION_HAND+LOCATION_EXTRA==0 then Duel.HintSelection(g) end if loc&LOCATION_DECK+LOCATION_HAND+LOCATION_EXTRA==0 then Duel.HintSelection(g) end
...@@ -740,12 +740,12 @@ function VgF.SendtoPrison(g,p) ...@@ -740,12 +740,12 @@ function VgF.SendtoPrison(g,p)
local og=Duel.GetFieldGroup(p,LOCATION_ORDER,0) local og=Duel.GetFieldGroup(p,LOCATION_ORDER,0)
local oc=og:Filter(VgF.PrisonFilter,nil,og:GetCount()):GetFirst() local oc=og:Filter(VgF.PrisonFilter,nil,og:GetCount()):GetFirst()
if VgF.GetValueType(g)=="Card" then if VgF.GetValueType(g)=="Card" then
Duel.Sendto(g,p,LOCATION_ORDER,POS_FACEUP_ATTACK,REASON_EFFECT) VgF.Sendto(LOCATION_ORDER,g,p,POS_FACEUP_ATTACK,REASON_EFFECT)
g:RegisterFlagEffect(ImprisonFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,vgf.Stringid(10105015,0)) g:RegisterFlagEffect(ImprisonFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,VgF.Stringid(10105015,0))
elseif VgF.GetValueType(g)=="Group" then elseif VgF.GetValueType(g)=="Group" then
for tc in VgF.Next(g) do for tc in VgF.Next(g) do
Duel.Sendto(tc,p,LOCATION_ORDER,POS_FACEUP_ATTACK,REASON_EFFECT) VgF.Sendto(LOCATION_ORDER,tc,p,POS_FACEUP_ATTACK,REASON_EFFECT)
tc:RegisterFlagEffect(ImprisonFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,vgf.Stringid(10105015,0)) tc:RegisterFlagEffect(ImprisonFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,VgF.Stringid(10105015,0))
end end
end end
Duel.MoveSequence(oc,og:GetCount()-1) Duel.MoveSequence(oc,og:GetCount()-1)
...@@ -765,11 +765,11 @@ function VgF.SendtoPrison(g,p) ...@@ -765,11 +765,11 @@ function VgF.SendtoPrison(g,p)
local oc=og:Filter(VgF.PrisonFilter,nil,p):GetFirst() local oc=og:Filter(VgF.PrisonFilter,nil,p):GetFirst()
if VgF.GetValueType(g)=="Card" then if VgF.GetValueType(g)=="Card" then
Duel.Sendto(g,p,LOCATION_ORDER,POS_FACEUP_ATTACK,REASON_EFFECT,1) Duel.Sendto(g,p,LOCATION_ORDER,POS_FACEUP_ATTACK,REASON_EFFECT,1)
g:RegisterFlagEffect(ImprisonFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,vgf.Stringid(10105015,0)) g:RegisterFlagEffect(ImprisonFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,VgF.Stringid(10105015,0))
elseif VgF.GetValueType(g)=="Group" then elseif VgF.GetValueType(g)=="Group" then
for tc in VgF.Next(g) do for tc in VgF.Next(g) do
Duel.Sendto(tc,p,LOCATION_ORDER,POS_FACEUP_ATTACK,REASON_EFFECT,1) Duel.Sendto(tc,p,LOCATION_ORDER,POS_FACEUP_ATTACK,REASON_EFFECT,1)
tc:RegisterFlagEffect(ImprisonFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,vgf.Stringid(10105015,0)) tc:RegisterFlagEffect(ImprisonFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,VgF.Stringid(10105015,0))
end end
end end
end]] end]]
...@@ -840,4 +840,53 @@ function VgF.SelectMatchingCard(hintmsg,e,select_tp,f,tp,loc_self,loc_op,int_min ...@@ -840,4 +840,53 @@ function VgF.SelectMatchingCard(hintmsg,e,select_tp,f,tp,loc_self,loc_op,int_min
end end
if a then Duel.ShuffleDeck(select_tp) end if a then Duel.ShuffleDeck(select_tp) end
return g return g
end
function VgF.Sendto(loc,sg,...)
local function AddOverlayGroup(g)
for tc in VgF.Next(sg) do
if tc:GetOverlayCount()>0 then
local mg=tc:GetOverlayGroup()
g:Merge(mg)
end
end
end
local g=nil
if VgF.GetValueType(sg)=="Group" then
g=Group.Clone(sg)
elseif VgF.GetValueType(sg)=="Card" then
g=Group.FromCards(sg)
end
if loc==LOCATION_GRAVE then
AddOverlayGroup(g)
return Duel.SendtoGrave(g,...)
elseif loc==LOCATION_DECK then
return Duel.SendtoDeck(g,...)
elseif loc==LOCATION_HAND then
return Duel.SendtoHand(g,...)
elseif loc==LOCATION_REMOVED then
AddOverlayGroup(g)
return Duel.Remove(g,...)
elseif loc==LOCATION_EXILE then
AddOverlayGroup(g)
return Duel.Exile(g,...)
elseif loc==LOCATION_OVERLAY then
local tc=VgF.ReturnCard(sg)
local list={...}
local c=list[1]
Duel.Overlay(c,tc)
elseif loc==LOCATION_TRIGGER then
local tc=VgF.ReturnCard(sg)
Duel.MoveToField(tc,...)
else
local loclist={LOCATION_GZONE,LOCATION_ORDER,LOCATION_DAMAGE,LOCATION_SPARE,LOCATION_EMBLEM}
for i,v in ipairs{loclist} do
if loc==v then
AddOverlayGroup(g)
local list={...}
local tp=list[1]
table.remove(list,1)
return Duel.Sendto(g,tp,loc,...)
end
end
end
end end
\ No newline at end of file
...@@ -9,7 +9,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -9,7 +9,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0) local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if g:GetCount()>=2 then if g:GetCount()>=2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
g=g:FilterSelect(tp,Card.IsDiscardable,1,1,nil,REASON_EFFECT) g=g:Select(tp,1,1,nil)
Duel.SendtoGrave(g,REASON_EFFECT+REASON_DISCARD) vgf.Sendto(LOCATION_GRAVE,g,REASON_EFFECT+REASON_DISCARD)
end end
end end
\ No newline at end of file
...@@ -9,13 +9,13 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -9,13 +9,13 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local e1=vgf.AtkUp(c,c,5000,nil) local e1=vgf.AtkUp(c,c,5000,nil)
vgf.EffectReset(c,e1,EVENT_BATTLED) vgf.EffectReset(c,e1,EVENT_BATTLED)
if Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayGroup():FilterCount(Card.IsAbleToGraveAsCost,nil)>=2 and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then if Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=2 and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then
local cg=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsAbleToGraveAsCost,2,2,nil) local cg=Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,2,2,nil)
if Duel.SendtoGrave(cg,REASON_COST)==2 then if vgf.Sendto(LOCATION_GRAVE,cg,REASON_COST)==2 then
local g=VgF.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
if g then if g then
Duel.HintSelection(g) Duel.HintSelection(g)
Duel.SendtoGrave(g,REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,g,REASON_EFFECT)
end end
end end
end end
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
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.CardTrigger(c,cm.operation) vgd.CardTrigger(c,cm.operation)
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()
......
...@@ -8,7 +8,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -8,7 +8,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
Duel.HintSelection(g) Duel.HintSelection(g)
VgF.AtkUp(c,g,5000,nil) vgf.AtkUp(c,g,5000,nil)
vgf.SearchCardOP(LOCATION_DROP,cm.filter,e,tp,eg,ep,ev,re,r,rp) vgf.SearchCardOP(LOCATION_DROP,cm.filter,e,tp,eg,ep,ev,re,r,rp)
end end
function cm.filter(c) function cm.filter(c)
......
...@@ -14,14 +14,11 @@ end ...@@ -14,14 +14,11 @@ end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
end end
function cm.filter(c)
return c:IsCanOverlay() and vgf.RMonsterFilter(c)
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 return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,nil) end
local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.Overlay(c,g) vgf.Sendto(LOCATION_OVERLAY,g,c)
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()
......
...@@ -16,12 +16,12 @@ function cm.con2(e,tp,eg,ep,ev,re,r,rp) ...@@ -16,12 +16,12 @@ function cm.con2(e,tp,eg,ep,ev,re,r,rp)
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()
return vgf.IsSequence(c,5) and r==REASON_RIDEUP return (c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
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)&0x4<=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():Select(tp,1,1,nil)
if vgf.Call(g,0,tp,0x4)>0 then if vgf.Call(g,0,tp,0x4)>0 then
vgf.OverlayFillOP(num,e,tp,eg,ep,ev,re,r,rp) vgf.OverlayFillOP(num,e,tp,eg,ep,ev,re,r,rp)
end end
......
...@@ -7,7 +7,7 @@ end ...@@ -7,7 +7,7 @@ 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,ConditionFlag)==10102001 then num=num+1 end if Duel.GetFlagEffectLabel(tp,ConditionFlag)==10102001 then num=num+1 end
VgF.OverlayFillOP(num,e,tp,eg,ep,ev,re,r,rp) vgf.OverlayFillOP(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)
return vgf.RMonsterCondition(e) and vgf.GetVMonster(tp):IsCode(10102001) return vgf.RMonsterCondition(e) and vgf.GetVMonster(tp):IsCode(10102001)
......
--天枪的骑士 勒克斯 --天枪的骑士 勒克斯
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,10103001,cm.operation,cm.cost) vgd.BeRidedByCard(c,m,10103001,cm.operation,cm.cost)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
...@@ -15,10 +15,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -15,10 +15,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) then if tc:IsType(TYPE_MONSTER) then
vgf.Call(g,0,tp) vgf.Call(g,0,tp)
elseif tc:IsAbleToGrave() then else
Duel.SendtoGrave(g,REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,g,REASON_EFFECT)
end end
end end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp) function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
......
--激烈的魔女 拉玛娜 --激烈的魔女 拉玛娜
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],这次战斗中,这个单位的力量+5000。 --【自】【R】:这个单位攻击时,通过【费用】[计数爆发1],这次战斗中,这个单位的力量+5000。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,vgf.DamageCost(1),vgf.RMonsterCondition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,vgf.DamageCost(1),vgf.RMonsterCondition)
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.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation,cm.cost,vgf.RMonsterCondition) vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation,cm.cost,vgf.RMonsterCondition)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
...@@ -9,7 +9,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -9,7 +9,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
if g then if g then
Duel.HintSelection(g) Duel.HintSelection(g)
VgF.AtkUp(c,g,10000,nil) vgf.AtkUp(c,g,10000,nil)
end end
end end
function cm.filter(c) function cm.filter(c)
...@@ -17,7 +17,7 @@ function cm.filter(c) ...@@ -17,7 +17,7 @@ function cm.filter(c)
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()
if chk==0 then return c:IsCanOverlay() end if chk==0 then return true end
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
Duel.Overlay(rc,c) vgf.Sendto(LOCATION_OVERLAY,c,rc)
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)
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)
vgd.SpellActivate(c,m,cm.operation) vgd.SpellActivate(c,m,cm.operation)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
...@@ -10,6 +10,6 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -10,6 +10,6 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
if g then if g then
Duel.HintSelection(g) Duel.HintSelection(g)
VgF.AtkUp(c,g,5000) vgf.AtkUp(c,g,5000)
end end
end end
\ No newline at end of file
...@@ -13,10 +13,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,10 +13,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) then if tc:IsType(TYPE_MONSTER) then
vgf.Call(g,0,tp) vgf.Call(g,0,tp)
elseif tc:IsAbleToHand() then else
Duel.SendtoHand(g,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
......
...@@ -20,10 +20,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -20,10 +20,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) and vgf.IsLevel(tc,0,1,2) then if tc:IsType(TYPE_MONSTER) and vgf.IsLevel(tc,0,1,2) then
vgf.Call(g,0,tp) vgf.Call(g,0,tp)
elseif tc:IsCanOverlay() then else
Duel.Overlay(c,g) vgf.Sendto(LOCATION_OVERLAY,g,c)
end end
end end
function cm.con(e) function cm.con(e)
......
...@@ -17,10 +17,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -17,10 +17,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
c:RegisterEffect(e2) c:RegisterEffect(e2)
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)
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():GetOverlayGroup():FilterCount(Card.IsAbleToGraveAsCost,nil)>=1 end 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
local g1=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil) local g1=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
Duel.ChangePosition(g1,POS_FACEDOWN) Duel.ChangePosition(g1,POS_FACEDOWN)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local g2=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsAbleToGraveAsCost,1,1,nil) local g2=Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,1,1,nil)
Duel.SendtoGrave(g2,REASON_COST) vgf.Sendto(LOCATION_GRAVE,g2,REASON_COST)
end end
\ No newline at end of file
...@@ -11,10 +11,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,10 +11,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local tc=vgf.ReturnCard(g) local tc=vgf.ReturnCard(g)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) then if tc:IsType(TYPE_MONSTER) then
vgf.Call(g,0,tp) vgf.Call(g,0,tp)
elseif tc:IsAbleToHand() then else
Duel.SendtoHand(g,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
\ No newline at end of file
...@@ -22,10 +22,10 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp) ...@@ -22,10 +22,10 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
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)
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():GetOverlayGroup():FilterCount(Card.IsAbleToGraveAsCost,nil)>=1 end 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
local g1=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil) local g1=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
Duel.ChangePosition(g1,POS_FACEDOWN) Duel.ChangePosition(g1,POS_FACEDOWN)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local g2=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsAbleToGraveAsCost,1,1,nil) local g2=Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,1,1,nil)
Duel.SendtoGrave(g2,REASON_COST) vgf.Sendto(LOCATION_GRAVE,g2,REASON_COST)
end end
\ No newline at end of file
...@@ -9,24 +9,24 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -9,24 +9,24 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_ORDER) return e:GetHandler():IsLocation(LOCATION_ORDER)
end end
function cm.cost1(e,tp,eg,ep,ev,re,r,rp,chk) 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():GetOverlayGroup():FilterCount(Card.IsAbleToGraveAsCost,nil)>=1 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=Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil)
if chk==0 then return a or b end if chk==0 then return a or b end
local off=1 local off=1
local ops={} local ops={}
if a then if a then
ops[off]=VgF.Stringid(VgID,11) ops[off]=vgf.Stringid(VgID,11)
off=off+1 off=off+1
end end
if b then if b then
ops[off]=VgF.Stringid(VgID,12) ops[off]=vgf.Stringid(VgID,12)
off=off+1 off=off+1
end end
local sel=Duel.SelectOption(tp,table.unpack(ops)) local sel=Duel.SelectOption(tp,table.unpack(ops))
if sel==0 and a then if sel==0 and a then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local g=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsAbleToGraveAsCost,num,num,nil) local g=Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) vgf.Sendto(LOCATION_GRAVE,g,REASON_COST)
e:SetLabel(1) e:SetLabel(1)
else else
local g=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,num,num,nil) local g=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,num,num,nil)
...@@ -47,10 +47,10 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,10 +47,10 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,cm.filter1,tp,0,LOCATION_ORDER,ct,ct,nil,e,tp) local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,cm.filter1,tp,0,LOCATION_ORDER,ct,ct,nil,e,tp)
Duel.HintSelection(g) Duel.HintSelection(g)
for tc in vgf.Next(g) do for tc in vgf.Next(g) do
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) then if tc:IsType(TYPE_MONSTER) then
vgf.Call(tc,0,tp) vgf.Call(tc,0,tp)
else else
Duel.SendtoGrave(tc,REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,tc,REASON_EFFECT)
end end
end end
end end
......
...@@ -32,7 +32,7 @@ function cm.con(e,c) ...@@ -32,7 +32,7 @@ function cm.con(e,c)
return Duel.GetFlagEffect(tp,m)>0 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(g) function cm.check(g)
return g:GetClassCount(Card.GetLevel)==#g return g:GetClassCount(Card.GetLevel)==#g
...@@ -46,17 +46,17 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -46,17 +46,17 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local sg=g:SelectSubGroup(tp,cm.check,true,4,4) local sg=g:SelectSubGroup(tp,cm.check,true,4,4)
Duel.SendtoGrave(sg,REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,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 tc=VgF.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,vgf.VMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil):GetFirst() local tc=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,vgf.VMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil):GetFirst()
if tc:GetAttack()>1 then if tc:GetAttack()>1 then
local atk=tc:GetAttack()-1 local atk=tc:GetAttack()-1
vgf.AtkUp(c,tc,-atk) vgf.AtkUp(c,tc,-atk)
end end
if Duel.IsExistingMatchingCard(tp,cm.filter,tp,0,LOCATION_MZONE,1,1,nil) then if Duel.IsExistingMatchingCard(tp,cm.filter,tp,0,LOCATION_MZONE,1,1,nil) then
VgF.StarUp(c,c,1) vgf.StarUp(c,c,1)
end end
end end
function cm.filter(c) function cm.filter(c)
......
...@@ -13,7 +13,7 @@ end ...@@ -13,7 +13,7 @@ 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.OverlayFillOP(1,e,tp,eg,ep,ev,re,r,rp) vgf.OverlayFillOP(1,e,tp,eg,ep,ev,re,r,rp)
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
......
...@@ -3,7 +3,7 @@ local cm,m,o=GetID() ...@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】:这个单位被「魔石龙 珠艾尼尔」骑升时,将这张卡召唤到R上。 --【自】:这个单位被「魔石龙 珠艾尼尔」骑升时,将这张卡召唤到R上。
vgd.BeRidedByCard(c,m,10202002,cm.operation,nil,cm.condition) vgd.BeRidedByCard(c,m,10202002,cm.operation)
--【自】【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)
...@@ -11,14 +11,15 @@ end ...@@ -11,14 +11,15 @@ 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:GetLabelObject() local c=e:GetLabelObject()
if c:IsRelateToEffect() then if c:IsRelateToEffect(e) then
vgf.Call(c,0,tp) vgf.Call(c,0,tp)
end end
end 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()
if c:IsRelateToEffect() then if c:IsRelateToEffect(e) then
VgF.AtkUp(c,c,5000,EVENT_BATTLED) local e2=vgf.AtkUp(c,c,5000)
vgf.EffectReset(c,e2,EVENT_BATTLED)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLED) e1:SetCode(EVENT_BATTLED)
...@@ -30,14 +31,12 @@ function cm.operation2(e,tp,eg,ep,ev,re,r,rp) ...@@ -30,14 +31,12 @@ function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
end 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()
end end
function cm.condition3(e,tp,eg,ep,ev,re,r,rp) 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)
if e:GetHandler():IsCanOverlay() then vgf.Sendto(LOCATION_OVERLAY,e:GetHandler(),vgf.GetVMonster(tp))
Duel.Overlay(VgF.GetVMonster(tp),e:GetHandler())
end
e:Reset() e:Reset()
end end
...@@ -3,13 +3,14 @@ local cm,m,o=GetID() ...@@ -3,13 +3,14 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】【R】:这个单位攻击时,你有含有「道拉珠艾尔德」的先导者的话,通过【费用】[计数爆发1],这次战斗中,这个单位的力量+10000。这次战斗结束时,将这个单位放置到灵魂里。 --【自】【R】:这个单位攻击时,你有含有「道拉珠艾尔德」的先导者的话,通过【费用】[计数爆发1],这次战斗中,这个单位的力量+10000。这次战斗结束时,将这个单位放置到灵魂里。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,VgF.DamageCost(1),cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,vgf.DamageCost(1),cm.condition)
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()
if c:IsRelateToEffect() then if c:IsRelateToEffect(e) then
VgF.AtkUp(c,c,10000,EVENT_BATTLED) local e2=vgf.AtkUp(c,c,10000)
vgf.EffectReset(c,e2,EVENT_BATTLED)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLED) e1:SetCode(EVENT_BATTLED)
...@@ -21,8 +22,9 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -21,8 +22,9 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end 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 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()) vgf.Sendto(LOCATION_OVERLAY,e:GetHandler(),vgf.GetVMonster(tp))
e:Reset()
end end
...@@ -10,6 +10,6 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -10,6 +10,6 @@ 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 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()
Duel.Overlay(rc,c) vgf.Sendto(LOCATION_OVERLAY,c,rc)
end end
...@@ -4,7 +4,7 @@ function cm.initial_effect(c) ...@@ -4,7 +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,vgf.OverlayFill(1),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 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()
......
...@@ -3,10 +3,10 @@ local cm,m,o=GetID() ...@@ -3,10 +3,10 @@ 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张卡。 --【起】【R】【1回合1次】:你有等级3以上的先导者的话,通过【费用】[计数爆发2],抽1张卡。
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation,VgF.DamageCost(2),cm.condition,nil,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) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return VgF.RMonsterFilter(e:GetHandler()) and VgF.GetVMonster(tp):IsLevelAbove(4) return vgf.RMonsterFilter(e:GetHandler()) and vgf.GetVMonster(tp):IsLevelAbove(4)
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.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
......
...@@ -3,16 +3,16 @@ local cm,m,o=GetID() ...@@ -3,16 +3,16 @@ 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。 --【自】:这个单位登场到R时,你有含有「道拉珠艾尔德」的先导者的话,通过【费用】[灵魂爆发1],选择你的弃牌区中的1张卡,放置到灵魂里,这个回合中,这个单位的力量+2000。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,VgF.OverlayCost(1),cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,vgf.OverlayCost(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.GetVMonster(tp):IsSetCard(0xe8) and VgF.RMonsterFilter(e:GetHandler()) return vgf.GetVMonster(tp):IsSetCard(0xe8) and vgf.RMonsterFilter(e:GetHandler())
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 g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,nil,tp,LOCATION_GRAVE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,nil,tp,LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.Overlay(VgF.GetVMonster(tp),g) vgf.Sendto(LOCATION_OVERLAY,g,vgf.GetVMonster(tp))
end end
VgF.AtkUp(c,c,2000,nil) vgf.AtkUp(c,c,2000,nil)
end end
...@@ -3,7 +3,7 @@ local cm,m,o=GetID() ...@@ -3,7 +3,7 @@ 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张卡。 --【自】:这个单位从手牌登场到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) 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)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -16,10 +16,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -16,10 +16,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local sc=g:FilterSelect(tp,Card.IsCanOverlay,1,1,nil):GetFirst() local sc=g:FilterSelect(tp,Card.IsCanOverlay,1,1,nil):GetFirst()
if sc then if sc then
Duel.Overlay(VgF.GetVMonster(tp),sc) vgf.Sendto(LOCATION_OVERLAY,sc,vgf.GetVMonster(tp))
end end
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
if VgF.GetVMonster(tp):GetOverlayGroup():GetClassCount(Card.GetLevel)>=4 then 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
...@@ -6,7 +6,7 @@ function cm.initial_effect(c) ...@@ -6,7 +6,7 @@ function cm.initial_effect(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,nil,cm.condition) 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) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return VgF.RMonsterFilter(e:GetHandler()) return vgf.RMonsterFilter(e:GetHandler())
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)
...@@ -15,7 +15,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -15,7 +15,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local sc=g:FilterSelect(tp,Card.IsCanOverlay,1,1,nil):GetFirst() local sc=g:FilterSelect(tp,Card.IsCanOverlay,1,1,nil):GetFirst()
if sc then if sc then
Duel.Overlay(VgF.GetVMonster(tp),sc) vgf.Sendto(LOCATION_OVERLAY,sc,vgf.GetVMonster(tp))
g:RemoveCard(sc) g:RemoveCard(sc)
end end
if #g>1 then if #g>1 then
......
...@@ -6,14 +6,14 @@ function cm.initial_effect(c) ...@@ -6,14 +6,14 @@ function cm.initial_effect(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_BATTLED,cm.operation,nil,cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_BATTLED,cm.operation,nil,cm.condition)
--【永】【R】:这个回合中曾有你的等级3以上的先导者登场过的话,这个单位的力量+5000。 --【永】【R】:这个回合中曾有你的等级3以上的先导者登场过的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con)
VgD.GlobalCheckEffect(c,m,EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS,EVENT_SPSUMMON_SUCCESS,cm.checkcon,cm.checkop) vgd.GlobalCheckEffect(c,m,EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS,EVENT_SPSUMMON_SUCCESS,cm.checkcon,cm.checkop)
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.GetFlagEffect(tp,m)>0 return Duel.GetFlagEffect(tp,m)>0
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 g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,cm.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp) local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,cm.filter,tp,LOCATION_HAND,0,1,1,nil)
if vgf.Call(g,SUMMON_VALUE_REVOLT,tp,0x20)>0 then if vgf.Call(g,SUMMON_VALUE_REVOLT,tp,0x20)>0 then
local mg=Duel.GetOperatedGroup() local mg=Duel.GetOperatedGroup()
vgd.TriggerCountUp(c,-2,RESET_PHASE+PHASE_END,mg) vgd.TriggerCountUp(c,-2,RESET_PHASE+PHASE_END,mg)
...@@ -23,8 +23,8 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -23,8 +23,8 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return Duel.GetAttacker()==c return Duel.GetAttacker()==c
end end
function cm.filter(c,e,tp) function cm.filter(c)
return c:IsSetCard(0x76) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) return c:IsSetCard(0x76) and c:IsType(TYPE_MONSTER)
end end
function cm.checkfilter(c) function cm.checkfilter(c)
return (c:IsSummonType(SUMMON_TYPE_SELFRIDE) or c:IsSummonType(SUMMON_TYPE_RIDE)) and c:IsLevelAbove(4) return (c:IsSummonType(SUMMON_TYPE_SELFRIDE) or c:IsSummonType(SUMMON_TYPE_RIDE)) and c:IsLevelAbove(4)
......
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,cm.filter,vgf.SearchCard(LOCATION_DROP,cm.filter1),VgF.DamageCost(1)) vgd.BeRidedByCard(c,m,cm.filter,vgf.SearchCard(LOCATION_DROP,cm.filter1),vgf.DamageCost(1))
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.operation1,VgF.OverlayCost(1),cm.condition1) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.operation1,vgf.OverlayCost(1),cm.condition1)
end end
function cm.filter(c) function cm.filter(c)
return c:IsSetCard(0x202) return c:IsSetCard(0x202)
......
...@@ -29,13 +29,13 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -29,13 +29,13 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:FilterSelect(tp,cm.filter,1,1,nil) local sg=g:FilterSelect(tp,cm.filter,1,1,nil)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.SendtoHand(sg,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
g:RemoveCard(vgf.ReturnCard(sg)) g:RemoveCard(vgf.ReturnCard(sg))
elseif (sel==1 and a and b) or (sel==0 and not a and b) then elseif (sel==1 and a and b) or (sel==0 and not a and b) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
local sg=g:FilterSelect(tp,cm.filter1,1,1,nil,e,tp) local sg=g:FilterSelect(tp,cm.filter1,1,1,nil,tp)
vgf.Call(sg,0,tp) vgf.Call(sg,0,tp)
g:RemoveCard(vgf.ReturnCard(sg)) g:RemoveCard(vgf.ReturnCard(sg))
end end
...@@ -48,8 +48,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -48,8 +48,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter(c) function cm.filter(c)
return c:IsSetCard(0x77) and c:IsAbleToHand() return c:IsSetCard(0x77)
end end
function cm.filter1(c,e,tp) function cm.filter1(c,tp)
return c:IsLevelBelow(3) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) and vgf.GetAvailableLocation(tp)>0 return c:IsLevelBelow(3) and c:IsType(TYPE_MONSTER) and vgf.GetAvailableLocation(tp)>0
end end
\ No newline at end of file
...@@ -34,9 +34,8 @@ end ...@@ -34,9 +34,8 @@ end
function cm.op1(e,tp,eg,ep,ev,re,r,rp) function cm.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_Call) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_Call)
local g=vgf.GetVMonster(tp):GetOverlayGroup():FilterSelect(tp,cm.filter,1,1,nil,e,tp) local g=vgf.GetVMonster(tp):GetOverlayGroup():FilterSelect(tp,cm.filter,1,1,nil,e,tp)
--Duel.Sendto(g,tp,0,POS_FACEUP,REASON_EFFECT)
vgf.Call(g,0,tp,0x20,POS_FACEDOWN_DEFENCE) vgf.Call(g,0,tp,0x20,POS_FACEDOWN_DEFENCE)
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return c:IsSetCard(0x202) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE) return c:IsSetCard(0x202) and c:IsType(TYPE_MONSTER)
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)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_SPSUMMON_SUCCESS,cm.operation,VgF.DamageCost(1),cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,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)
local c=e:GetHandler() local c=e:GetHandler()
return VgF.RMonsterFilter(c) and eg:IsExists(cm.filter,1,nil,tp) return vgf.RMonsterFilter(c) and eg:IsExists(cm.filter,1,nil,tp)
end end
function cm.filter(c,tp) function cm.filter(c,tp)
return c:IsSummonType(SUMMON_VALUE_REVOLT) and vgf.VMonsterFilter(c) and c:IsControler(tp) return c:IsSummonType(SUMMON_VALUE_REVOLT) and vgf.VMonsterFilter(c) and c:IsControler(tp)
......
...@@ -5,14 +5,14 @@ function cm.initial_effect(c) ...@@ -5,14 +5,14 @@ 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 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 Duel.IsExistingMatchingCard(nil,tp,LOCATION_MZONE,0,4,nil)
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)
if chk==0 then return Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayGroup():FilterCount(Card.IsAbleToGraveAsCost,nil)>=1 and e:GetHandler():IsAbleToGraveAsCost() end if chk==0 then return Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local g=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsAbleToGraveAsCost,1,1,nil) local g=Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,1,1,nil)
g:AddCard(e:GetHandler()) g:AddCard(e:GetHandler())
Duel.SendtoGrave(g,REASON_COST) vgf.Sendto(LOCATION_GRAVE,g,REASON_COST)
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)
...@@ -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.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:FilterSelect(tp,cm.filter,0,1,nil) local sg=g:FilterSelect(tp,cm.filter,0,1,nil)
if sg:GetCount()>0 then if sg:GetCount()>0 then
Duel.SendtoHand(sg,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
else else
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
...@@ -28,5 +28,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -28,5 +28,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter(c) function cm.filter(c)
return c:IsLevelAbove(3) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() return c:IsLevelAbove(3) and c:IsType(TYPE_MONSTER)
end end
\ No newline at end of file
...@@ -19,10 +19,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -19,10 +19,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_RTOHAND,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,2,nil) local g=vgf.SelectMatchingCard(HINTMSG_RTOHAND,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,2,nil)
Duel.HintSelection(g) Duel.HintSelection(g)
Duel.SendtoHand(g,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
end end
function cm.filter(c) function cm.filter(c)
return vgf.RMonsterFilter(c) and c:IsAbleToHand() return vgf.RMonsterFilter(c)
end end
function cm.condition1(e,tp,eg,ep,ev,re,r,rp) function cm.condition1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -34,16 +34,16 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp) ...@@ -34,16 +34,16 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
local ct=bit.ReturnCount(zone) local ct=bit.ReturnCount(zone)
zone=bit.bor(zone,0xffffff00) zone=bit.bor(zone,0xffffff00)
if ct>2 then ct=2 end if ct>2 then ct=2 end
local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,Card.IsCanBeSpecialSummoned,tp,LOCATION_HAND,0,0,ct,nil,e,0,tp,false,false,POS_FACEUP_ATTACK) local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,Card.IsType,tp,LOCATION_HAND,0,0,ct,nil,TYPE_MONSTER)
if g:GetCount()==1 then if g:GetCount()==1 then
vgf.Call(g,0,tp) vgf.Call(g,0,tp)
elseif g:GetCount()==2 then elseif g:GetCount()==2 then
local tc1=g:GetFirst() local tc1=g:GetFirst()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE)
local szone=Duel.SelectField(tp,1,LOCATION_MZONE,0,zone) 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 Duel.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() local tc=Duel.GetMatchingGroup(vgd.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
Duel.SendtoGrave(tc,REASON_COST) vgf.Sendto(LOCATION_GRAVE,tc,REASON_COST)
end end
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEUP_ATTACK,szone) Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEUP_ATTACK,szone)
if szone&0x11>0 then if szone&0x11>0 then
...@@ -54,9 +54,9 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,9 +54,9 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
local tc2=g:GetNext() local tc2=g:GetNext()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CallZONE)
szone=Duel.SelectField(tp,1,LOCATION_MZONE,0,zone) szone=Duel.SelectField(tp,1,LOCATION_MZONE,0,zone)
if Duel.IsExistingMatchingCard(VgD.CallFilter,tp,LOCATION_MZONE,0,1,nil,tp,szone) then if Duel.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() local tc=Duel.GetMatchingGroup(vgd.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
Duel.SendtoGrave(tc,REASON_COST) vgf.Sendto(LOCATION_GRAVE,tc,REASON_COST)
end end
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEUP_ATTACK,szone) Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEUP_ATTACK,szone)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
......
...@@ -8,10 +8,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -8,10 +8,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_RTOHAND,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_RTOHAND,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.HintSelection(g) Duel.HintSelection(g)
Duel.SendtoHand(g,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
end end
function cm.filter(c) function cm.filter(c)
return vgf.RMonsterFilter(c) and c:IsAbleToHand() return vgf.RMonsterFilter(c)
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.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil,e:GetHandler()) and Duel.GetAttacker()==e:GetHandler() and vgf.RMonsterCondition(e) return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil,e:GetHandler()) and Duel.GetAttacker()==e:GetHandler() and vgf.RMonsterCondition(e)
......
...@@ -15,12 +15,12 @@ end ...@@ -15,12 +15,12 @@ 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()
if vgf.GetAvailableLocation(tp)<=0 then return end if vgf.GetAvailableLocation(tp)<=0 then return end
local g=vgf.SelectMatchingCard(HINTMSG_Call,e,tp,cm.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) local g=vgf.SelectMatchingCard(HINTMSG_Call,e,tp,cm.filter,tp,LOCATION_GRAVE,0,1,1,nil)
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,e,tp) function cm.filter(c)
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:IsType(TYPE_MONSTER)
end end
function cm.operation1(e,tp,eg,ep,ev,re,r,rp) function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -11,24 +11,19 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,24 +11,19 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
local off=1 local off=1
local ops={} local ops={}
local a=tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) and vgf.GetAvailableLocation(tp)>0 local a=tc:IsType(TYPE_MONSTERS) and vgf.GetAvailableLocation(tp)>0
local b=tc:IsAbleToHand()
if not a and not b then return end
if a then if a then
ops[off]=1152 ops[off]=1152
off=off+1 off=off+1
end end
if b then ops[off]=1190
ops[off]=1190
off=off+1
end
local sel=Duel.SelectOption(tp,table.unpack(ops)) local sel=Duel.SelectOption(tp,table.unpack(ops))
if sel==0 and a then if sel==0 and a then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_ATTACK) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_ATTACK)
else else
Duel.SendtoHand(g,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
local tg=vgf.SelectMatchingCard(HINTMSG_DISCARD,e,tp,Card.IsDiscardable,tp,LOCATION_HAND,0,1,1,nil,REASON_EFFECT) local tg=vgf.SelectMatchingCard(HINTMSG_DISCARD,e,tp,nil,tp,LOCATION_HAND,0,1,1,nil)
Duel.SendtoGrave(tg,REASON_COST) vgf.Sendto(LOCATION_GRAVE,tg,REASON_COST)
end end
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)
VgD.Rule(c) vgd.Rule(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DELAY)
...@@ -23,7 +23,7 @@ function cm.initial_effect(c) ...@@ -23,7 +23,7 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_EMBLEM) e3:SetRange(LOCATION_EMBLEM)
e3:SetCountLimit(1) e3:SetCountLimit(1)
e3:SetCost(VgF.EnergyCost(7)) e3:SetCost(vgf.EnergyCost(7))
e3:SetOperation(cm.op3) e3:SetOperation(cm.op3)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
...@@ -35,7 +35,7 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,7 +35,7 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
for i = 1, 3, 1 do for i = 1, 3, 1 do
local token=Duel.CreateToken(tp,20401001) local token=Duel.CreateToken(tp,20401001)
Duel.Sendto(token,tp,LOCATION_EMBLEM,POS_FACEUP,REASON_EFFECT) vgf.Sendto(LOCATION_EMBLEM,token,tp,POS_FACEUP,REASON_EFFECT)
end end
end end
function cm.con2(e,tp,eg,ep,ev,re,r,rp) function cm.con2(e,tp,eg,ep,ev,re,r,rp)
...@@ -45,7 +45,7 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp) ...@@ -45,7 +45,7 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if Duel.GetMatchingGroupCount(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,20401001)>=10 then return end if Duel.GetMatchingGroupCount(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,20401001)>=10 then return end
local token=Duel.CreateToken(tp,20401001) local token=Duel.CreateToken(tp,20401001)
Duel.Sendto(token,tp,LOCATION_EMBLEM,POS_FACEUP,REASON_EFFECT) vgf.Sendto(LOCATION_EMBLEM,token,tp,POS_FACEUP,REASON_EFFECT)
end end
function cm.op3(e,tp,eg,ep,ev,re,r,rp) function cm.op3(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
......
...@@ -15,8 +15,8 @@ function cm.filter(c) ...@@ -15,8 +15,8 @@ function cm.filter(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 c=e:GetHandler() local c=e:GetHandler()
local g=VgF.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.VMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.VMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
if g:GetCount()>0 then Duel.SendtoGrave(g,REASON_EFFECT) end if g:GetCount()>0 then vgf.Sendto(LOCATION_GRAVE,g,REASON_EFFECT) end
vgf.AtkUp(c,c,10000) vgf.AtkUp(c,c,10000)
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
...@@ -29,14 +29,14 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -29,14 +29,14 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(g) Duel.ConfirmCards(g)
local ct1=vgf.GetAvailableLocation(tp) local ct1=vgf.GetAvailableLocation(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
local sg=g:FilterSelect(tp,Card.IsCanBeSpecialSummoned,0,ct1,nil) local sg=g:FilterSelect(tp,Card.IsType,0,ct1,nil,TYPE_MONSTER)
if sg:GetCount()>0 then if sg:GetCount()>0 then
vgf.Call(sg,0,tp) vgf.Call(sg,0,tp)
for tc in vgf.Next(sg) do g:RemoveCard(tc) end g:Sub(sg)
end end
if g:GetCount()>0 then if g:GetCount()>0 then
local tc=vgf.GetVMonster(tp) local tc=vgf.GetVMonster(tp)
Duel.Overlay(tc,g) vgf.Sendto(LOCATION_OVERLAY,g,tc)
end end
end end
function cm.checkcon(e,tp,eg,ep,ev,re,r,rp) function cm.checkcon(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -16,22 +16,10 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -16,22 +16,10 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g2=Duel.GetMatchingGroup(vgf.RMonsterFilter,tp,0,LOCATION_MZONE,nil) local g2=Duel.GetMatchingGroup(vgf.RMonsterFilter,tp,0,LOCATION_MZONE,nil)
local tc1=vgf.GetVMonster(tp) local tc1=vgf.GetVMonster(tp)
local tc2=vgf.GetVMonster(1-tp) local tc2=vgf.GetVMonster(1-tp)
for tc in vgf.Next(g1) do vgf.Sendto(LOCATION_OVERLAY,g1,tc1)
local og=tc:GetOverlayGroup() vgf.Sendto(LOCATION_OVERLAY,g2,tc2)
if og:GetCount()>0 then
Duel.Overlay(tc1,og)
end
end
for tc in vgf.Next(g2) do
local og=tc:GetOverlayGroup()
if og:GetCount()>0 then
Duel.Overlay(tc2,og)
end
end
Duel.Overlay(tc1,g1)
Duel.Overlay(tc2,g2)
if vgf.GetAvailableLocation(tp)>0 then if vgf.GetAvailableLocation(tp)>0 then
local g=tc1:GetOverlayGroup():FilterSelect(tp,Card.IsCanBeSpecialSummoned,tp,0,2,nil,e,0,tp,false,false,POS_FACEUP_ATTACK) local g=tc1:GetOverlayGroup():FilterSelect(tp,Card.IsType,tp,0,2,nil,TYPE_MONSTER)
vgf.Call(g,0,tp) vgf.Call(g,0,tp)
end end
end end
......
...@@ -20,9 +20,9 @@ function cm.con1(e,tp,eg,ep,ev,re,r,rp) ...@@ -20,9 +20,9 @@ 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)
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 g=VgF.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
if g then if g then
Duel.HintSelection(g) Duel.HintSelection(g)
Duel.SendtoGrave(g,REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,g,REASON_EFFECT)
end end
end end
\ No newline at end of file
...@@ -13,8 +13,8 @@ end ...@@ -13,8 +13,8 @@ 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 vgf.OverlayCostOP(1,e,tp,eg,ep,ev,re,r,rp,chk) and c:IsAbleToGraveAsCost() return vgf.OverlayCostOP(1,e,tp,eg,ep,ev,re,r,rp,chk)
end end
vgf.OverlayCostOP(1,e,tp,eg,ep,ev,re,r,rp,chk) vgf.OverlayCostOP(1,e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoGrave(c,REASON_COST) vgf.Sendto(LOCATION_GRAVE,c,REASON_COST)
end end
\ No newline at end of file
...@@ -3,21 +3,21 @@ local cm,m,o=GetID() ...@@ -3,21 +3,21 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--追加效果——抽1张卡!选择你的1个单位,这个回合中,☆+1!将当前存在于前列的你所有的单位的力量+10000!你的伤害区中的卡的张数在对手的伤害区中的卡的张数以上的话,选择你的伤害区中的1张卡,回复! --追加效果——抽1张卡!选择你的1个单位,这个回合中,☆+1!将当前存在于前列的你所有的单位的力量+10000!你的伤害区中的卡的张数在对手的伤害区中的卡的张数以上的话,选择你的伤害区中的1张卡,回复!
VgD.CardTrigger(c,cm.operation) vgd.CardTrigger(c,cm.operation)
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()
Duel.Draw(tp,1,REASON_TRIGGER) Duel.Draw(tp,1,REASON_TRIGGER)
local g1=vgf.SelectMatchingCard(HINTMSG_CRITICAL_STRIKE,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil) local g1=vgf.SelectMatchingCard(HINTMSG_CRITICAL_STRIKE,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
Duel.HintSelection(g1) Duel.HintSelection(g1)
VgF.StarUp(c,g1,1,nil) vgf.StarUp(c,g1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP)
local g2=Duel.GetMatchingGroup(VgF.IsSequence,tp,LOCATION_MZONE,0,nil,0,4,5) local g2=Duel.GetMatchingGroup(vgf.IsSequence,tp,LOCATION_MZONE,0,nil,0,4,5)
VgF.AtkUp(c,g2,10000,nil) vgf.AtkUp(c,g2,10000,nil)
if Duel.GetMatchingGroupCount(nil,tp,LOCATION_DAMAGE,0,nil)>=Duel.GetMatchingGroupCount(nil,tp,0,LOCATION_DAMAGE,nil) then if Duel.GetMatchingGroupCount(nil,tp,LOCATION_DAMAGE,0,nil)>=Duel.GetMatchingGroupCount(nil,tp,0,LOCATION_DAMAGE,nil) then
local tc=vgf.SelectMatchingCard(HINTMSG_TODROP,e,tp,nil,tp,LOCATION_DAMAGE,0,1,1,nil):GetFirst() local tc=vgf.SelectMatchingCard(HINTMSG_TODROP,e,tp,nil,tp,LOCATION_DAMAGE,0,1,1,nil):GetFirst()
if tc then if tc then
Duel.SendtoGrave(tc,REASON_TRIGGER) vgf.Sendto(LOCATION_GRAVE,tc,REASON_TRIGGER)
end end
end end
end end
\ No newline at end of file
...@@ -8,19 +8,19 @@ function cm.initial_effect(c) ...@@ -8,19 +8,19 @@ function cm.initial_effect(c)
end end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp) function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
local c=Duel.GetAttacker() local c=Duel.GetAttacker()
return vgf.RMonsterCondition(e) and Duel.GetMatchingGroupCount(vgf.RMonsterFilter,tp,0,LOCATION_MZONE,nil)<=2 and VgF.VMonsterFilter(c) return vgf.RMonsterCondition(e) and Duel.GetMatchingGroupCount(vgf.RMonsterFilter,tp,0,LOCATION_MZONE,nil)<=2 and vgf.VMonsterFilter(c)
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()
if chk==0 then return c:IsCanOverlay() end if chk==0 then return true end
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=Duel.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
Duel.Overlay(rc,c) vgf.Sendto(LOCATION_OVERLAY,c,rc)
end 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()
local g=vgf.SelectMatchingCard(HINTMSG_CRITICAL_STRIKE,e,tp,vgf.VMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_CRITICAL_STRIKE,e,tp,vgf.VMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
local e1=VgF.StarUp(c,g,1,nil) local e1=vgf.StarUp(c,g,1,nil)
vgf.EffectReset(c,e1,EVENT_BATTLED) vgf.EffectReset(c,e1,EVENT_BATTLED)
end end
end end
\ No newline at end of file
...@@ -12,7 +12,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -12,7 +12,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,nil,tp,LOCATION_GRAVE,0,0,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,nil,tp,LOCATION_GRAVE,0,0,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.Overlay(VgF.GetVMonster(tp),g) vgf.Sendto(LOCATION_OVERLAY,g,vgf.GetVMonster(tp))
end end
end end
function cm.operation1(e,tp,eg,ep,ev,re,r,rp) function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -3,7 +3,7 @@ local cm,m,o=GetID() ...@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】:这个单位登场到R时,通过【费用】[计数爆发2],灵魂填充1,选择对手的1张后防者,退场。 --【自】:这个单位登场到R时,通过【费用】[计数爆发2],灵魂填充1,选择对手的1张后防者,退场。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,VgF.DamageCost(2),cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,vgf.DamageCost(2),cm.condition)
end end
--这个单位从手牌登场到R时 --这个单位从手牌登场到R时
function cm.condition(e,tp,eg,ep,ev,re,r,rp) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
...@@ -13,8 +13,8 @@ end ...@@ -13,8 +13,8 @@ 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.OverlayFillOP(1,e,tp,eg,ep,ev,re,r,rp) vgf.OverlayFillOP(1,e,tp,eg,ep,ev,re,r,rp)
local g=VgF.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,g,REASON_EFFECT)
end end
end end
...@@ -3,7 +3,7 @@ local cm,m,o=GetID() ...@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】【R】:这个单位的攻击击中时,通过【费用】[将手牌中的1张卡舍弃],抽1张卡。 --【自】【R】:这个单位的攻击击中时,通过【费用】[将手牌中的1张卡舍弃],抽1张卡。
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.operation, VgF.DisCardCost(1)) vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.operation, vgf.DisCardCost(1))
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.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
......
...@@ -18,9 +18,9 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -18,9 +18,9 @@ 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 c=e:GetHandler() local c=e:GetHandler()
local g=VgF.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,cm.fliter,tp,0,LOCATION_MZONE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,cm.fliter,tp,0,LOCATION_MZONE,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,g,REASON_EFFECT)
end end
end end
function cm.fliter(c) function cm.fliter(c)
......
...@@ -25,7 +25,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -25,7 +25,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0) local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if sg:GetCount()>=2 then if sg:GetCount()>=2 then
sg=sg:FilterSelect(tp,Card.IsDiscardable,1,1,nil,REASON_EFFECT) sg=sg:Select(tp,1,1,nil)
Duel.SendtoGrave(sg,REASON_DISCARD+REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,sg,REASON_DISCARD+REASON_EFFECT)
end end
end end
\ No newline at end of file
...@@ -3,20 +3,20 @@ local cm,m,o=GetID() ...@@ -3,20 +3,20 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】:这个单位登场到R时,你有「重力的支配者 磁力重压」的先导者的话,灵魂填充2。 --【自】:这个单位登场到R时,你有「重力的支配者 磁力重压」的先导者的话,灵魂填充2。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,VgF.OverlayFill(2),nil,cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.OverlayFill(2),nil,cm.condition)
--【起】【R】:你的灵魂在10张以上的话,通过【费用】[计数爆发2],这个回合中,将当前存在于前列的你所有的单位的力量+5000。 --【起】【R】:你的灵魂在10张以上的话,通过【费用】[计数爆发2],这个回合中,将当前存在于前列的你所有的单位的力量+5000。
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation,VgF.DamageCost(2),cm.condition1) vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation,vgf.DamageCost(2),cm.condition1)
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 not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)) and VgF.GetVMonster(tp):IsCode(10401003) return not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)) and vgf.GetVMonster(tp):IsCode(10401003)
end end
function cm.condition1(e,tp,eg,ep,ev,re,r,rp) function cm.condition1(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
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 g2=Duel.GetMatchingGroup(VgF.IsSequence,tp,LOCATION_MZONE,0,nil,0,4,5) local g2=Duel.GetMatchingGroup(vgf.IsSequence,tp,LOCATION_MZONE,0,nil,0,4,5)
VgF.AtkUp(c,g2,10000,nil) vgf.AtkUp(c,g2,10000,nil)
end end
\ No newline at end of file
...@@ -5,20 +5,20 @@ function cm.initial_effect(c) ...@@ -5,20 +5,20 @@ function cm.initial_effect(c)
--【自】:这个单位被「重力的支配者 磁力重压」RIDE时,通过【费用】[将手牌中的1张卡放置到灵魂里],抽1张卡,灵魂填充1。 --【自】:这个单位被「重力的支配者 磁力重压」RIDE时,通过【费用】[将手牌中的1张卡放置到灵魂里],抽1张卡,灵魂填充1。
vgd.BeRidedByCard(c,m,10401003,cm.operation,cm.cost) vgd.BeRidedByCard(c,m,10401003,cm.operation,cm.cost)
--【自】:这个单位登场到R时,通过【费用】[计数爆发1],灵魂填充2。 --【自】:这个单位登场到R时,通过【费用】[计数爆发1],灵魂填充2。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation1,VgF.DamageCost(1),cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation1,vgf.DamageCost(1),cm.condition)
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()
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
VgF.OverlayFillOP(1,e,tp,eg,ep,ev,re,r,rp,1) vgf.OverlayFillOP(1,e,tp,eg,ep,ev,re,r,rp,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)
if chk==0 then return Duel.GetMatchingGroupCount(nil,tp,0,LOCATION_HAND,nil)>=1 end if chk==0 then return Duel.GetMatchingGroupCount(nil,tp,0,LOCATION_HAND,nil)>=1 end
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=vgf.SelectMatchingCard(HINTMSG_OVERLAY,e,tp,nil,tp,LOCATION_HAND,0,1,1,nil,e,tp) local g=vgf.SelectMatchingCard(HINTMSG_OVERLAY,e,tp,nil,tp,LOCATION_HAND,0,1,1,nil,e,tp)
Duel.HintSelection(g) Duel.HintSelection(g)
Duel.Overlay(rc,g) vgf.Sendto(LOCATION_OVERLAY,g,rc)
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()
......
...@@ -24,7 +24,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -24,7 +24,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0) local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if sg:GetCount()>=2 then if sg:GetCount()>=2 then
sg=sg:FilterSelect(tp,Card.IsDiscardable,1,1,nil,REASON_EFFECT) sg=sg:Select(tp,1,1,nil)
Duel.SendtoGrave(sg,REASON_DISCARD+REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,sg,REASON_DISCARD+REASON_EFFECT)
end end
end end
\ No newline at end of file
...@@ -14,7 +14,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -14,7 +14,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local e2=e1*10000 local e2=e1*10000
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
Duel.HintSelection(g) Duel.HintSelection(g)
VgF.AtkUp(c,g,e2,nil) vgf.AtkUp(c,g,e2,nil)
if Duel.GetMatchingGroupCount(nil,tp,LOCATION_OVERLAY,0,nil)>=10 then if Duel.GetMatchingGroupCount(nil,tp,LOCATION_OVERLAY,0,nil)>=10 then
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
end end
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
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_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.SearchCard(LOCATION_DECK,cm.filter),VgF.DamageCost(1),cm.con2) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.SearchCard(LOCATION_DECK,cm.filter),vgf.DamageCost(1),cm.con2)
-- 【自】【V】:这个单位的攻击击中时,抽1张卡,选择你的1张含有「诚意真心」的后防者,这个回合中,力量+5000。 -- 【自】【V】:这个单位的攻击击中时,抽1张卡,选择你的1张含有「诚意真心」的后防者,这个回合中,力量+5000。
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.operation1,nil,VgF.VMonsterCondition) vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.operation1,nil,vgf.VMonsterCondition)
end end
function cm.con2(e) function cm.con2(e)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -5,7 +5,7 @@ function cm.initial_effect(c) ...@@ -5,7 +5,7 @@ function cm.initial_effect(c)
-- 【永】【V】:你的回合中,你没有后防者的话,这个单位的力量+5000。 -- 【永】【V】:你的回合中,你没有后防者的话,这个单位的力量+5000。
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con1) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con1)
--【自】:通过在「认真的挑战者 克拉莉萨」上RIDE的方式将这个单位登场到V时,通过【费用】[灵魂爆发1],查看你的牌堆顶的7张卡,选择至多1张等级2以下的含有「诚意真心」的卡,公开后加入手牌,将其余的卡洗切后放置到牌堆底。 --【自】:通过在「认真的挑战者 克拉莉萨」上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) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,vgf.OverlayCost(1),cm.con2)
end end
function cm.con1(e) function cm.con1(e)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -24,7 +24,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -24,7 +24,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:FilterSelect(tp,cm.filter,0,1,nil) local sg=g:FilterSelect(tp,cm.filter,0,1,nil)
if #sg > 0 then if #sg > 0 then
Duel.SendtoHand(sg,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
g:RemoveCard(vgf.ReturnCard(sg)) g:RemoveCard(vgf.ReturnCard(sg))
...@@ -35,7 +35,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,7 +35,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter(c) function cm.filter(c)
return c:IsSetCard(0xb6) and c:IsLevelBelow(3) and c:IsAbleToHand() return c:IsSetCard(0xb6) and c:IsLevelBelow(3)
end end
...@@ -4,7 +4,7 @@ function cm.initial_effect(c) ...@@ -4,7 +4,7 @@ function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
-- 【永】【V】:【永】【V】:你的回合中,你的指令区中有正面表示的歌曲卡的话,这个单位的力量+5000。 -- 【永】【V】:【永】【V】:你的回合中,你的指令区中有正面表示的歌曲卡的话,这个单位的力量+5000。
VgD.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con1) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con1)
-- 【自】:这个单位被RIDE时,选择你的牌堆或手牌中的至多1张等级2的歌曲卡,公开后放置到指令区,从牌堆探寻了的话,牌堆洗切。从手牌放置了的话,抽卡1张。 -- 【自】:这个单位被RIDE时,选择你的牌堆或手牌中的至多1张等级2的歌曲卡,公开后放置到指令区,从牌堆探寻了的话,牌堆洗切。从手牌放置了的话,抽卡1张。
vgd.BeRidedByCard(c,m,nil,cm.operation) vgd.BeRidedByCard(c,m,nil,cm.operation)
end end
...@@ -24,7 +24,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -24,7 +24,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if #g>0 then if #g>0 then
local tc=g:GetFirst() local tc=g:GetFirst()
local chk=tc:IsLocation(LOCATION_HAND) local chk=tc:IsLocation(LOCATION_HAND)
Duel.Sendto(tc,tp,LOCATION_ORDER,POS_FACEUP_ATTACK,REASON_EFFECT) vgf.Sendto(LOCATION_ORDER,tc,tp,POS_FACEUP_ATTACK,REASON_EFFECT)
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
if chk then if chk then
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
...@@ -32,7 +32,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -32,7 +32,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter(c) function cm.filter(c)
return c:IsSetCard(0xa040) and c:IsAbleToHand() and vgf.IsLevel(c,2) return c:IsSetCard(0xa040) and vgf.IsLevel(c,2)
end end
......
...@@ -4,7 +4,7 @@ local cm,m,o=GetID() ...@@ -4,7 +4,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
-- 【永】【R】:你的回合中,你的指令区中有2张以上的卡的话,这个单位的力量+5000。 -- 【永】【R】:你的回合中,你的指令区中有2张以上的卡的话,这个单位的力量+5000。
VgD.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con1) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con1)
end end
function cm.con1(e) function cm.con1(e)
......
...@@ -11,7 +11,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,7 +11,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if #g>0 then if #g>0 then
local tc=g:GetFirst() local tc=g:GetFirst()
local chk=tc:IsLocation(LOCATION_HAND) local chk=tc:IsLocation(LOCATION_HAND)
Duel.Sendto(tc,tp,LOCATION_ORDER,POS_FACEUP_ATTACK,REASON_EFFECT) vgf.Sendto(LOCATION_ORDER,tc,tp,POS_FACEUP_ATTACK,REASON_EFFECT)
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
if chk then if chk then
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
...@@ -19,5 +19,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -19,5 +19,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter(c) function cm.filter(c)
return c:IsSetCard(0xa040) and c:IsAbleToHand() and vgf.IsLevel(c,1) return c:IsSetCard(0xa040) and vgf.IsLevel(c,1)
end end
\ No newline at end of file
...@@ -24,7 +24,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -24,7 +24,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:FilterSelect(tp,cm.filter,0,1,nil) local sg=g:FilterSelect(tp,cm.filter,0,1,nil)
if #sg > 0 then if #sg > 0 then
Duel.SendtoHand(sg,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
g:RemoveCard(vgf.ReturnCard(sg)) g:RemoveCard(vgf.ReturnCard(sg))
...@@ -35,5 +35,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,5 +35,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.filter(c) function cm.filter(c)
return c:IsSetCard(0xb6) and c:IsLevelBelow(2) and c:IsAbleToHand() return c:IsSetCard(0xb6) and c:IsLevelBelow(2)
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)
VgD.Rule(c) vgd.Rule(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DELAY)
...@@ -22,7 +22,7 @@ function cm.initial_effect(c) ...@@ -22,7 +22,7 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_EMBLEM) e3:SetRange(LOCATION_EMBLEM)
e3:SetCountLimit(1) e3:SetCountLimit(1)
e3:SetCost(VgF.EnergyCost(7)) e3:SetCost(vgf.EnergyCost(7))
e3:SetOperation(cm.op3) e3:SetOperation(cm.op3)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
...@@ -39,7 +39,7 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -39,7 +39,7 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
local token2=Duel.CreateToken(tp,code) local token2=Duel.CreateToken(tp,code)
local token3=Duel.CreateToken(tp,code) local token3=Duel.CreateToken(tp,code)
local g=Group.FromCards(token1,token2,token3) local g=Group.FromCards(token1,token2,token3)
Duel.Sendto(g,tp,LOCATION_EMBLEM,POS_FACEUP_ATTACK,REASON_EFFECT) vgf.Sendto(LOCATION_EMBLEM,g,tp,POS_FACEUP_ATTACK,REASON_EFFECT)
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.GetTurnPlayer()==tp and Duel.GetMatchingGroupCount(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,code)<10 return Duel.GetTurnPlayer()==tp and Duel.GetMatchingGroupCount(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,code)<10
...@@ -55,8 +55,8 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp) ...@@ -55,8 +55,8 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local token2=Duel.CreateToken(tp,code) local token2=Duel.CreateToken(tp,code)
local token3=Duel.CreateToken(tp,code) local token3=Duel.CreateToken(tp,code)
local sg=Group.FromCards(token1,token2,token3) local sg=Group.FromCards(token1,token2,token3)
local g=VgF.GetCardsFromGroup(sg,ct) local g=vgf.GetCardsFromGroup(sg,ct)
Duel.Sendto(g,tp,LOCATION_EMBLEM,POS_FACEUP_ATTACK,REASON_EFFECT) vgf.Sendto(LOCATION_EMBLEM,g,tp,POS_FACEUP_ATTACK,REASON_EFFECT)
end end
function cm.op3(e,tp,eg,ep,ev,re,r,rp) function cm.op3(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
......
...@@ -25,11 +25,11 @@ end ...@@ -25,11 +25,11 @@ 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()
local g=VgF.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
if g then if g then
Duel.HintSelection(g) Duel.HintSelection(g)
Duel.SendtoGrave(g,REASON_EFFECT) vgf.Sendto(LOCATION_GRAVE,g,REASON_EFFECT)
end end
vgf.AtkUp(c,c,5000) vgf.AtkUp(c,c,5000)
VgF.StarUp(c,c,1) vgf.StarUp(c,c,1)
end 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