Commit 8756723c authored by jwyxym's avatar jwyxym Committed by GitHub

Add files via upload

parent 62f397c7
...@@ -102,10 +102,14 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp) ...@@ -102,10 +102,14 @@ function VgD.RideUpOperation(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetTargetRange(LOCATION_MZONE,0) e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetValue(10000) e1:SetValue(10000)
e1:SetTarget(VgD.SelfRideAtk)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
end end
function VgD.SelfRideAtk(e,c)
return vgf.IsSequence(c,0,4,5)
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
...@@ -274,16 +278,23 @@ function VgD.MonsterBattle(c) ...@@ -274,16 +278,23 @@ function VgD.MonsterBattle(c)
c:RegisterEffect(e5) c:RegisterEffect(e5)
--支援 --支援
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e6:SetRange(LOCATION_MZONE) e6:SetRange(LOCATION_MZONE)
e6:SetCode(EVENT_PRE_DAMAGE_CALCULATE) e6:SetCode(EVENT_ATTACK_ANNOUNCE)
e6:SetCondition(VgD.SupportCondition) e6:SetCondition(VgD.SupportCondition)
e6:SetOperation(VgD.SupportOperation) e6:SetOperation(VgD.SupportOperation)
c:RegisterEffect(e6) c:RegisterEffect(e6)
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_SINGLE)
e9:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e9:SetCode(EFFECT_UPDATE_ATTACK)
e9:SetRange(LOCATION_MZONE)
e9:SetValue(VgD.SupportValue)
c:RegisterEffect(e9)
--防御 --防御
local e7=Effect.CreateEffect(c) local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e7:SetCode(EVENT_ATTACK_ANNOUNCE) e7:SetCode(EVENT_BATTLE_START)
e7:SetRange(LOCATION_HAND+LOCATION_MZONE) e7:SetRange(LOCATION_HAND+LOCATION_MZONE)
e7:SetCountLimit(1) e7:SetCountLimit(1)
e7:SetCost(VgD.SendToGCost) e7:SetCost(VgD.SendToGCost)
...@@ -335,6 +346,7 @@ function VgD.MonsterBattle(c) ...@@ -335,6 +346,7 @@ function VgD.MonsterBattle(c)
e16:SetType(EFFECT_TYPE_SINGLE) e16:SetType(EFFECT_TYPE_SINGLE)
e16:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET) e16:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e16:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e16:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e16:SetRange(LOCATION_MZONE)
e16:SetCondition(VgD.MonsterCannotBeAttackedCondition) e16:SetCondition(VgD.MonsterCannotBeAttackedCondition)
e16:SetValue(VgF.True) e16:SetValue(VgF.True)
c:RegisterEffect(e16) c:RegisterEffect(e16)
...@@ -387,32 +399,42 @@ function VgD.SupportCondition(e,tp,eg,ep,ev,re,r,rp) ...@@ -387,32 +399,42 @@ function VgD.SupportCondition(e,tp,eg,ep,ev,re,r,rp)
return VgF.GetColumnGroup(Duel.GetAttacker()):IsContains(e:GetHandler()) and Duel.GetTurnPlayer()==tp and e:GetHandler():IsAttribute(SKILL_SUPPORT) return VgF.GetColumnGroup(Duel.GetAttacker()):IsContains(e:GetHandler()) and Duel.GetTurnPlayer()==tp and e:GetHandler():IsAttribute(SKILL_SUPPORT)
end end
function VgD.SupportOperation(e,tp,eg,ep,ev,re,r,rp) function VgD.SupportOperation(e,tp,eg,ep,ev,re,r,rp)
if not Duel.SelectYesNo(tp,VgF.Stringid(VgID,7)) then return end
local c=e:GetHandler() local c=e:GetHandler()
Duel.ChangePosition(c,POS_FACEUP_DEFENSE) Duel.ChangePosition(c,POS_FACEUP_DEFENSE)
local e1=Effect.CreateEffect(c) Duel.GetAttacker():RegisterFlagEffect(SupportFlag,RESET_EVENT+RESETS_STANDARD+EVENT_DAMAGE_STEP_END,0,1)
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_UPDATE_ATTACK) function VgD.SupportValue(e)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+EVENT_DAMAGE_STEP_END) if Duel.GetAttacker()~=e:GetHandler() then return 0 end
e1:SetValue(c:GetAttack()) local tp=e:GetHandlerPlayer()
Duel.GetAttacker():RegisterEffect(e1) local g=Duel.GetMatchingGroup(function (c)
return c:GetFlagEffect(SupportFlag)>0
end,tp,LOCATION_MZONE,0,nil)
local atk=0
for tc in vgf.Next(g) do
atk=atk+tc:GetAttack()
end
return atk
end end
function VgD.SendToGCost(e,tp,eg,ep,ev,re,r,rp,chk) function VgD.SendToGCost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return not c:IsPublic() and (not Duel.IsPlayerAffectedByEffect(tp,AFFECT_CODE_SendtoG) or Duel.IsExistingMatchingCard(VgF.Not(Card.IsPublic),tp,LOCATION_HAND,0,1,c)) end if c:IsLocation(LOCATION_MZONE) then
local g=Group.FromCards(c) if chk==0 then return true end
if Duel.IsPlayerAffectedByEffect(tp,AFFECT_CODE_SendtoG) and not Duel.IsExistingMatchingCard(Card.IsPublic,tp,LOCATION_HAND,0,2,nil) then else
local tc=Duel.SelectMatchingCard(tp,VgF.Not(Card.IsPublic),tp,LOCATION_HAND,0,1,1,c) if chk==0 then return not c:IsPublic() and (not Duel.IsPlayerAffectedByEffect(tp,AFFECT_CODE_SendtoG) or Duel.IsExistingMatchingCard(VgF.Not(Card.IsPublic),tp,LOCATION_HAND,0,1,c)) end
tc=VgF.ReturnCard(tc) local g=Group.FromCards(c)
e:SetLabelObject(tc) if Duel.IsPlayerAffectedByEffect(tp,AFFECT_CODE_SendtoG) and not Duel.IsExistingMatchingCard(Card.IsPublic,tp,LOCATION_HAND,0,2,nil) then
g:AddCard(tc) local tc=Duel.SelectMatchingCard(tp,VgF.Not(Card.IsPublic),tp,LOCATION_HAND,0,1,1,c)
end tc=VgF.ReturnCard(tc)
for tc in VgF.Next(g) do e:SetLabelObject(tc)
local e1=Effect.CreateEffect(c) g:AddCard(tc)
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_PUBLIC) for tc in VgF.Next(g) do
e1:SetReset(RESET_EVENT+RESETS_STANDARD+EVENT_CHAIN_SOLVED) local e1=Effect.CreateEffect(c)
tc:RegisterEffect(e1) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+EVENT_CHAIN_SOLVED)
tc:RegisterEffect(e1)
end
end end
end end
function VgD.SendToGCondition(e,tp,eg,ep,ev,re,r,rp) function VgD.SendToGCondition(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -882,6 +882,7 @@ AttackTriggerFlag =VgID+1 --多次攻击判定标识 ...@@ -882,6 +882,7 @@ AttackTriggerFlag =VgID+1 --多次攻击判定标识
DamageTriggerFlag =VgID+2 --多次伤害判定标识 DamageTriggerFlag =VgID+2 --多次伤害判定标识
DefenseEntirelyFlag =VgID+3 --完全防御标识 DefenseEntirelyFlag =VgID+3 --完全防御标识
ConditionFlag =VgID+4 --处于XX状态标识 ConditionFlag =VgID+4 --处于XX状态标识
SupportFlag =VgID+5 --支援状态标识
--AffectedByEffect --AffectedByEffect
AFFECT_CODE_MIX =VgID --魔合成 AFFECT_CODE_MIX =VgID --魔合成
AFFECT_CODE_SendtoG =VgID+1 -- AFFECT_CODE_SendtoG =VgID+1 --
......
...@@ -253,7 +253,7 @@ function VgF.EnegyCost(num) ...@@ -253,7 +253,7 @@ function VgF.EnegyCost(num)
if chk==0 then if chk==0 then
return Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_EMBLEM,0,num,nil,10800730) return Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_EMBLEM,0,num,nil,10800730)
end end
local g=Duel.SelectMatchingCard(tp,Card.IsCode,tp,LOCATION_EMBLEM,0,1,1,nil,10800730) local g=Duel.SelectMatchingCard(tp,Card.IsCode,tp,LOCATION_EMBLEM,0,num,num,nil,10800730)
Duel.Sendto(g,tp,0,POS_FACEUP,REASON_COST) Duel.Sendto(g,tp,0,POS_FACEUP,REASON_COST)
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)
vgf.AddCodeList(c,10101009) vgf.AddCodeList(c,10101009)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation2,nil,vgf.RMonsterCondition) 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+m,cm.operation3,vgf.OverlayCost(2),cm.condition3) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+m,cm.operation3,vgf.OverlayCost(2),cm.condition3)
end end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp) function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
...@@ -19,6 +19,10 @@ function cm.operation3(e,tp,eg,ep,ev,re,r,rp) ...@@ -19,6 +19,10 @@ function cm.operation3(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(g,REASON_EFFECT) Duel.SendtoGrave(g,REASON_EFFECT)
end end
end end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return vgf.RMonsterCondition(e) and c:GetFlagEffectLabel(ConditionFlag)==201 and vgf.VMonsterFilter(Duel.GetAttackTarget())
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
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