Commit e164f5ae authored by jwyxym's avatar jwyxym Committed by GitHub

Add files via upload

parent db2f76c1
...@@ -561,9 +561,7 @@ function VgD.CardTriggerOperation(chkop,f) ...@@ -561,9 +561,7 @@ function VgD.CardTriggerOperation(chkop,f)
VgF.AtkUp(c,g,10000,nil) VgF.AtkUp(c,g,10000,nil)
elseif c:IsRace(TRRIGGER_ADVANCE) then elseif c:IsRace(TRRIGGER_ADVANCE) then
local g=Duel.GetMatchingGroup(VgF.IsSequence,tp,LOCATION_MZONE,0,nil,0,4,5) local g=Duel.GetMatchingGroup(VgF.IsSequence,tp,LOCATION_MZONE,0,nil,0,4,5)
for tc in VgF.Next(g) do VgF.AtkUp(c,tc,10000,nil)
VgF.AtkUp(c,tc,10000,nil)
end
end end
if chkop==0 then if chkop==0 then
if c:IsRace(TRRIGGER_SUPER) then if c:IsRace(TRRIGGER_SUPER) then
...@@ -707,7 +705,7 @@ function VgD.SpellActivate(c,m,op,con,specialchk,num1,num2,num3,num4,num5) ...@@ -707,7 +705,7 @@ function VgD.SpellActivate(c,m,op,con,specialchk,num1,num2,num3,num4,num5)
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:SetCost(VgD.SpellCost(num1,num2,num3,num4,num5)) e1:SetCost(VgD.SpellCost(num1,num2,num3,num4,num5))
if VgF.GetValueType(con)=="function" then e1:SetCondition(con) end e1:SetCondition(VgD.SpellCondtion(con))
e1:SetOperation(VgD.SpellOperation(op)) e1:SetOperation(VgD.SpellOperation(op))
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
...@@ -830,6 +828,12 @@ function VgD.SpellCostOp(e,tp,eg,ep,ev,re,r,rp,chk,c,mc,num1,num2,num3,num4,num5 ...@@ -830,6 +828,12 @@ function VgD.SpellCostOp(e,tp,eg,ep,ev,re,r,rp,chk,c,mc,num1,num2,num3,num4,num5
Duel.ChangePosition(g,POS_FACEDOWN) Duel.ChangePosition(g,POS_FACEDOWN)
end end
end end
function VgD.SpellCondtion(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
return VgF.LvCondition(e)
end
end
function VgD.SpellOperation(op) function VgD.SpellOperation(op)
return function (e,tp,eg,ep,ev,re,r,rp,bool) return function (e,tp,eg,ep,ev,re,r,rp,bool)
if op then op(e,tp,eg,ep,ev,re,r,rp) end if op then op(e,tp,eg,ep,ev,re,r,rp) end
...@@ -880,14 +884,14 @@ function VgD.BeRidedByCardOpCondtion(e,tp,eg,ep,ev,re,r,rp) ...@@ -880,14 +884,14 @@ function VgD.BeRidedByCardOpCondtion(e,tp,eg,ep,ev,re,r,rp)
return eg:GetFirst()==e:GetHandler() return eg:GetFirst()==e:GetHandler()
end end
function VgD.EffectTypeTrigger(c,m,loc,type,code,op,cost,con,tg,count,property) function VgD.EffectTypeTrigger(c,m,loc,typ,code,op,cost,con,tg,count,property)
local type2=EFFECT_TYPE_TRIGGER_F local type2=EFFECT_TYPE_TRIGGER_F
if VgF.GetValueType(cost)=="function" then type2=EFFECT_TYPE_TRIGGER_O end if VgF.GetValueType(cost)=="function" then type2=EFFECT_TYPE_TRIGGER_O end
if not type then type=EFFECT_TYPE_SINGLE end if not typ then typ=EFFECT_TYPE_SINGLE end
if not loc then loc=LOCATION_MZONE end if not loc then loc=LOCATION_MZONE end
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(VgF.Stringid(m,0)) e1:SetDescription(VgF.Stringid(m,0))
e1:SetType(type+type2) e1:SetType(typ+type2)
e1:SetRange(loc) e1:SetRange(loc)
e1:SetCode(code) e1:SetCode(code)
if property and property>0 then e1:SetProperty(property) end if property and property>0 then e1:SetProperty(property) end
......
...@@ -3,6 +3,7 @@ vgf=VgF ...@@ -3,6 +3,7 @@ vgf=VgF
function VgF.VgCard(c) function VgF.VgCard(c)
VgD.Rule(c) VgD.Rule(c)
VgF.DefineArguments()
if c:IsType(TYPE_MONSTER) then if c:IsType(TYPE_MONSTER) then
VgD.RideUp(c) VgD.RideUp(c)
VgD.CallToR(c) VgD.CallToR(c)
...@@ -19,6 +20,18 @@ end ...@@ -19,6 +20,18 @@ end
function VgF.Stringid(code,id) function VgF.Stringid(code,id)
return code*16+id return code*16+id
end end
function VgF.DefineArguments()
if not loc then loc=nil end
if not typ then typ=nil end
if not count then count=nil end
if not property then property=nil end
if not reset then reset=nil end
if not op then op=nil end
if not cost then cost=nil end
if not con then con=nil end
if not tg then tg=nil end
if not f then f=nil end
end
function VgF.SequenceToGlobal(p,loc,seq) function VgF.SequenceToGlobal(p,loc,seq)
if p~=0 and p~=1 then if p~=0 and p~=1 then
return 0 return 0
...@@ -109,10 +122,10 @@ end ...@@ -109,10 +122,10 @@ end
function VgF.RMonsterFilter(c) function VgF.RMonsterFilter(c)
return c:GetSequence()<5 return c:GetSequence()<5
end end
function VgF.RMonsterCondition(e,c) function VgF.RMonsterCondition(e)
return VgF.RMonsterFilter(e:GetHandler()) return VgF.RMonsterFilter(e:GetHandler())
end end
function VgF.VMonsterCondition(e,c) function VgF.VMonsterCondition(e)
return VgF.VMonsterFilter(e:GetHandler()) return VgF.VMonsterFilter(e:GetHandler())
end end
function VgF.IsLevel(c,...) function VgF.IsLevel(c,...)
...@@ -191,7 +204,7 @@ function VgF.tgoval(e,re,rp) ...@@ -191,7 +204,7 @@ function VgF.tgoval(e,re,rp)
return rp==1-e:GetHandlerPlayer() return rp==1-e:GetHandlerPlayer()
end end
function VgF.Call(g,sumtype,sp,zone) function VgF.Call(g,sumtype,sp,zone)
if not zone then zone=0x3f end if not zone then zone=0x1f end
return Duel.SpecialSummon(g,sumtype,sp,sp,true,true,POS_FACEUP_ATTACK,zone) return Duel.SpecialSummon(g,sumtype,sp,sp,true,true,POS_FACEUP_ATTACK,zone)
end end
function VgF.LvCondition(e) function VgF.LvCondition(e)
...@@ -207,6 +220,17 @@ function VgF.AtkUp(c,g,val,reset) ...@@ -207,6 +220,17 @@ function VgF.AtkUp(c,g,val,reset)
if not c or not g then return end if not c or not g then return end
if not reset then reset=RESET_PHASE+PHASE_END end if not reset then reset=RESET_PHASE+PHASE_END end
if not val or val==0 then return end if not val or val==0 then return end
if VgF.GetValueType(g)=="Group" and g:GetCount()>0 then
for tc in VgF.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(val)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+reset)
tc:RegisterEffect(e1)
end
return
end
local tc=VgF.ReturnCard(g) local tc=VgF.ReturnCard(g)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -219,6 +243,22 @@ function VgF.StarUp(c,g,val,reset) ...@@ -219,6 +243,22 @@ function VgF.StarUp(c,g,val,reset)
if not c or not g then return end if not c or not g then return end
if not reset then reset=RESET_PHASE+PHASE_END end if not reset then reset=RESET_PHASE+PHASE_END end
if not val or val==0 then return end if not val or val==0 then return end
if VgF.GetValueType(g)=="Group" and g:GetCount()>0 then
for tc in VgF.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(val)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+reset)
tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_RSCALE)
tc:RegisterEffect(e2)
end
return
end
local tc=VgF.ReturnCard(g) local tc=VgF.ReturnCard(g)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
...@@ -13,13 +13,11 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,13 +13,11 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Group.FromCards(c) local g=Group.FromCards(c)
local sg=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_MZONE,0,nil,0x201) local sg=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_MZONE,0,nil,0x201)
if sg then g:Merge(sg) end if sg then g:Merge(sg) end
for tc in VgF.Next(g) do vgf.AtkUp(c,g,10000)
VgF.AtkUp(c,tc,10000,nil)
end
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=Duel.GetMatchingGroup(nil,tp,LOCATION_DAMAGE,0,nil) local g=Duel.GetMatchingGroup(nil,tp,LOCATION_DAMAGE,0,nil)
for tc in VgF.Next(g) do for tc in vgf.Next(g) do
Duel.ChangePosition(tc,POS_FACEDOWN) Duel.ChangePosition(tc,POS_FACEDOWN)
end end
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