Commit 75e1e468 authored by xiaoye's avatar xiaoye

fix

parent 20c6885c
...@@ -332,7 +332,8 @@ function VgD.MonsterBattle(c) ...@@ -332,7 +332,8 @@ function VgD.MonsterBattle(c)
e8:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e8:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e8:SetCode(EVENT_DAMAGE_STEP_END) e8:SetCode(EVENT_DAMAGE_STEP_END)
e8:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_DELAY) e8:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_DELAY)
e8:SetRange(LOCATION_GZONE) e8:SetRange(LOCATION_ALL)
e8:SetCondition(VgF.RuleCardCondtion)
e8:SetOperation(VgD.GToGraveOperation) e8:SetOperation(VgD.GToGraveOperation)
c:RegisterEffect(e8) c:RegisterEffect(e8)
--其他永续 --其他永续
...@@ -485,8 +486,8 @@ function VgD.SendToGOperation(e,tp,eg,ep,ev,re,r,rp) ...@@ -485,8 +486,8 @@ function VgD.SendToGOperation(e,tp,eg,ep,ev,re,r,rp)
VgF.Sendto(LOCATION_GZONE,g,tp,POS_FACEUP,REASON_EFFECT) 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 g=Duel.GetFieldGroup(tp,LOCATION_GZONE,0)
VgF.Sendto(LOCATION_DROP,c,REASON_RULE) if g:GetCount()>0 then VgF.Sendto(LOCATION_DROP,g,REASON_RULE) end
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)
...@@ -708,7 +709,7 @@ function VgD.Rule(c) ...@@ -708,7 +709,7 @@ function VgD.Rule(c)
e16:SetCode(EFFECT_QP_ACT_IN_NTPHAND) e16:SetCode(EFFECT_QP_ACT_IN_NTPHAND)
e16:SetRange(LOCATION_ALL) e16:SetRange(LOCATION_ALL)
e16:SetCondition(VgF.RuleCardCondtion) e16:SetCondition(VgF.RuleCardCondtion)
e16:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE) e16:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e16:SetTargetRange(LOCATION_HAND,0) e16:SetTargetRange(LOCATION_HAND,0)
c:RegisterEffect(e16) c:RegisterEffect(e16)
end end
...@@ -961,7 +962,7 @@ function VgD.EffectTypeTriggerWhenHittingCon(typ,con,p) ...@@ -961,7 +962,7 @@ function VgD.EffectTypeTriggerWhenHittingCon(typ,con,p)
return true return true
end end
end end
function VgD.QuickSpell(c,code,op,cost,con,tg) function VgD.QuickSpell(c,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)
......
...@@ -682,7 +682,7 @@ EVENT_SING =VgID+6 --演唱时 ...@@ -682,7 +682,7 @@ EVENT_SING =VgID+6 --演唱时
--攻击时(EVENT_ATTACK_ANNOUNCE) --攻击时(EVENT_ATTACK_ANNOUNCE)
--支援时(EVENT_CUSTOM+EVENT_SUPPORT) --支援时(EVENT_CUSTOM+EVENT_SUPPORT)
--截击|放置到G(EVENT_MOVE) --截击|放置到G(EVENT_MOVE)
--攻击击中时(EVENT_CUSTOM+EVENT_DAMAGE|EVENT_BATTLE_DESTROYING) --攻击击中时(EVENT_CUSTOM+EVENT_DAMAGE_TRIGGER|EVENT_BATTLE_DESTROYING)
--战斗结束时(EVENT_BATTLED) --战斗结束时(EVENT_BATTLED)
--Hint --Hint
......
...@@ -875,7 +875,25 @@ function VgF.Sendto(loc,sg,...) ...@@ -875,7 +875,25 @@ function VgF.Sendto(loc,sg,...)
end end
if loc==LOCATION_DROP then if loc==LOCATION_DROP then
AddOverlayGroup(g) AddOverlayGroup(g)
return Duel.SendtoGrave(g,...) local function repfilter(c,tp)
return c:IsControler(tp) and (c:IsLocation(LOCATION_GZONE) or vgf.RMonsterFilter(c)) and c:IsType(TYPE_MONSTER) and c:GetLevel()%2==1
end
local print=0
for tp=0,1 do
local replace_to_overlay_group=g:Filter(repfilter,nil,tp)
local ct=replace_to_overlay_group:GetCount()
if Duel.IsPlayerAffectedByEffect(tp,10501118) and ct>0 and Duel.SelectYesNo(tp,VgF.Stringid(10501118,0)) then
if ct>1 then replace_to_overlay_group=replace_to_overlay_group:Select(tp,1,ct,nil) end
local ct1=VgF.Sendto(LOCATION_OVERLAY,replace_to_overlay_group,VgF.GetVMonster(tp))
print=print+ct1
g:Sub(replace_to_overlay_group)
end
end
if g:GetCount()>0 then
local ct=Duel.SendtoGrave(g,...)
print=print+ct
end
return print
elseif loc==LOCATION_DECK then elseif loc==LOCATION_DECK then
return Duel.SendtoDeck(g,...) return Duel.SendtoDeck(g,...)
elseif loc==LOCATION_HAND then elseif loc==LOCATION_HAND then
......
...@@ -11,7 +11,6 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,7 +11,6 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local atk=5000 local atk=5000
if Duel.IsExistingMatchingCard(vgf.IsSequence,tp,LOCATION_MZONE,0,3,nil,1,2,3) then atk=15000 end if Duel.IsExistingMatchingCard(vgf.IsSequence,tp,LOCATION_MZONE,0,3,nil,1,2,3) then atk=15000 end
if g then if g then
Duel.HintSelection(g)
vgf.AtkUp(c,g,atk) vgf.AtkUp(c,g,atk)
end end
end end
\ No newline at end of file
...@@ -2,7 +2,7 @@ local cm,m,o=GetID() ...@@ -2,7 +2,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,2000,con) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,2000,con)
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,con,tg,c,EFFECT_UPDATE_DEFENSE,reset,LOCATION_DROP) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,con,tg,c,EFFECT_UPDATE_DEFENSE,reset,LOCATION_GZONE)
end end
function cm.con(e,c) function cm.con(e,c)
local tp=e:GetHandler() local tp=e:GetHandler()
......
...@@ -3,33 +3,23 @@ local cm,m,o=GetID() ...@@ -3,33 +3,23 @@ local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
-- 【自】:这个单位被RIDE时,通过【费用】[将手牌中的1张卡放置到灵魂里],从你的牌堆里探寻至多1张宝石卡,公开后加入手牌,然后牌堆洗切。 -- 【自】:这个单位被RIDE时,通过【费用】[将手牌中的1张卡放置到灵魂里],从你的牌堆里探寻至多1张宝石卡,公开后加入手牌,然后牌堆洗切。
vgd.BeRidedByCard(c,m,nil,cm.op1,cm.cost1) vgd.BeRidedByCard(c,m,nil,vgf.SearchCard(LOCATION_HAND,LOCATION_DECK,cm.filter,1,0),cm.cost1)
-- 【自】【R】:你施放指令卡时,通过【费用】[灵魂爆发1],这个回合中,这个单位的力量+5000。 -- 【自】【R】:你施放指令卡时,通过【费用】[灵魂爆发1],这个回合中,这个单位的力量+5000。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CHAINING,VgF.AtkUp(c,c,5000),VgF.OverlayCost(1),cm.con) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CHAINING,cm.op,VgF.OverlayCost(1),cm.con)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
function cm.op1(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) VgF.AtkUp(c,c,5000)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,0,1,nil)
if #g>0 then
local tc = g:GetFirst()
Duel.Sendto(tc,tp,LOCATION_HAND,nil,REASON_EFFECT)
end
Duel.ShuffleDeck(tp)
end end
function cm.filter(c) function cm.filter(c)
return c:IsCode(0xc040) and c:IsAbleToHand() return c:IsCode(0xc040) and c:IsAbleToHand()
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)
if chk==0 then return Duel.GetMatchingGroupCount(nil,tp,0,LOCATION_HAND,nil)>=1 end if chk==0 then return Duel.GetMatchingGroupCount(nil,tp,LOCATION_HAND,0,nil)>0 end
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=vgf.GetVMonster(tp)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_HAND,0,1,1,nil,e,tp) local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,tp,nil,tp,LOCATION_HAND,0,1,1,nil,e,tp)
Duel.HintSelection(g) vgf.Sendto(LOCATION_OVERLAY,g,rc)
Duel.Overlay(rc,g)
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 re:IsHasType(EFFECT_TYPE_ACTIVATE) and rp==tp and vgf.RMonsterCondition(e) return re:IsHasType(EFFECT_TYPE_ACTIVATE) and rp==tp and vgf.RMonsterCondition(e)
end end
...@@ -8,12 +8,13 @@ end ...@@ -8,12 +8,13 @@ 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.RMonsterCondition(e) and eg:IsExists(cm.filter,1,nil,tp) return VgF.RMonsterCondition(e) and eg:IsExists(cm.filter,1,nil,tp,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()
vgf.AtkUp(c,c,2000) vgf.AtkUp(c,c,2000)
end end
function cm.filter(c) function cm.filter(c,tp,mc)
return c:IsExists(VgF.GetColumnGroup) local g=VgF.GetColumnGroup(mc)
return g:GetCount()>0 and g:IsContains(c)
end end
\ No newline at end of file
...@@ -5,12 +5,9 @@ function cm.initial_effect(c) ...@@ -5,12 +5,9 @@ function cm.initial_effect(c)
-- 【起】【R】【1回合1次】:通过【费用】[计数爆发1],选择你的1张先导者,这个回合中,力量+5000。 -- 【起】【R】【1回合1次】:通过【费用】[计数爆发1],选择你的1张先导者,这个回合中,力量+5000。
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.op,vgf.DamageCost(1),vgf.RMonsterCondition,nil,1) vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.op,vgf.DamageCost(1),vgf.RMonsterCondition,nil,1)
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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP)
-- 选择你的1张先导者 -- 选择你的1张先导者
local g=Duel.SelectMatchingCard(tp,VgF.VMonsterFilter,tp,LOCATION_MZONE,0,1,1,c) local g=vgf.SelectMatchingCard(HINTMSG_VMONSTER,tp,VgF.VMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.HintSelection(g)
vgf.AtkUp(c,g,5000) vgf.AtkUp(c,g,5000)
end end
\ No newline at end of file
...@@ -6,12 +6,10 @@ function cm.initial_effect(c) ...@@ -6,12 +6,10 @@ function cm.initial_effect(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.op,nil,cm.con) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.op,nil,cm.con)
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.RMonsterFilter(c) return vgf.RMonsterFilter(c) and eg:IsContains(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()
vgf.AtkUp(c,c,2000) vgf.AtkUp(c,c,2000)
......
...@@ -25,13 +25,12 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -25,13 +25,12 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
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
vgf.Sendto(LOCATION_HAND,sg,nil,REASON_EFFECT) vgf.Sendto(LOCATION_HAND,sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp)
g:RemoveCard(vgf.ReturnCard(sg)) g:RemoveCard(vgf.ReturnCard(sg))
end end
for i=1,#g do while g:GetCount()>0 do
local dg=Duel.GetDecktopGroup(tp,1) local dg=g:RandomSelect(tp,1)
Duel.MoveSequence(dg:GetFirst(),SEQ_DECKBOTTOM) Duel.MoveSequence(dg:GetFirst(),SEQ_DECKBOTTOM)
g:Sub(dg)
end end
end end
function cm.filter(c) function cm.filter(c)
......
...@@ -6,25 +6,18 @@ function cm.initial_effect(c) ...@@ -6,25 +6,18 @@ function cm.initial_effect(c)
VgD.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,2000,cm.con1) VgD.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,2000,cm.con1)
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con2,tg,EFFECT_UPDATE_DEFENSE,reset,LOCATION_GZONE) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con2,tg,EFFECT_UPDATE_DEFENSE,reset,LOCATION_GZONE)
end end
function cm.con1(e,tp,eg,ep,ev,re,r,rp) function cm.con1(e,tp,eg,ep,ev,re,r,rp)
local a = Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil) return cm.con2(e,tp,eg,ep,ev,re,r,rp) and vgf.RMonsterCondition(e)
local b = Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
return not a and b and vgf.RMonsterCondition(e)
end end
function cm.con2(e,tp,eg,ep,ev,re,r,rp) function cm.con2(e,tp,eg,ep,ev,re,r,rp)
local a = Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil) local a=Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil)
local b = Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil) local b=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效) -- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
return not a and b return not a and b
end end
function cm.filter1(c) function cm.filter1(c)
return c:getlevel() % 2 == 1 return c:GetLevel()%2==1
end end
function cm.filter2(c) function cm.filter2(c)
return c:getlevel() % 2 == 0 return c:GetLevel()%2==0
end end
\ No newline at end of file
...@@ -5,24 +5,15 @@ function cm.initial_effect(c) ...@@ -5,24 +5,15 @@ function cm.initial_effect(c)
-- 【自】:这个单位登场到R时,你的R上有其他的〈幽灵〉的话,选择你的1张后防者,这个回合中,力量+5000。 -- 【自】:这个单位登场到R时,你的R上有其他的〈幽灵〉的话,选择你的1张后防者,这个回合中,力量+5000。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,nil,cm.con) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,nil,cm.con)
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()
-- 选择你的1张后防者 local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,tp,vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP)
local g=Duel.SelectMatchingCard(tp,vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.HintSelection(g)
-- 这个回合中,力量+5000。
vgf.AtkUp(c,g,5000) vgf.AtkUp(c,g,5000)
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()
-- 这个单位登场到R时,你的R上有其他的〈幽灵〉的话, return not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)) and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,c)
local a = Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,c)
return vgf.RMonsterFilter(c) and a
end end
function cm.filter(c) function cm.filter(c)
return c:IsSetCard(0xa013) and c:vgf.RMonsterFilter() return c:IsSetCard(0xa013) and vgf.RMonsterFilter(c)
end end
\ No newline at end of file
...@@ -5,9 +5,8 @@ function cm.initial_effect(c) ...@@ -5,9 +5,8 @@ function cm.initial_effect(c)
-- 【永】【G】:你的不存在单位的R有3个以上的话,这个单位的盾护+10000。 -- 【永】【G】:你的不存在单位的R有3个以上的话,这个单位的盾护+10000。
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,10000,cm.con,tg,EFFECT_UPDATE_DEFENSE,reset,LOCATION_GZONE) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,10000,cm.con,tg,EFFECT_UPDATE_DEFENSE,reset,LOCATION_GZONE)
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 ct1 = bit.ReturnCount(vgf.GetAvailableLocation(tp)) local ct1=bit.ReturnCount(vgf.GetAvailableLocation(tp))
local ct2 = Duel.GetMatchingGroupCount(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,nil) local ct2=Duel.GetMatchingGroupCount(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,nil)
return ct1 - ct2 >= 3 return ct1-ct2>=3
end end
\ No newline at end of file
...@@ -5,9 +5,8 @@ function cm.initial_effect(c) ...@@ -5,9 +5,8 @@ function cm.initial_effect(c)
-- 【永】【R】:你其他的后防者有3张以上的话,这个单位的力量+5000。 -- 【永】【R】:你其他的后防者有3张以上的话,这个单位的力量+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)
local c= e:GetHandler() local c= e:GetHandler()
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return vgf.RMonsterCondition(e) and Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,3,c) and Duel.GetTurnPlayer()==tp return vgf.RMonsterCondition(e) and Duel.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,3,c)
end end
\ No newline at end of file
...@@ -2,33 +2,30 @@ ...@@ -2,33 +2,30 @@
local cm,m,o=GetID() local cm,m,o=GetID()
function cm.initial_effect(c) function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)- -- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
-- 【自】【R】:这个单位支援时,通过【费用】[灵魂爆发2],选择你其他的1个单位,等级是奇数的这个单位以外的单位每有1个,这个回合中,那个单位的力量+5000。 -- 【自】【R】:这个单位支援时,通过【费用】[灵魂爆发2],选择你其他的1个单位,等级是奇数的这个单位以外的单位每有1个,这个回合中,那个单位的力量+5000。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.op,VgF.OverlayCost(2),cm.con) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_CUSTOM+EVENT_SUPPORT,cm.op,VgF.OverlayCost(2),cm.con)
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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,tp,nil,tp,LOCATION_MZONE,0,1,1,c)
local g=Duel.SelectMatchingCard(tp,cm.filter1,tp,LOCATION_MZONE,0,1,1,c) local ct=Duel.GetMatchingGroupCount(cm.filter2,tp,LOCATION_MZONE,0,c)
Duel.HintSelection(g) local atk=5000*ct
local a = GetMatchingGroupCount(cm.filter1,tp,LOCATION_MZONE,0,c) vgf.AtkUp(c,g,atk)
local b = 5000 * a
vgf.AtkUp(c,g,b)
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 a = Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil) local c=e:GetHandler()
local b = Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil) return eg:IsContains(c) and cm.con1(e,tp,eg,ep,ev,re,r,rp) and vgf.RMonsterCondition(e)
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil)
local b=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效) -- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
return not a and b and vgf.RMonsterCondition(e) return not a and b
end end
function cm.filter1(c) function cm.filter1(c)
return c:getlevel() % 2 == 1 return c:GetLevel()%2==1
end end
function cm.filter2(c) function cm.filter2(c)
return c:getlevel() % 2 == 0 return c:GetLevel()%2==0
end end
\ No newline at end of file
...@@ -7,16 +7,18 @@ function cm.initial_effect(c) ...@@ -7,16 +7,18 @@ function cm.initial_effect(c)
VgD.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,10000,cm.con) VgD.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,10000,cm.con)
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 a = Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil) return cm.con1(e,tp,eg,ep,ev,re,r,rp) and Duel.GetTurnPlayer()==tp and vgf.RMonsterCondition(e)
local b = Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
return not a and b and Duel.GetTurnPlayer()==tp and vgf.RMonsterCondition(e)
end end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_REMOVED,0,1,nil)
local b=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_REMOVED,0,1,nil)
-- 白翼(你的封锁区中的卡只有奇数的等级的场合才有效)
return not a and b
end
function cm.filter1(c) function cm.filter1(c)
return c:getlevel() % 2 == 1 return c:GetLevel()%2==1
end end
function cm.filter2(c) function cm.filter2(c)
return c:getlevel() % 2 == 0 return c:GetLevel()%2==0
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.op,vgf.DamageCost(1))
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
vgf.AtkUp(c,g,5000)
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)
-- 选择你的1个单位,这个回合中,力量+5000。将这张卡放置到灵魂里。 -- 选择你的1个单位,这个回合中,力量+5000。将这张卡放置到灵魂里。
vgd.SpellActivate(c,m,cm.operation,nil) vgd.SpellActivate(c,m,cm.operation,nil)
...@@ -8,11 +8,9 @@ end ...@@ -8,11 +8,9 @@ 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.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
Duel.HintSelection(g)
VgF.AtkUp(c,g,5000,nil) VgF.AtkUp(c,g,5000,nil)
local rc=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst() local rc=vgf.GetVMonster(tp)
Duel.Overlay(rc,c) c:CancelToGrave()
-- 测试时发现会进魂后送墓 vgf.Sendto(LOCATION_OVERLAY,c,rc)
end end
...@@ -3,22 +3,27 @@ local cm,m,o=GetID() ...@@ -3,22 +3,27 @@ local cm,m,o=GetID()
function cm.initial_effect(c)--这个函数下面用于注册效果 function cm.initial_effect(c)--这个函数下面用于注册效果
vgf.VgCard(c) vgf.VgCard(c)
-- 这个回合中你的先导者被攻击击中过的话,选择1个被攻击的单位,这次战斗中,力量+30000。 -- 这个回合中你的先导者被攻击击中过的话,选择1个被攻击的单位,这次战斗中,力量+30000。
vgd.QuickSpell(c,cm.op) vgd.QuickSpell(c,cm.op,nil,cm.con)
vgd.GlobalCheckEffect(c,m,EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS,EVENT_CUSTOM+EVENT_DAMAGE_TRIGGER,cm.checkcon,cm.checkop)
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()
-- 需要判断被击中过,这段未实现,辛苦群主大大了~/doge local g=Group.FromCards(Duel.GetAttackTarget())
-- if then if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP)
local g = Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil) g=g:FilterSelect(tp,Card.IsCanBeEffectTarget,1,1,nil,e)
Duel.HintSelection(g) Duel.HintSelection(g)
local e1 = vgf.AtkUp(c,g,30000,nil) local e1=vgf.AtkUp(c,g,30000)
vgf.EffectReset(c,e1,EVENT_BATTLED) vgf.EffectReset(c,e1,EVENT_BATTLED)
end
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
function cm.filter(c) return Duel.GetFlagEffect(tp,m)>0
local a = Duel.GetAttackTarget()
return c == a
end end
function cm.checkcon(e,tp,eg,ep,ev,re,r,rp)
local rc=vgf.GetVMonster(tp)
return eg:IsContains(rc)
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
\ No newline at end of file
...@@ -4,32 +4,31 @@ function cm.initial_effect(c) ...@@ -4,32 +4,31 @@ function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
-- 你的先导者是「双翼的大天使 阿蕾斯缇耶尔」的话能施放! -- 你的先导者是「双翼的大天使 阿蕾斯缇耶尔」的话能施放!
-- 选择1个正在被攻击的单位,你的等级是奇数的后防者每有1张,这次战斗中,被选择的单位的力量+5000。这个回合中,你的等级是偶数的单位将要从R或G退场之际,你也可以不将那些卡放置到弃牌区,而是将那些卡放置到灵魂里。 -- 选择1个正在被攻击的单位,你的等级是奇数的后防者每有1张,这次战斗中,被选择的单位的力量+5000。这个回合中,你的等级是偶数的单位将要从R或G退场之际,你也可以不将那些卡放置到弃牌区,而是将那些卡放置到灵魂里。
vgd.QuickSpell(c,cm.op,cm.con) vgd.QuickSpell(c,cm.op)--,nil,cm.con)
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 v = VgF.GetVMonster(tp) return VgF.GetVMonster(tp):IsCode(10501002)
return v:IsCode(10501002)
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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=Group.FromCards(Duel.GetAttackTarget())
local g = Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil) if g:GetCount()>0 then
Duel.HintSelection(g) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP)
local a = GetMatchingGroupCount(cm.filter1,tp,LOCATION_MZONE,0) g=g:FilterSelect(tp,Card.IsCanBeEffectTarget,1,1,nil,e)
local b = 5000 * a Duel.HintSelection(g)
local e1 = vgf.AtkUp(c,g,b,nil) local ct=Duel.GetMatchingGroupCount(cm.filter,tp,LOCATION_MZONE,0,c)
vgf.EffectReset(c,e1,EVENT_BATTLED) local atk=5000*ct
-- 这个回合中,你的等级是偶数的单位将要从R或G退场之际,你也可以不将那些卡放置到弃牌区,而是将那些卡放置到灵魂 local e1=vgf.AtkUp(c,g,atk)
-- 这段未实现,辛苦群主大大了~/doge vgf.EffectReset(c,e1,EVENT_BATTLED)
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(m)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end end
function cm.filter(c) function cm.filter(c)
local a = Duel.GetAttackTarget() return c:GetLevel()%2==0
return c == a end
end \ No newline at end of file
function cm.filter1(c)
return vgf.IsLevel(c,1) or vgf.IsLevel(c,3)
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