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

Add files via upload

parent b8452856
...@@ -32,8 +32,9 @@ function VgD.DisCardRideUpFilter(c,e,lv,code,rc) ...@@ -32,8 +32,9 @@ function VgD.DisCardRideUpFilter(c,e,lv,code,rc)
return c:IsDiscardable() and Duel.IsExistingMatchingCard(VgD.RideUpFilter1,tp,LOCATION_HAND+LOCATION_RIDE,0,1,c,e,lv,code,rc) return c:IsDiscardable() and Duel.IsExistingMatchingCard(VgD.RideUpFilter1,tp,LOCATION_HAND+LOCATION_RIDE,0,1,c,e,lv,code,rc)
end end
function VgD.RideUpFilter2(c,e,lv,code,rc) function VgD.RideUpFilter2(c,e,lv,code,rc)
if rc:GetMaterial():GetCode()==rc:GetCode() and rc:IsAttribute(SKILL_SELF_RIDE) then return end if rc:IsSummonType(SUMMON_TYPE_SELFRIDE) then return end
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_RIDE,tp,false,false,POS_FACEUP_ATTACK) 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)
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()
...@@ -98,7 +99,7 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp) ...@@ -98,7 +99,7 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp)
end end
sc:SetMaterial(Group.FromCards(rc)) sc:SetMaterial(Group.FromCards(rc))
Duel.Overlay(sc,Group.FromCards(rc)) Duel.Overlay(sc,Group.FromCards(rc))
VgF.Call(sc,SUMMON_TYPE_RIDE,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)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
...@@ -468,7 +469,7 @@ function VgD.GToGraveOperation(e,tp,eg,ep,ev,re,r,rp) ...@@ -468,7 +469,7 @@ function VgD.GToGraveOperation(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(c,REASON_RULE) Duel.SendtoGrave(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) return e:GetHandler():IsPosition(POS_DEFENSE) or (VgF.IsSequence(e:GetHandler(),1,2,3) and e:GetHandler():GetFlagEffect(AttackAtRearFlag)==0)
end end
function VgD.MonsterAttackCondition(e,tp,eg,ep,ev,re,r,rp) function VgD.MonsterAttackCondition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -670,6 +671,13 @@ function VgD.Rule(c) ...@@ -670,6 +671,13 @@ function VgD.Rule(c)
local e15=e12:Clone() local e15=e12:Clone()
e15:SetCode(EFFECT_CANNOT_SSET) e15:SetCode(EFFECT_CANNOT_SSET)
c:RegisterEffect(e15) c:RegisterEffect(e15)
local e16=Effect.CreateEffect(c)
e16:SetType(EFFECT_TYPE_FIELD)
e16:SetCode(EFFECT_QP_ACT_IN_NTPHAND)
e16:SetRange(LOCATION_ALL)
e16:SetCondition(VgF.RuleCardCondtion)
e16:SetTargetRange(LOCATION_HAND,0)
c:RegisterEffect(e16)
end end
function VgD.EventRideStart(e,tp,eg,ep,ev,re,r,rp) function VgD.EventRideStart(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -710,7 +718,7 @@ function VgD.RuelDrawOperation(e,tp,eg,ep,ev,re,r,rp) ...@@ -710,7 +718,7 @@ function VgD.RuelDrawOperation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
--指令卡cost --指令卡
function VgD.SpellActivate(c,m,op,con,specialchk,num1,num2,num3,num4,num5) function VgD.SpellActivate(c,m,op,con,specialchk,num1,num2,num3,num4,num5)
if not specialchk then specialchk=0 end if not specialchk then specialchk=0 end
if not num1 then num1=0 end if not num1 then num1=0 end
...@@ -815,12 +823,6 @@ function VgD.SpellCostOp(e,tp,eg,ep,ev,re,r,rp,chk,c,mc,num1,num2,num3,num4,num5 ...@@ -815,12 +823,6 @@ function VgD.SpellCostOp(e,tp,eg,ep,ev,re,r,rp,chk,c,mc,num1,num2,num3,num4,num5
if mc.Vg_OverLay>0 then num3=num3+mc.Vg_OverLay end if mc.Vg_OverLay>0 then num3=num3+mc.Vg_OverLay end
if mc.Vg_OverLayFill>0 then num4=num4+mc.Vg_OverLayFill end if mc.Vg_OverLayFill>0 then num4=num4+mc.Vg_OverLayFill end
if mc.Vg_Damage>0 then num5=num5+mc.Vg_Damage end if mc.Vg_Damage>0 then num5=num5+mc.Vg_Damage end
local t={}
for i, v in ipairs(t) do
if mc.Vg_SpecialCost==v then
local a
end
end
end end
if num1>0 then if num1>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
...@@ -942,4 +944,15 @@ end ...@@ -942,4 +944,15 @@ end
function VgD.EffectTypeTriggerWhenHitting(c,m,loc,typ,op,cost,con,tg,count,property,stringid) function VgD.EffectTypeTriggerWhenHitting(c,m,loc,typ,op,cost,con,tg,count,property,stringid)
VgD.EffectTypeTrigger(c,m,loc,typ,EVENT_CUSTOM+EVENT_DAMAGE_TRIGGER,op,cost,con,tg,count,property,stringid) VgD.EffectTypeTrigger(c,m,loc,typ,EVENT_CUSTOM+EVENT_DAMAGE_TRIGGER,op,cost,con,tg,count,property,stringid)
VgD.EffectTypeTrigger(c,m,loc,typ,EVENT_BATTLE_DESTROYING,op,cost,con,tg,count,property,stringid) VgD.EffectTypeTrigger(c,m,loc,typ,EVENT_BATTLE_DESTROYING,op,cost,con,tg,count,property,stringid)
end end
\ No newline at end of file function VgD.QuickSpell(c,code,op,cost,con,tg)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(code)
e1:SetProperty(EFFECT_FLAG_DELAY)
if VgF.GetValueType(con)=="function" then e1:SetCondition(con) end
if VgF.GetValueType(cost)=="function" then e1:SetCost(cost) end
if VgF.GetValueType(tg)=="function" then e1:SetTarget(tg) end
if VgF.GetValueType(op)=="function" then e1:SetOperation(op) end
c:RegisterEffect(e1)
end
...@@ -139,7 +139,7 @@ SUMMON_TYPE_FLIP =0x20000000 --翻转召唤 ...@@ -139,7 +139,7 @@ SUMMON_TYPE_FLIP =0x20000000 --翻转召唤
SUMMON_TYPE_SPECIAL =0x40000000 --特殊召唤(EFFECT_SPSUMMON_PROC,EFFECT_SPSUMMON_PROC_G 可用Value修改數值) SUMMON_TYPE_SPECIAL =0x40000000 --特殊召唤(EFFECT_SPSUMMON_PROC,EFFECT_SPSUMMON_PROC_G 可用Value修改數值)
SUMMON_TYPE_FUSION =0x43000000 --融合召唤 SUMMON_TYPE_FUSION =0x43000000 --融合召唤
SUMMON_TYPE_RITUAL =0x45000000 --仪式召唤 SUMMON_TYPE_RITUAL =0x45000000 --仪式召唤
SUMMON_TYPE_SYNCHRO =0x46000000 --同调召唤 SUMMON_TYPE_SELFRIDE =0x46000000 --人格骑升
SUMMON_TYPE_RIDE =0x49000000 --骑升 SUMMON_TYPE_RIDE =0x49000000 --骑升
--SUMMON_TYPE_CALL =0x4a000000 --Call到R位 --SUMMON_TYPE_CALL =0x4a000000 --Call到R位
SUMMON_TYPE_LINK =0x4c000000 --连接召唤 SUMMON_TYPE_LINK =0x4c000000 --连接召唤
...@@ -883,6 +883,7 @@ DamageTriggerFlag =VgID+2 --多次伤害判定标识 ...@@ -883,6 +883,7 @@ DamageTriggerFlag =VgID+2 --多次伤害判定标识
DefenseEntirelyFlag =VgID+3 --完全防御标识 DefenseEntirelyFlag =VgID+3 --完全防御标识
ConditionFlag =VgID+4 --处于XX状态标识 ConditionFlag =VgID+4 --处于XX状态标识
SupportFlag =VgID+5 --支援状态标识 SupportFlag =VgID+5 --支援状态标识
AttackAtRearFlag =VgID+6 --后列攻击
--AffectedByEffect --AffectedByEffect
AFFECT_CODE_MIX =VgID --魔合成 AFFECT_CODE_MIX =VgID --魔合成
AFFECT_CODE_SENDTOG =VgID+1 -- AFFECT_CODE_SENDTOG =VgID+1 --
......
...@@ -327,6 +327,7 @@ function VgF.OverlayCost(num) ...@@ -327,6 +327,7 @@ function VgF.OverlayCost(num)
if chk==0 then if chk==0 then
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():GetOverlayGroup():FilterCount(Card.IsAbleToGraveAsCost,nil)>=num
end end
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():FilterSelect(tp,Card.IsAbleToGraveAsCost,num,num,nil)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
......
...@@ -7,14 +7,15 @@ function cm.initial_effect(c) ...@@ -7,14 +7,15 @@ function cm.initial_effect(c)
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 ct=1
if c:IsSummonType(SUMMON_TYPE_SELFRIDE) then ct=3 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP)
local g=Duel.SelectMatchingCard(tp,vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,ct,nil)
if g then if g then
Duel.Hintselectgion(g) Duel.Hintselectgion(g)
--可以从后列攻击 for tc in vgf.Next(g) do
tc:RegisterFlagEffect(AttackAtRearFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,vgf.Stringid(VgID,10))
end
vgF.AtkUp(c,g,5000,nil) vgF.AtkUp(c,g,5000,nil)
end end
end end
--未写效果 \ No newline at end of file
--1.可以从后列攻击
--2.进行了人格ride的话,不是选择1张,而是选择3张
\ No newline at end of file
...@@ -4,6 +4,15 @@ function cm.initial_effect(c) ...@@ -4,6 +4,15 @@ function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--【自】:这个单位被「树角兽 拉提斯」RIDE时,将你的牌堆顶的1张卡公开,那张卡是等级2以下的单位卡的话,CALL到R上,不是的话,放置到你的灵魂里。 --【自】:这个单位被「树角兽 拉提斯」RIDE时,将你的牌堆顶的1张卡公开,那张卡是等级2以下的单位卡的话,CALL到R上,不是的话,放置到你的灵魂里。
vgd.BeRidedByCard(c,m,10104002,cm.operation) vgd.BeRidedByCard(c,m,10104002,cm.operation)
--【永】【后列的R】:这个单位攻击的战斗中,这个单位的力量+5000。
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.con)
e1:SetValue(5000)
c:RegisterEffect(e1)
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()
...@@ -17,5 +26,6 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -17,5 +26,6 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Overlay(c,g) Duel.Overlay(c,g)
end end
end end
--少一个永效果 function cm.con(e)
--【永】【后列的R】:这个单位攻击的战斗中,这个单位的力量+5000。 return Duel.GetAttacker()==e:GetHandler() and vgf.IsSequence(c,1,2,3)
\ No newline at end of file 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)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.con)
e1:SetValue(5000)
c:RegisterEffect(e1)
end end
function cm.con(e)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
return vgf.RMonsterCondition(e) and Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,4,c)
end
\ No newline at end of file
...@@ -13,10 +13,15 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,10 +13,15 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetCode(EFFECT_ADD_ATTRIBUTE) e2:SetCode(EFFECT_ADD_ATTRIBUTE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetValue(SKILL_SUPPORT) e2:SetValue(SKILL_SUPPORT)
e2:SetCondition(cm.condition) e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp) 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
end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DAMAGE)
--未写效果的【费用】[计数爆发1,灵魂爆发1] local g1=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
\ No newline at end of file Duel.ChangePosition(g1,POS_FACEDOWN)
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)
Duel.SendtoGrave(g2,REASON_COST)
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)
--(闪现指令只能在你能将防卫者CALL出场的时段施放。)
--选择你的1个单位,这次战斗中,力量+5000。后列的你的后防者有3张以上的话,不+5000,而是+15000。
vgd.QuickSpell(c,EVENT_MOVE,cm.op,nil,cm.con)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
local atk=5000
if Duel.IsExistingMatchingCard(vgf.IsSequence,tp,LOCATION_MZONE,0,3,nil,1,2,3) then atk=15000 end
if g then
Duel.HintSelection(g)
vgf.AtkUp(c,g,atk)
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not eg:IsExists(vgf.Not(Card.IsLocation),1,nil,LOCATION_GRAVE)
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,op,con,cm.cost)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk,chkc,mg)
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND,0,mg,TYPE_MONSTER)
if chkc then return g end
if chk==0 then return g:GetCount()>0 end
g:Select(tp,1,1,nil)
Duel.SendtoGrave(g,REASON_COST)
end end
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