Commit 3d53c661 authored by Kirikokora's avatar Kirikokora Committed by GitHub

Merge branch 'vgdpro:main' into main

parents 935fa4d9 99a90430
...@@ -245,7 +245,7 @@ function cm.operation2(e,tp,eg,ep,ev,re,r,rp) ...@@ -245,7 +245,7 @@ function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
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=e:GetHandler() local c=e:GetHandler()
return vgf.RMonsterCondition(e) and c:GetFlagEffectLabel(ConditionFlag)==201 and vgf.VMonsterFilter(Duel.GetAttackTarget()) return vgf.RMonsterCondition(e) and c:GetFlagEffectLabel(FLAG_CONDITION)==201 and vgf.VMonsterFilter(Duel.GetAttackTarget())
end end
``` ```
...@@ -351,7 +351,7 @@ function cm.condition2(e,tp,eg,ep,ev,re,r,rp) ...@@ -351,7 +351,7 @@ function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
-- vgf.RMonsterCondition(e) 判断 e的持有者(即这张卡) 是否为后防者 -- vgf.RMonsterCondition(e) 判断 e的持有者(即这张卡) 是否为后防者
-- vgf.VMonsterFilter(Duel.GetAttackTarget()) 判断 被攻击的卡 是否为先导者 -- vgf.VMonsterFilter(Duel.GetAttackTarget()) 判断 被攻击的卡 是否为先导者
return vgf.RMonsterCondition(e) and c:GetFlagEffectLabel(ConditionFlag)==201 and vgf.VMonsterFilter(Duel.GetAttackTarget()) return vgf.RMonsterCondition(e) and c:GetFlagEffectLabel(FLAG_CONDITION)==201 and vgf.VMonsterFilter(Duel.GetAttackTarget())
end end
``` ```
...@@ -397,6 +397,6 @@ function cm.initial_effect(c) ...@@ -397,6 +397,6 @@ function cm.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
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.VMonsterCondition(e) and Duel.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_MZONE,0,3,nil,3) return vgf.VMonsterCondition(e) and vgf.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_MZONE,0,3,nil,3)
end end
``` ```
This diff is collapsed.
...@@ -87,13 +87,15 @@ SKILL_TWICE_TRIGGER =0x10 --三判 ...@@ -87,13 +87,15 @@ SKILL_TWICE_TRIGGER =0x10 --三判
SKILL_SELF_RIDE =0x20 --人格骑升 SKILL_SELF_RIDE =0x20 --人格骑升
SKILL_DEBRIS =0x40 --结晶碎片 SKILL_DEBRIS =0x40 --结晶碎片
--触发类型 --种族 --触发类型 --种族
TRRIGGER_ALL =0x3ffffff --All TRIGGER_ALL =0x3ffffff --All
TRRIGGER_NONE =0x1 --无 TRIGGER_NONE =0x1 --无
TRRIGGER_CRITICAL_STRIKE=0x2 --暴击触发 TRIGGER_CRITICAL_STRIKE=0x2 --暴击触发
TRRIGGER_DRAW =0x4 --抽牌触发 TRIGGER_DRAW =0x4 --抽牌触发
TRRIGGER_HEAL =0x8 --治愈触发 TRIGGER_HEAL =0x8 --治愈触发
TRRIGGER_ADVANCE =0x10 --前列触发 TRIGGER_ADVANCE =0x10 --前列触发
TRRIGGER_SUPER =0x20 --超限触发 TRIGGER_SUPER =0x20 --超限触发
--Category 效果分类
CATEGORY_DEFENDER =0x1 --守护者
--Reason 卡片到当前位置的原因 --Reason 卡片到当前位置的原因
REASON_DESTROY =0x1 --破坏 REASON_DESTROY =0x1 --破坏
REASON_RELEASE =0x2 --解放 REASON_RELEASE =0x2 --解放
...@@ -675,11 +677,13 @@ EVENT_DAMAGE_TRIGGER =VgID+2 --受伤判定完毕时点 ...@@ -675,11 +677,13 @@ EVENT_DAMAGE_TRIGGER =VgID+2 --受伤判定完毕时点
EVENT_RIDE_START =VgID+3 --骑升时点 EVENT_RIDE_START =VgID+3 --骑升时点
EVENT_SUPPORT =VgID+4 --支援时点 EVENT_SUPPORT =VgID+4 --支援时点
EVENT_TRIGGERCOUNTUP =VgID+5 --驱动追加 EVENT_TRIGGERCOUNTUP =VgID+5 --驱动追加
EVENT_SING =VgID+6 --演唱时
EVENT_OVERLAY_FILL =VgID+7 --灵魂填充时
--攻击时(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
...@@ -720,30 +724,28 @@ OPCODE_ISATTRIBUTE =0x40000104 ...@@ -720,30 +724,28 @@ OPCODE_ISATTRIBUTE =0x40000104
DOUBLE_DAMAGE =-2147483648 DOUBLE_DAMAGE =-2147483648
HALF_DAMAGE =-2147483647 HALF_DAMAGE =-2147483647
--Hint Message --提示消息,显示在窗口的上面 --Hint Message --提示消息,显示在窗口的上面
HINTMSG_RELEASE =500 HINTMSG_LEAVEONFIELD =500 --请选择要退场的卡
HINTMSG_DISCARD =501 --请选择要丢弃的手牌 HINTMSG_DISCARD =501 --请选择要丢弃的手牌
HINTMSG_DESTROY =502 -- HINTMSG_IMPRISON =502 --请选择要收容的卡
HINTMSG_REMOVE =503 --请选择要除外的卡 HINTMSG_REMOVE =503 --请选择要除外的卡
HINTMSG_TOGRAVE =504 -- HINTMSG_TODROP =504 --请选择要置入弃牌区的卡
HINTMSG_RTOHAND =505 --请选择要返回手牌的卡 HINTMSG_RTOHAND =505 --请选择要返回手牌的卡
HINTMSG_ATOHAND =506 --请选择要加入手牌的卡 HINTMSG_ATOHAND =506 --请选择要加入手牌的卡
HINTMSG_TODECK =507 --请选择要返回卡组的卡 HINTMSG_TODECK =507 --请选择要返回卡组的卡
HINTMSG_SUMMON =508 -- HINTMSG_CALL =508 --请选择要Call到圆阵的卡
HINTMSG_SPSUMMON =509 --请选择要特殊召唤的卡 HINTMSG_SPSUMMON =509 --请选择要特殊召唤的卡
HINTMSG_SET =510 -- HINTMSG_DAMAGE =510 --请选择要消耗的费用
HINTMSG_FMATERIAL =511 -- HINTMSG_ATKUP =511 --请选择力量上升的卡
HINTMSG_SMATERIAL =512 -- HINTMSG_CRITICAL_STRIKE =512 --请选择☆值上升的卡
HINTMSG_FACEUP =514 --请选择表侧表示的卡 HINTMSG_FACEUP =514 --请选择表侧表示的卡
HINTMSG_FACEDOWN =515 --请选择里侧表示的卡 HINTMSG_FACEDOWN =515 --请选择里侧表示的卡
HINTMSG_ATTACK =516 --请选择攻击表示的怪兽 HINTMSG_ATTACK =516 --请选择攻击表示的怪兽
HINTMSG_DEFENSE =517 --请选择守备表示的怪兽 HINTMSG_DEFENSE =517 --请选择守备表示的怪兽
HINTMSG_EQUIP =518 --请选择要装备的卡 HINTMSG_EQUIP =518 --请选择要装备的卡
HINTMSG_REMOVEXYZ =519 --请选择要取除的超量素材 HINTMSG_TO_GZONE =519 --请选择要CALL到防卫者圆阵的卡
HINTMSG_CONTROL =520 --请选择要改变控制权的怪兽 HINTMSG_VMONSTER =522 --请选择先导者
HINTMSG_DESREPLACE =521 --请选择要代替破坏的卡 HINTMSG_RMONSTER =523 --请选择后防者
HINTMSG_FACEUPATTACK =522 -- HINTMSG_MONSTER =524 --请选择单位
HINTMSG_FACEUPDEFENSE =523 --请选择表侧守备表示的怪兽
HINTMSG_FACEDOWNATTACK =524 --请选择里侧攻击表示的怪兽
HINTMSG_FACEDOWNDEFENSE =525 --请选择里侧守备表示的怪兽 HINTMSG_FACEDOWNDEFENSE =525 --请选择里侧守备表示的怪兽
HINTMSG_CONFIRM =526 --请选择给对方确认的卡 HINTMSG_CONFIRM =526 --请选择给对方确认的卡
HINTMSG_TOFIELD =527 --请选择要放置到场上的卡 HINTMSG_TOFIELD =527 --请选择要放置到场上的卡
...@@ -772,18 +774,11 @@ HINTMSG_RESOLVECARD =568 --请选择要处理效果的卡 ...@@ -772,18 +774,11 @@ HINTMSG_RESOLVECARD =568 --请选择要处理效果的卡
HINTMSG_ZONE =569 --请选择[%ls]的位置 HINTMSG_ZONE =569 --请选择[%ls]的位置
HINTMSG_CallZONE =570 --请选择圆阵 HINTMSG_CallZONE =570 --请选择圆阵
HINTMSG_TOZONE =571 --请选择要移动到的位置 HINTMSG_TOZONE =571 --请选择要移动到的位置
HINTMSG_COUNTER =572 --请选择要放置指示物的卡 HINTMSG_TOTOP =572 --请选择要放置到牌堆顶的卡
HINTMSG_DISABLE =573 --请选择要无效的卡 HINTMSG_DISABLE =573 --请选择要无效的卡
HINTMSG_OPERATECARD =574 --请选择要操作的卡 HINTMSG_OPERATECARD =574 --请选择要操作的卡
HINTMSG_XMATERIAL =513 --请选择要充入魂中的卡 HINTMSG_XMATERIAL =513 --请选择要充入魂中的卡
HINTMSG_LEAVEONFIELD =HINTMSG_RELEASE --请选择要退场的卡
HINTMSG_TODROP =HINTMSG_TOGRAVE --请选择要置入弃牌区的卡
HINTMSG_CALL =HINTMSG_SUMMON --请选择要Call到圆阵的卡
HINTMSG_DAMAGE =HINTMSG_SET --请选择要消耗的费用
HINTMSG_ATKUP =HINTMSG_FMATERIAL --请选择力量上升的卡
HINTMSG_CRITICAL_STRIKE =HINTMSG_SMATERIAL --请选择☆值上升的卡
HINTMSG_IMPRISON =HINTMSG_DESTROY --请选择要收容的卡
HINTMSG_VMONSTER =HINTMSG_FACEUPATTACK --请选择先导者
--Select --请选择 --Select --请选择
SELECT_HEADS =60 --正面 SELECT_HEADS =60 --正面
SELECT_TAILS =61 --反面 SELECT_TAILS =61 --反面
...@@ -859,19 +854,25 @@ FLAG_ID_CHAINING =1 ...@@ -859,19 +854,25 @@ FLAG_ID_CHAINING =1
FLAG_ID_UNION =2 FLAG_ID_UNION =2
FLAG_ID_NO_NORMAL_DRAW =3 FLAG_ID_NO_NORMAL_DRAW =3
--Flag --Flag
CountTriggerFlag =VgID --计数标识 FLAG_COUNT_TRIGGER =VgID --计数标识
AttackTriggerFlag =VgID+1 --多次攻击判定标识 FLAG_ATTACK_TRIGGER =VgID+1 --多次攻击判定标识
DamageTriggerFlag =VgID+2 --多次伤害判定标识 FLAG_DAMAGE_TRIGGER =VgID+2 --多次伤害判定标识
DefenseEntirelyFlag =VgID+3 --完全防御标识 FLAG_DEFENSE_ENTIRELY =VgID+3 --完全防御标识
ConditionFlag =VgID+4 --处于XX状态标识 FLAG_CONDITION =VgID+4 --处于XX状态标识
SupportFlag =VgID+5 --支援状态标识 FLAG_SUPPORT =VgID+5 --支援状态标识
AttackAtRearFlag =VgID+6 --后列攻击 FLAG_ATTACK_AT_REAR =VgID+6 --后列攻击
ImprisonFlag =VgID+6 --被收容 FLAG_IMPRISON =VgID+7 --被收容
FLAG_SPELL_COUNT_LIMIT =VgID+8 --指令卡次数
FLAG_SPELL_USED_COUNT =VgID+9 --指令卡已使用次数
--AffectedByEffect --AffectedByEffect
AFFECT_CODE_MIX =VgID --魔合成 AFFECT_CODE_MIX =VgID --魔合成
AFFECT_CODE_MIX_DIFFERENT_NAME =VgID+1 --魔合成(卡名不同) AFFECT_CODE_MIX_DIFFERENT_NAME =VgID+1 --魔合成(卡名不同)
AFFECT_CODE_SENDTOG =VgID+2 --需要两张卡才能防御 AFFECT_CODE_BOTH_WING =VgID+2 --你的卡片的白翼能力和黑翼能力两方均有效
AFFECT_CODE_SENDTOG_MZONE =VgID+3 --不能截击 AFFECT_CODE_NIGHT =VgID+3 --黑夜
AFFECT_CODE_DEEP_NIGHT =VgID+4 --深渊黑夜
AFFECT_CODE_OVERLAY_INSTEAD_WHEN_RIDE =10501082 --不执行『选择手牌中的1张卡,舍弃』而是执行『灵魂爆发1』来将卡RIDE
POS_FACEUP_DEFENCE=POS_FACEUP_DEFENSE POS_FACEUP_DEFENCE=POS_FACEUP_DEFENSE
......
This diff is collapsed.
...@@ -4,13 +4,28 @@ function cm.initial_effect(c) ...@@ -4,13 +4,28 @@ function cm.initial_effect(c)
vgd.CardToG(c,nil,cm.op) vgd.CardToG(c,nil,cm.op)
end end
function cm.op(e,tp,eg,ep,ev,re,r,rp) function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELF) local c=e:GetHandler()
local tg=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_MZONE,0,1,1,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_MONSTER)
if tg:GetCount()>0 then tg:GetFirst():RegisterFlagEffect(DefenseEntirelyFlag,RESET_EVENT+RESETS_STANDARD,0,1) end local g=vgf.SelectMatchingCard(HINTMSG_MONSTER,e,tp,Card.IsFaceup,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0) if g:GetCount()>0 then
if g:GetCount()>=2 then local tc=g:GetFirst()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD) if vgf.RMonsterFilter(tc) then
g=g:FilterSelect(tp,Card.IsDiscardable,1,1,nil,REASON_EFFECT) local e1=Effect.CreateEffect(c)
Duel.SendtoGrave(g,REASON_EFFECT+REASON_DISCARD) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(1)
tc:RegisterEffect(e1)
vgf.EffectReset(c,e1,EVENT_BATTLED)
elseif vgf.VMonsterFilter(tc) then
tc:RegisterFlagEffect(FLAG_DEFENSE_ENTIRELY,RESET_EVENT+RESETS_STANDARD,0,1)
end
end
local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if sg:GetCount()>=2 then
sg=sg:Select(tp,1,1,nil)
vgf.Sendto(LOCATION_DROP,sg,REASON_DISCARD+REASON_EFFECT)
end end
end end
\ No newline at end of file
...@@ -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.EffectTypeIgnition(c,m,LOCATION_MZONE,vgf.SearchCardSpecialSummon(LOCATION_DROP,cm.filter),vgf.DisCardCost(1),nil,nil,1) vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,vgf.SearchCard(LOCATION_HAND,LOCATION_MZONE,LOCATION_DROP,cm.filter),vgf.DisCardCost(1),nil,nil,1)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,vgf.DamageCost(1)) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation,vgf.DamageCost(1))
end end
function cm.filter(c) function cm.filter(c)
...@@ -11,12 +11,12 @@ end ...@@ -11,12 +11,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()
local g=Group.FromCards(c) local g=Group.FromCards(c)
local sg=Duel.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_MZONE,0,nil,0x201) local sg=vgf.GetMatchingGroup(Card.IsSetCard,tp,LOCATION_MZONE,0,nil,0x201)
if sg then g:Merge(sg) end if sg then g:Merge(sg) end
vgf.AtkUp(c,g,10000) vgf.AtkUp(c,g,10000)
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=vgf.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
......
...@@ -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.BeRidedByCard(c,m,10101001,vgf.SearchCard(LOCATION_DECK,cm.filter),vgf.OverlayCost(1)) vgd.BeRidedByCard(c,m,10101001,vgf.SearchCard(LOCATION_HAND,LOCATION_DECK,cm.filter),vgf.OverlayCost(1))
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
......
...@@ -2,15 +2,8 @@ ...@@ -2,15 +2,8 @@
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,10101002,vgf.SearchCardSpecialSummon(LOCATION_DECK,cm.filter)) vgd.BeRidedByCard(c,m,10101002,vgf.SearchCard(LOCATION_MZONE,LOCATION_DECK,cm.filter))
local e1=Effect.CreateEffect(c) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,2000,cm.con)
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(2000)
c:RegisterEffect(e1)
end end
function cm.filter(c) function cm.filter(c)
return c:IsCode(10101009) return c:IsCode(10101009)
......
...@@ -7,20 +7,17 @@ function cm.initial_effect(c) ...@@ -7,20 +7,17 @@ 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()
VgF.AtkUp(c,c,10000,nil,nil,EFFECT_TYPE_SINGLE,EVENT_BATTLED) local e1=vgf.AtkUp(c,c,5000,nil)
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 vgf.EffectReset(c,e1,EVENT_BATTLED)
local cg=Duel.GetMatchingGroup(VgF.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,Card.IsAbleToGraveAsCost,2,2,nil) if vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=2 and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then
if Duel.SendtoGrave(cg,REASON_COST)==2 then local cg=vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,2,2,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LEAVEONFIELD) if vgf.Sendto(LOCATION_DROP,cg,REASON_COST)==2 then
local g=Duel.SelectTarget(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 vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
Duel.HintSelection(g)
Duel.SendtoGrave(g,REASON_EFFECT)
end
end end
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)
local c=e:GetHandler() local c=e:GetHandler()
return vgf.RMonsterCondition(e) and c:GetFlagEffectLabel(ConditionFlag)==201 and vgf.VMonsterFilter(Duel.GetAttackTarget()) return vgf.RMonsterCondition(e) and c:GetFlagEffectLabel(FLAG_CONDITION)==201 and vgf.VMonsterFilter(Duel.GetAttackTarget())
end end
\ No newline at end of file
...@@ -2,14 +2,10 @@ ...@@ -2,14 +2,10 @@
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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
if g then
Duel.HintSelection(g)
vgf.AtkUp(c,g,100000000,nil) vgf.AtkUp(c,g,100000000,nil)
end
end end
\ No newline at end of file
...@@ -6,11 +6,9 @@ function cm.initial_effect(c) ...@@ -6,11 +6,9 @@ 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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_MZONE,0,1,1,nil) vgf.AtkUp(c,g,5000,nil)
Duel.HintSelection(g) vgf.SearchCard(LOCATION_HAND,LOCATION_DROP,cm.filter)(e,tp,eg,ep,ev,re,r,rp)
VgF.AtkUp(c,g,5000,nil)
vgf.SearchCardOP(LOCATION_DROP,cm.filter,e,tp,eg,ep,ev,re,r,rp)
end end
function cm.filter(c) function cm.filter(c)
return c:IsCode(10101006) return c:IsCode(10101006)
......
...@@ -6,22 +6,16 @@ function cm.initial_effect(c) ...@@ -6,22 +6,16 @@ function cm.initial_effect(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()
Duel.RegisterFlagEffect(tp,ConditionFlag,RESET_PHASE+PHASE_END,0,1,m) Duel.RegisterFlagEffect(tp,FLAG_CONDITION,RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,m,vgf.Stringid(m,0))
local e=Effect.CreateEffect(c)
e:SetType(EFFECT_TYPE_FIELD)
e:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e:SetCode(m)
e:SetTargetRange(1,0)
e:SetDescription(vgf.Stringid(m,0))
Duel.RegisterEffect(e,tp)
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.GetTurnPlayer()==tp and vgf.VMonsterCondition(e) return Duel.GetTurnPlayer()==tp and vgf.VMonsterCondition(e)
end end
function cm.op2(e,tp,eg,ep,ev,re,r,rp) function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(vgf.IsSequence,tp,LOCATION_MZONE,0,nil,0,4) local g=vgf.GetMatchingGroup(vgf.IsSequence,tp,LOCATION_MZONE,0,nil,0,4)
Duel.ChangePosition(g,POS_FACEUP_ATTACK) Duel.ChangePosition(g,POS_FACEUP_ATTACK)
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.GetFlagEffectLabel(tp,ConditionFlag)==10102001 and vgf.VMonsterCondition(e) local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
return VgF.GetValueType(ct)=="number" and ct==10102001 and vgf.VMonsterCondition(e)
end end
\ No newline at end of file
...@@ -14,20 +14,16 @@ end ...@@ -14,20 +14,16 @@ 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 vgf.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL) local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil) vgf.Sendto(LOCATION_OVERLAY,g,c)
Duel.Overlay(c,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)
local c=e:GetHandler() local c=e:GetHandler()
return c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE) return c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)
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.GetFlagEffectLabel(tp,ConditionFlag)==10102001 return Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)==10102001
end end
\ No newline at end of file
...@@ -12,17 +12,16 @@ function cm.initial_effect(c) ...@@ -12,17 +12,16 @@ function cm.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
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.GetFlagEffectLabel(tp,ConditionFlag)==10102001 local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
return VgF.GetValueType(ct)=="number" and ct==10102001
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
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=vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():FilterSelect(tp,vgf.IsCanBeCalled,1,1,nil,e,tp,nil,nil,0x4)
if vgf.Call(g,0,tp,0x4)>0 then vgf.Sendto(LOCATION_MZONE,g,0,tp,0x4)
vgf.OverlayFillOP(num,e,tp,eg,ep,ev,re,r,rp) vgf.OverlayFill(1)(e,tp,eg,ep,ev,re,r,rp)
end
end end
...@@ -11,9 +11,9 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,9 +11,9 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
vgf.OverlayFill(1) vgf.OverlayFill(1)
Duel.BreakEffect() Duel.BreakEffect()
if Duel.GetFlagEffectLabel(tp,ConditionFlag)==10102001 and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DAMAGE) if VgF.GetValueType(ct)=="number" and ct==10102001 and vgf.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and Duel.SelectEffectYesNo(tp,vgf.stringid(VgID,10)) then
local g=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
Duel.ChangePosition(g,POS_FACEDOWN_ATTACK) Duel.ChangePosition(g,POS_FACEDOWN_ATTACK)
vgf.AtkUp(c,c,15000) vgf.AtkUp(c,c,15000)
end end
......
...@@ -6,8 +6,9 @@ function cm.initial_effect(c) ...@@ -6,8 +6,9 @@ function cm.initial_effect(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 num=1 local num=1
if Duel.GetFlagEffectLabel(tp,ConditionFlag)==10102001 then num=num+1 end local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
VgF.OverlayFillOP(num,e,tp,eg,ep,ev,re,r,rp) if VgF.GetValueType(ct)=="number" and ct==10102001 then num=num+1 end
vgf.OverlayFill(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)
......
...@@ -38,10 +38,8 @@ function cm.filter(c) ...@@ -38,10 +38,8 @@ function cm.filter(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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=vgf.SelectMatchingCard(HINTMSG_RMONSTER,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.HintSelection(g)
Duel.ChangePosition(g,POS_FACEUP_ATTACK) Duel.ChangePosition(g,POS_FACEUP_ATTACK)
vgf.AtkUp(c,g,10000,nil) vgf.AtkUp(c,g,10000,nil)
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.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)
...@@ -24,12 +24,12 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -24,12 +24,12 @@ function cm.operation(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(vgf.IsLevel,tp,LOCATION_HAND,0,3,nil,3) end if chk==0 then return vgf.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_HAND,0,3,nil,3) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM) local g=vgf.SelectMatchingCard(HINTMSG_CONFIRM,e,tp,vgf.IsLevel,tp,LOCATION_HAND,0,3,3,nil,3)
local g=Duel.SelectMatchingCard(tp,vgf.IsLevel,tp,LOCATION_HAND,0,3,3,nil,3)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp)
end end
function cm.condition(e,c) function cm.condition(e,c)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return vgf.RMonsterCondition(e) and Duel.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_MZONE,0,3,nil,3) return vgf.RMonsterCondition(e) and vgf.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_MZONE,0,3,nil,3)
end end
\ No newline at end of file
...@@ -6,26 +6,25 @@ function cm.initial_effect(c) ...@@ -6,26 +6,25 @@ function cm.initial_effect(c)
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation2,vgf.DamageCost(1),vgf.RMonsterCondition,nil,1) vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation2,vgf.DamageCost(1),vgf.RMonsterCondition,nil,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.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_HAND,0,2,nil,3) end if chk==0 then return vgf.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_HAND,0,2,nil,3) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM) local g=vgf.SelectMatchingCard(HINTMSG_CONFIRM,e,tp,vgf.IsLevel,tp,LOCATION_HAND,0,2,2,nil,3)
local g=Duel.SelectMatchingCard(tp,vgf.IsLevel,tp,LOCATION_HAND,0,2,2,nil,3)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp)
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.ConfirmDecktop(tp,1) Duel.ConfirmDecktop(tp,1)
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 vgf.IsCanBeCalled(tc,e,tp) then
vgf.Call(g,0,tp) vgf.Sendto(LOCATION_MZONE,g,0,tp)
elseif tc:IsAbleToGrave() then else
Duel.SendtoGrave(g,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,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 c=e:GetHandler() local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
vgf.AtkUp(c,g,5000) vgf.AtkUp(c,g,5000)
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)
--【自】【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
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.AtkUp(c,c,5000,nil) local e1=vgf.AtkUp(c,c,5000,nil)
vgf.EffectReset(c,e1,EVENT_BATTLED)
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)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil) vgf.AtkUp(c,g,10000,nil)
if g then
Duel.HintSelection(g)
VgF.AtkUp(c,g,10000,nil)
end
end end
function cm.filter(c) function cm.filter(c)
return vgf.IsLevel(c,3) and vgf.RMonsterFilter(c) return vgf.IsLevel(c,3) and vgf.RMonsterFilter(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=vgf.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,nil,0,0,0,0,0,2) 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)
Duel.Draw(tp,2,REASON_EFFECT) Duel.Draw(tp,2,REASON_EFFECT)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_MZONE,0,1,1,nil) vgf.AtkUp(c,g,5000)
if g then
Duel.HintSelection(g)
VgF.AtkUp(c,g,5000)
end
end end
\ No newline at end of file
...@@ -9,12 +9,11 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -9,12 +9,11 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local ct=1 local ct=1
if c:IsSummonType(SUMMON_TYPE_SELFRIDE) then ct=3 end if c:IsSummonType(SUMMON_TYPE_SELFRIDE) then ct=3 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP) local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,vgf.RMonsterFilter,tp,LOCATION_MZONE,0,1,ct,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 for tc in vgf.Next(g) do
tc:RegisterFlagEffect(AttackAtRearFlag,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,vgf.Stringid(VgID,10)) tc:RegisterFlagEffect(FLAG_ATTACK_AT_REAR,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,vgf.Stringid(VgID,10))
end end
vgf.AtkUp(c,g,5000,nil) vgf.AtkUp(c,g,5000,nil)
end end
......
...@@ -13,16 +13,16 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -13,16 +13,16 @@ 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 vgf.IsCanBeCalled(tc,e,tp) then
vgf.Call(g,0,tp) vgf.Sendto(LOCATION_MZONE,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)
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()
vgf.AtkUp(c,c,10000,nil) local e1=vgf.AtkUp(c,c,10000,nil)
vgf.EffectReset(c,e1,EVENT_BATTLED)
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()
......
...@@ -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 vgf.IsCanBeCalled(tc,e,tp) and vgf.IsLevel(tc,0,1,2) then
vgf.Call(g,0,tp) vgf.Sendto(LOCATION_MZONE,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)
......
...@@ -13,5 +13,5 @@ end ...@@ -13,5 +13,5 @@ end
function cm.con(e) function cm.con(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,4,c) return vgf.RMonsterCondition(e) and vgf.IsExistingMatchingCard(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,4,c)
end end
\ No newline at end of file
...@@ -17,11 +17,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -17,11 +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 vgf.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DAMAGE) local g1=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
local g1=Duel.SelectMatchingCard(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=vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,1,1,nil)
Duel.SendtoGrave(g2,REASON_COST) vgf.Sendto(LOCATION_DROP,g2,REASON_COST)
end end
\ No newline at end of file
...@@ -11,10 +11,9 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,10 +11,9 @@ 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 vgf.IsCanBeCalled(tc,e,tp) then
vgf.Call(g,0,tp) vgf.Sendto(LOCATION_MZONE,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)
end end
end end
\ No newline at end of file
...@@ -3,22 +3,14 @@ function cm.initial_effect(c) ...@@ -3,22 +3,14 @@ function cm.initial_effect(c)
vgf.VgCard(c) vgf.VgCard(c)
--(闪现指令只能在你能将防卫者CALL出场的时段施放。) --(闪现指令只能在你能将防卫者CALL出场的时段施放。)
--选择你的1个单位,这次战斗中,力量+5000。后列的你的后防者有3张以上的话,不+5000,而是+15000。 --选择你的1个单位,这次战斗中,力量+5000。后列的你的后防者有3张以上的话,不+5000,而是+15000。
vgd.QuickSpell(c,EVENT_MOVE,cm.op,nil,cm.con) vgd.QuickSpell(c,cm.op)
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,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
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 vgf.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
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.filter,1,nil,tp)
end
function cm.filter(c,tp)
return c:IsLocation(LOCATION_GZONE) and c:IsControler(tp)
end
\ No newline at end of file
...@@ -7,14 +7,13 @@ function cm.initial_effect(c) ...@@ -7,14 +7,13 @@ function cm.initial_effect(c)
end end
function cm.con(e,c) function cm.con(e,c)
local tp=e:GetHandler() local tp=e:GetHandler()
return Duel.GetTurnPlayer()==tp and vgf.VMonsterCondition(e) and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil) return Duel.GetTurnPlayer()==tp and vgf.VMonsterCondition(e) and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
end end
function cm.filter(c) function cm.filter(c)
return c:GetFlagEffect(ImprisonFlag)>0 return c:GetFlagEffect(FLAG_IMPRISON)>0
end end
function cm.op1(e,tp,eg,ep,ev,re,r,rp) function cm.op1(e,tp,eg,ep,ev,re,r,rp)
if not vgf.CheckPrison(tp) then return end if not vgf.CheckPrison(tp) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_IMPRISON) local g1=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,2,2,nil)
local g1=Duel.SelectMatchingCard(tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,2,2,nil)
vgf.SendtoPrison(g1,tp) vgf.SendtoPrison(g1,tp)
end end
\ No newline at end of file
...@@ -7,8 +7,7 @@ end ...@@ -7,8 +7,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()
if not vgf.CheckPrison(tp) then return end if not vgf.CheckPrison(tp) then return end
Duel.Hint(HINT_MESSAGE,1-tp,HINTMSG_IMPRISON) local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,1-tp,nil,tp,0,LOCATION_HAND,1,1,nil)
local g=Duel.SelectMatchingCard(1-tp,nil,tp,LOCATION_HAND,0,1,1,nil)
vgf.SendtoPrison(g,tp) vgf.SendtoPrison(g,tp)
end end
function cm.condition(e,tp,eg,ep,ev,re,r,rp) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
...@@ -18,8 +17,8 @@ end ...@@ -18,8 +17,8 @@ end
function cm.con(e) function cm.con(e)
local c=e:GetHandler() local c=e:GetHandler()
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return vgf.RMonsterFilter(c) and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil) return vgf.RMonsterFilter(c) and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
end end
function cm.filter(c) function cm.filter(c)
return c:GetFlagEffect(ImprisonFlag)>0 return c:GetFlagEffect(FLAG_IMPRISON)>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.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.SearchCard(LOCATION_DECK,cm.filter),nil,cm.condition) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.SearchCard(LOCATION_HAND,LOCATION_DECK,cm.filter),nil,cm.condition)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation1,cm.cost,cm.condition1) vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation1,cm.cost,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)
...@@ -13,20 +13,19 @@ function cm.filter(c) ...@@ -13,20 +13,19 @@ function cm.filter(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()
return not cm.condition(e,tp,eg,ep,ev,re,r,rp) and Duel.IsExistingMatchingCard(cm.filter1,tp,LOCATION_ORDER,0,1,nil) return not cm.condition(e,tp,eg,ep,ev,re,r,rp) and vgf.IsExistingMatchingCard(cm.filter1,tp,LOCATION_ORDER,0,1,nil)
end end
function cm.filter1(c) function cm.filter1(c)
return c:GetFlagEffect(ImprisonFlag)>0 return c:GetFlagEffect(FLAG_IMPRISON)>0
end end
function cm.operation1(e,tp,eg,ep,ev,re,r,rp) 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 vgf.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,nil) and vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil,nil):GetFirst():GetOverlayCount()>=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DAMAGE) local g1=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,1,1,nil)
local g1=Duel.SelectMatchingCard(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=vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,1,1,nil)
Duel.SendtoGrave(g2,REASON_COST) vgf.Sendto(LOCATION_DROP,g2,REASON_COST)
end end
\ No newline at end of file
...@@ -10,7 +10,6 @@ end ...@@ -10,7 +10,6 @@ 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 not vgf.CheckPrison(tp) then return end if not vgf.CheckPrison(tp) then return end
Duel.Hint(HINT_MESSAGE,1-tp,HINTMSG_IMPRISON) local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,0,2,nil)
local g=Duel.SelectMatchingCard(tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,0,2,nil)
vgf.SendtoPrison(g,tp) vgf.SendtoPrison(g,tp)
end end
\ No newline at end of file
...@@ -10,7 +10,6 @@ end ...@@ -10,7 +10,6 @@ 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 not vgf.CheckPrison(tp) then return end if not vgf.CheckPrison(tp) then return end
Duel.Hint(HINT_MESSAGE,tp,HINTMSG_IMPRISON) local g=vgf.SelectMatchingCard(HINTMSG_IMPRISON,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
local g=Duel.SelectMatchingCard(tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
vgf.SendtoPrison(g,tp) vgf.SendtoPrison(g,tp)
end end
\ No newline at end of file
...@@ -2,12 +2,12 @@ local cm,m,o=GetID() ...@@ -2,12 +2,12 @@ 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_GRAVE) 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()
return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil) return vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
end end
function cm.filter(c) function cm.filter(c)
return c:GetFlagEffect(ImprisonFlag)>0 return c:GetFlagEffect(FLAG_IMPRISON)>0
end end
\ No newline at end of file
...@@ -9,34 +9,33 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -9,34 +9,33 @@ 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=vgf.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=vgf.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=vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst():GetOverlayGroup():Select(tp,1,1,nil)
Duel.SendtoGrave(g,REASON_COST) vgf.Sendto(LOCATION_DROP,g,REASON_COST)
e:SetLabel(1) e:SetLabel(1)
else else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DAMAGE) local g=vgf.SelectMatchingCard(HINTMSG_DAMAGE,e,tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,num,num,nil)
local g=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_DAMAGE,0,num,num,nil)
Duel.ChangePosition(g,POS_FACEDOWN_ATTACK) Duel.ChangePosition(g,POS_FACEDOWN_ATTACK)
e:SetLabel(2) e:SetLabel(2)
end end
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 eg:IsExists(cm.filter,1,nil,e) and eg:Count()==1 return eg:IsExists(cm.filter,1,nil,e) and eg:GetCount()==1
end end
function cm.filter(c,e) function cm.filter(c,e)
return c:IsSummonType(SUMMON_VALUE_CALL) and c:GetControler()~=e:GetHandler():GetControler() return c:IsSummonType(SUMMON_VALUE_CALL) and c:GetControler()~=e:GetHandler():GetControler()
...@@ -45,17 +44,15 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -45,17 +44,15 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
local zone=vgf.GetAvailableLocation(tp) local zone=vgf.GetAvailableLocation(tp)
local ct=bit.ReturnCount(zone) local ct=bit.ReturnCount(zone)
if ct>e:GetLabel() then ct=e:GetLabel() end if ct>e:GetLabel() then ct=e:GetLabel() end
Duel.Hint(HINT_MESSAGE,tp,HINTMSG_CALL) local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,cm.filter1,tp,0,LOCATION_ORDER,ct,ct,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,cm.filter1,tp,0,LOCATION_ORDER,ct,ct,nil,e,tp)
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 vgf.IsCanBeCalled(tc,e,tp) then
vgf.Call(tc,0,tp) vgf.Sendto(LOCATION_MZONE,tc,0,tp)
else else
Duel.SendtoGrave(tc,REASON_EFFECT) vgf.Sendto(LOCATION_DROP,tc,REASON_EFFECT)
end end
end end
end end
function cm.filter1(c,e,tp) function cm.filter1(c,e,tp)
return c:GetFlagEffect(ImprisonFlag)>0 return c:GetFlagEffect(FLAG_IMPRISON)>0 and (vgf.IsCanBeCalled(c,e,tp) or not c:IsType(TYPE_MONSTER))
end end
\ No newline at end of file
...@@ -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_DROP,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=Duel.SelectTarget(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 vgf.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)
......
...@@ -12,8 +12,8 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -12,8 +12,8 @@ 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()
vgf.OverlayFillOP(1,e,tp,eg,ep,ev,re,r,rp) vgf.OverlayFill(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) and vgf.IsCanBeCalled(c,e,tp) then
vgf.Call(c,0,tp) vgf.Sendto(LOCATION_MZONE,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=vgf.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,17 +3,16 @@ local cm,m,o=GetID() ...@@ -3,17 +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)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local c=e:GetHandler() local c=e:GetHandler()
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_GRAVE,0,1,1,nil) local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,nil,tp,LOCATION_DROP,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,16 +6,15 @@ function cm.initial_effect(c) ...@@ -6,16 +6,15 @@ 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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,cm.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp) if vgf.Sendto(LOCATION_MZONE,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)
end end
...@@ -25,7 +24,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -25,7 +24,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttacker()==c return Duel.GetAttacker()==c
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return c:IsSetCard(0x76) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) return c:IsSetCard(0x76) and vgf.IsCanBeCalled(c,e,tp)
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_HAND,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)
...@@ -19,5 +19,5 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp) ...@@ -19,5 +19,5 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
vgf.EffectReset(c,e1,EVENT_BATTLED) vgf.EffectReset(c,e1,EVENT_BATTLED)
end end
function cm.cfilter(c,mc) function cm.cfilter(c,mc)
return vgf.GetColumnGroup(c):IsContains(mc) and c:IsControler(mc:GetControler()) and c:GetFlagEffect(SupportFlag)>0 return vgf.GetColumnGroup(c):IsContains(mc) and c:IsControler(mc:GetControler()) and c:GetFlagEffect(FLAG_SUPPORT)>0
end end
\ No newline at end of file
...@@ -29,14 +29,12 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -29,14 +29,12 @@ 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.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,e,tp)
vgf.Call(sg,0,tp) vgf.Sendto(LOCATION_MZONE,sg,0,tp)
g:RemoveCard(vgf.ReturnCard(sg)) g:RemoveCard(vgf.ReturnCard(sg))
end end
if #g>1 then if #g>1 then
...@@ -48,8 +46,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -48,8 +46,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,e,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 vgf.IsCanBeCalled(c,e,tp)
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.Sendto(LOCATION_MZONE,g,SUMMON_TYPE_RIDE,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 vgf.IsCanBeCalled(c,e,tp,SUMMON_TYPE_RIDE,POS_FACEDOWN_DEFENCE,0x20)
end end
\ No newline at end of file
...@@ -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)
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 Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) return vgf.RMonsterFilter(c) and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil)
end end
function cm.filter(c) function cm.filter(c)
return vgf.VMonsterFilter and c:IsSetCard(0x77) return vgf.VMonsterFilter and c:IsSetCard(0x77)
......
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)
......
...@@ -8,6 +8,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -8,6 +8,7 @@ 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()
if vgf.GetAvailableLocation(tp)<=0 then return end if vgf.IsCanBeCalled(c,e,tp) then
vgf.Call(c,0,tp) vgf.Sendto(LOCATION_MZONE,c,0,tp)
end
end end
\ No newline at end of file
...@@ -5,28 +5,27 @@ function cm.initial_effect(c) ...@@ -5,28 +5,27 @@ 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 vgf.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 vgf.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=vgf.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_DROP,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)
Duel.ConfirmCards(tp,g) Duel.ConfirmCards(tp,g)
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,e,tp)
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)
else else
Duel.Draw(tp,1,REASON_EFFECT)
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
Duel.Draw(tp,1,REASON_EFFECT)
end end
end end
function cm.filter(c) function cm.filter(c,e,tp)
return c:IsLevelAbove(3) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() return c:IsLevelAbove(3) and vgf.IsCanBeCalled(c,e,tp)
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,vgf.SearchCard(LOCATION_DECK,cm.filter),cm.condition,vgf.DamageCost(1)) vgd.SpellActivate(c,m,vgf.SearchCard(LOCATION_HAND,LOCATION_DECK,cm.filter),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)
return vgf.GetVMonster(tp):IsSetCard(0x202) return vgf.GetVMonster(tp):IsSetCard(0x202)
......
...@@ -17,13 +17,11 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -17,13 +17,11 @@ 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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND) local g=vgf.SelectMatchingCard(HINTMSG_RTOHAND,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,2,nil)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_MZONE,0,1,2,nil) vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
Duel.HintSelection(g)
Duel.SendtoHand(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()
...@@ -35,17 +33,16 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,17 +33,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
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL) local g=vgf.SelectMatchingCard(HINTMSG_CALL,e,tp,vgf.IsCanBeCalled,tp,LOCATION_HAND,0,0,ct,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,Card.IsCanBeSpecialSummoned,tp,LOCATION_HAND,0,0,ct,nil,e,0,tp,false,false,POS_FACEUP_ATTACK)
if g:GetCount()==1 then if g:GetCount()==1 then
vgf.Call(g,0,tp) vgf.Sendto(LOCATION_MZONE,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 vgf.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=vgf.GetMatchingGroup(vgd.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
Duel.SendtoGrave(tc,REASON_COST) vgf.Sendto(LOCATION_DROP,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
...@@ -56,9 +53,9 @@ function cm.operation1(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,9 +53,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 vgf.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=vgf.GetMatchingGroup(vgd.CallFilter,tp,LOCATION_MZONE,0,nil,tp,szone):GetFirst()
Duel.SendtoGrave(tc,REASON_COST) vgf.Sendto(LOCATION_DROP,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()
......
...@@ -6,17 +6,15 @@ function cm.initial_effect(c) ...@@ -6,17 +6,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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND) local g=vgf.SelectMatchingCard(HINTMSG_RTOHAND,e,tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil) vgf.Sendto(LOCATION_HAND,g,nil,REASON_EFFECT)
Duel.HintSelection(g)
Duel.SendtoHand(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 vgf.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,1,nil,e:GetHandler()) and Duel.GetAttacker()==e:GetHandler() and vgf.RMonsterCondition(e)
end end
function cm.cfilter(c,mc) function cm.cfilter(c,mc)
return vgf.GetColumnGroup(c):IsContains(mc) and c:IsControler(mc:GetControler()) and c:GetFlagEffect(SupportFlag)>0 return vgf.GetColumnGroup(c):IsContains(mc) and c:IsControler(mc:GetControler()) and c:GetFlagEffect(FLAG_SUPPORT)>0
end end
\ No newline at end of file
...@@ -15,13 +15,11 @@ end ...@@ -15,13 +15,11 @@ 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
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_Call) local g=vgf.SelectMatchingCard(HINTMSG_Call,e,tp,cm.filter,tp,LOCATION_DROP,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) vgf.Sendto(LOCATION_MZONE,g,0,tp,nil,POS_FACEUP_DEFENSE)
Duel.HintSelection(g)
vgf.Call(g,0,tp,nil,POS_FACEUP_DEFENSE)
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return c:IsLevel(c,0,1) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) return c:IsLevel(c,0,1) and vgf.IsCanBeCalled(c,e,tp)
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()
......
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,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,nil,cm.condition)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
vgf.AtkUp(c,c,10000)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not (c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
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,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,vgf.DamageCost(1),cm.condition)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
vgf.AtkUp(c,c,10000)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not (c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
end end
\ No newline at end of file
...@@ -11,25 +11,18 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -11,25 +11,18 @@ 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=vgf.IsCanBeCalled(tc,e,tp)
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) local tg=vgf.SelectMatchingCard(HINTMSG_DISCARD,e,tp,nil,tp,LOCATION_HAND,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD) vgf.Sendto(LOCATION_DROP,tg,REASON_COST)
local tg=Duel.SelectMatchingCard(tp,Card.IsDiscardable,tp,LOCATION_HAND,0,1,1,nil,REASON_EFFECT)
Duel.SendtoGrave(tg,REASON_COST)
end end
end end
\ No newline at end of file
...@@ -6,8 +6,7 @@ function cm.initial_effect(c) ...@@ -6,8 +6,7 @@ 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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_VMONSTER) local g=vgf.SelectMatchingCard(HINTMSG_VMONSTER,e,tp,vgf.VMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,vgf.VMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_FIELD,5000,nil,cm.tg,g:GetFirst(),EFFECT_UPDATE_ATTACK,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,LOCATION_MZONE,LOCATION_MZONE) vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_FIELD,5000,nil,cm.tg,g:GetFirst(),EFFECT_UPDATE_ATTACK,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,LOCATION_MZONE,LOCATION_MZONE)
end end
function cm.tg(e,c) function cm.tg(e,c)
......
--能量发生器 --能量发生器
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,17 +35,17 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,17 +35,17 @@ 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)
return Duel.GetTurnPlayer()==tp and Duel.GetMatchingGroupCount(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,20401001)<10 return Duel.GetTurnPlayer()==tp and vgf.GetMatchingGroupCount(Card.IsCode,tp,LOCATION_EMBLEM,0,nil,20401001)<10
end end
function cm.op2(e,tp,eg,ep,ev,re,r,rp) 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 vgf.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)
......
...@@ -6,11 +6,11 @@ function cm.initial_effect(c) ...@@ -6,11 +6,11 @@ function cm.initial_effect(c)
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.op,cm.cost,cm.con) vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.op,cm.cost,cm.con)
end end
function cm.filter(c) function cm.filter(c)
return c:IsCode(10101009) or (c:IsLevelBelow(4) and c:GetFlagEffectLabel(ConditionFlag)==201) return c:IsCode(10101009) or (c:IsLevelBelow(4) and c:GetFlagEffectLabel(FLAG_CONDITION)==201)
end end
function cm.con(e) function cm.con(e)
local c=e:GetHandler() local c=e:GetHandler()
return c:GetFlagEffectLabel(ConditionFlag)==201 and vgf.RMonsterCondition(e) return c:GetFlagEffectLabel(FLAG_CONDITION)==201 and vgf.RMonsterCondition(e)
end end
function cm.val(e) function cm.val(e)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -22,8 +22,8 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -22,8 +22,8 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
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 if chk==0 then
return vgf.DamageCostOP(1,e,tp,eg,ep,ev,re,r,rp,chk) and vgf.DisCardCostOp(1,e,tp,eg,ep,ev,re,r,rp,chk) return vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) and vgf.DisCardCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
end end
vgf.DamageCostOP(1,e,tp,eg,ep,ev,re,r,rp,chk) vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
vgf.DisCardCostOp(1,e,tp,eg,ep,ev,re,r,rp,chk) vgf.DisCardCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
end end
\ No newline at end of file
...@@ -6,9 +6,8 @@ function cm.initial_effect(c) ...@@ -6,9 +6,8 @@ function cm.initial_effect(c)
vgd.GlobalCheckEffect(c,m,EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS,EVENT_TO_GRAVE,cm.checkcon,cm.checkop) vgd.GlobalCheckEffect(c,m,EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS,EVENT_TO_GRAVE,cm.checkcon,cm.checkop)
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 Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,2,nil) end if chk==0 then return vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,2,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE) local g=vgf.SelectMatchingCard(HINTMSG_POSCHANGE,e,tp,cm.filter,tp,LOCATION_MZONE,0,2,2,nil)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_MZONE,0,2,2,nil)
Duel.ChangePosition(g,POS_FACEUP_DEFENCE) Duel.ChangePosition(g,POS_FACEUP_DEFENCE)
end end
function cm.filter(c) function cm.filter(c)
...@@ -16,9 +15,8 @@ function cm.filter(c) ...@@ -16,9 +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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LEAVEONFIELD) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.VMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
local g=Duel.SelectTarget(tp,vgf.VMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil) if g:GetCount()>0 then vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT) end
if g:GetCount()>0 then Duel.SendtoGrave(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)
...@@ -31,14 +29,14 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp) ...@@ -31,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,vgf.IsCanBeCalled,0,ct1,nil,e,tp)
if sg:GetCount()>0 then if sg:GetCount()>0 then
vgf.Call(sg,0,tp) vgf.Sendto(LOCATION_MZONE,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)
......
...@@ -8,31 +8,19 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -8,31 +8,19 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local ct=c:GetOverlayCount() local ct=c:GetOverlayCount()
if ct>=5 then Duel.Draw(tp,1,REASON_EFFECT) end if ct>=5 then Duel.Draw(tp,1,REASON_EFFECT) end
if ct>=10 then if ct>=10 then
vgf.AtkUp(c,c,10000,nil,nil,EFFECT_TYPE_SINGLE,EVENT_BATTLED) local t={vgf.AtkUp(c,c,10000),vgf.StarUp(c,c,1)}
vgf.StarUp(c,c,1,nil,nil,EFFECT_TYPE_SINGLE,EVENT_BATTLED) vgf.EffectReset(c,t,EVENT_BATTLED)
end end
if ct>=15 then if ct>=15 then
local g1=Duel.GetMatchingGroup(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,nil) local g1=vgf.GetMatchingGroup(vgf.RMonsterFilter,tp,LOCATION_MZONE,0,nil)
local g2=Duel.GetMatchingGroup(vgf.RMonsterFilter,tp,0,LOCATION_MZONE,nil) local g2=vgf.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,vgf.IsCanBeCalled,tp,0,2,nil,e,tp)
vgf.Call(g,0,tp) vgf.Sendto(LOCATION_MZONE,g,0,tp)
end end
end end
end end
\ No newline at end of file
...@@ -14,16 +14,13 @@ function cm.checkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -14,16 +14,13 @@ function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
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.GetFlagEffectLabel(tp,ConditionFlag)==10102001 local ct=Duel.GetFlagEffectLabel(tp,FLAG_CONDITION)
return VgF.GetValueType(ct)=="number" and ct==10102001
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 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)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LEAVEONFIELD) local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
local g=Duel.SelectTarget(tp,vgf.RMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil) vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
if g then
Duel.HintSelection(g)
Duel.SendtoGrave(g,REASON_EFFECT)
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)
vgf.VgCard(c) vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_BATTLED,cm.op,cm.cost,cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetFlagEffect(FLAG_SUPPORT)>0 and vgf.RMonsterCondition(e)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
return vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
end
vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
vgf.Sendto(LOCATION_DROP,c,REASON_COST)
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)
--【自】:这个单位从手牌登场到R时,通过【费用】[计数爆发1,灵魂爆发1],选择你的弃牌区中的1张等级2以下的卡,CALL到R上,这个回合中,那个单位的力量+5000。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,cm.cost,cm.condition)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)) and c:IsSummonLocation(LOCATION_HAND)
end
--效果二处理
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
vgf.SearchCard(LOCATION_MZONE,LOCATION_DROP,cm.filter2)(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetOperatedGroup()
vgf.AtkUp(c,g,5000)
end
--效果二召唤等级筛选
function cm.filter2(c)
return vgf.IsLevel(c,0,1,2)
end
--计数爆发1,灵魂爆发1
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) and vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) end
vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
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)
--追加效果——抽1张卡!选择你的1个单位,这个回合中,☆+1!将当前存在于前列的你所有的单位的力量+10000!你的伤害区中的卡的张数在对手的伤害区中的卡的张数以上的话,选择你的伤害区中的1张卡,回复!
vgd.CardTrigger(c,cm.operation)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Draw(tp,1,REASON_TRIGGER)
local g1=vgf.SelectMatchingCard(HINTMSG_CRITICAL_STRIKE,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
vgf.StarUp(c,g1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP)
local g2=vgf.GetMatchingGroup(vgf.IsSequence,tp,LOCATION_MZONE,0,nil,0,4,5)
vgf.AtkUp(c,g2,10000,nil)
if vgf.GetMatchingGroupCount(nil,tp,LOCATION_DAMAGE,0,nil)>=vgf.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()
if tc then
vgf.Sendto(LOCATION_DROP,tc,REASON_TRIGGER)
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)
vgf.VgCard(c) vgf.VgCard(c)
--【自】【R】:你的先导者攻击时,对手的后防者在2张以下的话,通过【费用】[将这个单位放置到灵魂里],选择你的1张先导者,这次战斗中,☆+1。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_ATTACK_ANNOUNCE,cm.operation2,cm.cost,cm.condition2)
end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
local c=Duel.GetAttacker()
return vgf.RMonsterCondition(e) and vgf.GetMatchingGroupCount(vgf.RMonsterFilter,tp,0,LOCATION_MZONE,nil)<=2 and vgf.VMonsterFilter(c)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return true end
local rc=vgf.GetMatchingGroup(vgf.VMonsterFilter,tp,LOCATION_MZONE,0,nil):GetFirst()
vgf.Sendto(LOCATION_OVERLAY,c,rc)
end
function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_CRITICAL_STRIKE,e,tp,vgf.VMonsterFilter,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then
local e1=vgf.StarUp(c,g,1,nil)
vgf.EffectReset(c,e1,EVENT_BATTLED)
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)
vgf.VgCard(c) vgf.VgCard(c)
--【自】:这个单位被「沙尘之重炮 尤金」RIDE时,抽1张卡,选择你的弃牌区中的至多1张卡,放置到灵魂里。
vgd.BeRidedByCard(c,m,10401002,cm.operation)
--【自】【V/R】:这个单位攻击时,对手的后防者在2张以下的话,通过【费用】[计数爆发1],灵魂填充1,这次战斗中,这个单位的力量+5000。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.operation1,vgf.DamageCost(1),cm.condition)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
local g=vgf.SelectMatchingCard(HINTMSG_XMATERIAL,e,tp,nil,tp,LOCATION_DROP,0,0,1,nil)
if g:GetCount()>0 then
vgf.Sendto(LOCATION_OVERLAY,g,vgf.GetVMonster(tp))
end
end
function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
vgf.OverlayFill(1)(e,tp,eg,ep,ev,re,r,rp,chk)
local e1=vgf.AtkUp(c,c,5000)
vgf.EffectReset(c,e1,EVENT_BATTLED)
end
function cm.condition (e,tp,eg,ep,ev,re,r,rp)
return vgf.GetMatchingGroupCount(vgf.RMonsterFilter,tp,0,LOCATION_MZONE,nil)<=2
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)
--【自】:这个单位登场到R时,通过【费用】[计数爆发2],灵魂填充1,选择对手的1张后防者,退场。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,vgf.DamageCost(2),cm.condition)
end
--这个单位从手牌登场到R时
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not (c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
vgf.OverlayFill(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)
if g:GetCount()>0 then
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end
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)
--【自】【R】:这个单位的攻击击中时,通过【费用】[将手牌中的1张卡舍弃],抽1张卡。
vgd.EffectTypeTriggerWhenHitting(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,cm.operation, vgf.DisCardCost(1))
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
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)
--【自】:这个单位登场到R时,通过【费用】[计数爆发1,灵魂爆发1],选择对手的1张等级2以上的后防者,退场。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation,cm.cost,cm.condition)
end
--计数爆发1,灵魂爆发1
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) and vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) end
vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
end
--选择对手的1张等级2以上的后防者
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not (c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_LEAVEONFIELD,e,tp,cm.filter,tp,0,LOCATION_MZONE,1,1,nil)
if g:GetCount()>0 then
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end
end
function cm.filter(c)
return vgf.RMonsterFilter(c) and c:IsLevelAbove(3)
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.CardToG(c,nil,cm.op)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_MONSTER)
local g=vgf.SelectMatchingCard(HINTMSG_MONSTER,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst()
if vgf.RMonsterFilter(tc) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(1)
tc:RegisterEffect(e1)
vgf.EffectReset(c,e1,EVENT_BATTLED)
elseif vgf.VMonsterFilter(tc) then
tc:RegisterFlagEffect(FLAG_DEFENSE_ENTIRELY,RESET_EVENT+RESETS_STANDARD,0,1)
end
end
local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if sg:GetCount()>=2 then
sg=sg:Select(tp,1,1,nil)
vgf.Sendto(LOCATION_DROP,sg,REASON_DISCARD+REASON_EFFECT)
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)
vgf.VgCard(c) vgf.VgCard(c)
--【自】:这个单位登场到R时,你有「重力的支配者 磁力重压」的先导者的话,灵魂填充2。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.OverlayFill(2),nil,cm.condition)
--【起】【R】:你的灵魂在10张以上的话,通过【费用】[计数爆发2],这个回合中,将当前存在于前列的你所有的单位的力量+5000。
vgd.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.operation,vgf.DamageCost(2),cm.condition1)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)) and vgf.GetVMonster(tp):IsCode(10401003)
end
function cm.condition1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return vgf.RMonsterCondition(e) and vgf.GetVMonster(tp):GetOverlayCount()>=10
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g2=vgf.GetMatchingGroup(vgf.IsSequence,tp,LOCATION_MZONE,0,nil,0,4,5)
vgf.AtkUp(c,g2,10000,nil)
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)
--【自】:这个单位被「重力的支配者 磁力重压」RIDE时,通过【费用】[将手牌中的1张卡放置到灵魂里],抽1张卡,灵魂填充1。
vgd.BeRidedByCard(c,m,10401003,cm.operation,cm.cost)
--【自】:这个单位登场到R时,通过【费用】[计数爆发1],灵魂填充2。
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.operation1,vgf.DamageCost(1),cm.condition)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Draw(tp,1,REASON_EFFECT)
vgf.OverlayFill(1)(e,tp,eg,ep,ev,re,r,rp,chk)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return vgf.GetMatchingGroupCount(nil,tp,0,LOCATION_HAND,nil)>=1 end
local rc=vgf.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)
vgf.Sendto(LOCATION_OVERLAY,g,rc)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
end
function cm.operation1(e,tp,eg,ep,ev,re,r,rp)
vgf.OverlayFill(2)(e,tp,eg,ep,ev,re,r,rp,chk)
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)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetCondition(vgf.RMonsterCondition)
e1:SetValue(vgf.tgoval)
c:RegisterEffect(e1)
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.CardToG(c,nil,cm.op)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_MONSTER,e,tp,Card.IsFaceup,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst()
if vgf.RMonsterFilter(tc) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(1)
tc:RegisterEffect(e1)
vgf.EffectReset(c,e1,EVENT_BATTLED)
elseif vgf.VMonsterFilter(tc) then
tc:RegisterFlagEffect(FLAG_DEFENSE_ENTIRELY,RESET_EVENT+RESETS_STANDARD,0,1)
end
end
local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if sg:GetCount()>=2 then
sg=sg:Select(tp,1,1,nil)
vgf.Sendto(LOCATION_DROP,sg,REASON_DISCARD+REASON_EFFECT)
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)
vgf.VgCard(c) vgf.VgCard(c)
--通过【费用】[计数爆发1]施放!灵魂填充1。这之后,选择你的1个单位,你的灵魂里的卡每有5张,这个回合中,力量+10000。你的灵魂在10张以上的话,抽1张卡。
vgd.SpellActivate(c,m,cm.operation,vgf.DamageCost(1))
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
vgf.OverlayFill(1)(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKUP)
local e1=vgf.GetMatchingGroupCount(nil,tp,LOCATION_OVERLAY,0,nil)/5
local e2=e1*10000
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
vgf.AtkUp(c,g,e2,nil)
if vgf.GetMatchingGroupCount(nil,tp,LOCATION_OVERLAY,0,nil)>=10 then
Duel.Draw(tp,1,REASON_EFFECT)
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)
vgf.VgCard(c) vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,LOCATION_MZONE,EFFECT_TYPE_FIELD,EVENT_MOVE,cm.op,nil,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con2)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
vgf.AtkUp(c,g,5000)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.VMonsterCondition(e) and eg:IsExists(cm.filter,1,nil,tp) and not eg:IsContains(e:GetHandler())
end
function cm.filter(c,tp)
return c:IsSetCard(0x5040) and c:IsLocation(LOCATION_ORDER) and c:IsControler(tp)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return vgf.RMonsterCondition(e) and Duel.IsPlayerAffectedByEffect(tp,AFFECT_CODE_DEEP_NIGHT) and Duel.GetTurnPlayer()==tp
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,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,cm.cost,cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return Duel.IsPlayerAffectedByEffect(tp,AFFECT_CODE_DEEP_NIGHT) and not (c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) and vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) end
vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
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,nil,EFFECT_TYPE_SINGLE,EVENT_DISCARD,cm.op,vgf.DamageCost(1),cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if vgf.IsCanBeCalled(c,e,tp) then
vgf.Sendto(LOCATION_MZONE,c,0,tp)
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil)
end
function cm.filter(c)
return c:IsType(TYPE_CONTINUOUS) and c:IsFaceup()
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.CardToG(c,nil,cm.op)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_MONSTER)
local g=vgf.SelectMatchingCard(HINTMSG_MONSTER,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst()
if vgf.RMonsterFilter(tc) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(1)
tc:RegisterEffect(e1)
vgf.EffectReset(c,e1,EVENT_BATTLED)
elseif vgf.VMonsterFilter(tc) then
tc:RegisterFlagEffect(FLAG_DEFENSE_ENTIRELY,RESET_EVENT+RESETS_STANDARD,0,1)
end
end
local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if sg:GetCount()>=2 then
sg=sg:Select(tp,1,1,nil)
vgf.Sendto(LOCATION_DROP,sg,REASON_DISCARD+REASON_EFFECT)
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)
vgf.VgCard(c) vgf.VgCard(c)
vgd.ContinuousSpell(c,vgf.OverlayCost(1))
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_MOVE,cm.operation,nil,cm.condition)
--黑夜
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(AFFECT_CODE_NIGHT)
e1:SetRange(LOCATION_ORDER)
e1:SetTargetRange(1,0)
e1:SetCondition(cm.con1)
c:RegisterEffect(e1)
--深渊黑夜
local e2=e1:Clone()
e2:SetCode(AFFECT_CODE_DEEP_NIGHT)
e2:SetCondition(cm.con2)
c:RegisterEffect(e2)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_ORDER)
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return not vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil) and vgf.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_ORDER,0,1,nil,0x5040)
and not vgf.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_ORDER,0,2,nil,0x5040)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return not vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_ORDER,0,1,nil) and vgf.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_ORDER,0,2,nil,0x5040)
end
function cm.filter(c)
return not c:IsSetCard(0x5040) and c:IsType(TYPE_CONTINUOUS)
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.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.op,vgf.OverlayCost(2),cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=vgf.GetMatchingGroup(vgf.IsLevel,tp,LOCATION_MZONE,0,nil,3)
for tc in vgf.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_ADD_ATTRIBUTE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(SKILL_SUPPORT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.IsExistingMatchingCard(vgf.IsLevel,tp,LOCATION_MZONE,0,2,nil,3) and vgf.RMonsterCondition(e)
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,nil,EFFECT_TYPE_SINGLE,EVENT_DISCARD,cm.op,cm.cost,cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) and vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) end
vgf.DamageCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
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.BeRidedByCard(c,m,10401008,cm.op)
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op2,nil,cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,3)
local ct=g:GetCount()
if ct>0 then
Duel.ConfirmCards(tp,g)
if ct>1 then Duel.SortDecktop(tp,tp,ct) end
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not (c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
end
function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetDecktopGroup(tp,1)
if g:GetCount()>0 then
Duel.ConfirmCards(tp,g)
Duel.DisableShuffleCheck()
if Duel.SelectOption(tp,1195,1196)==1 then
Duel.MoveSequence(g:GetFirst(),1)
vgf.AtkUp(c,c,2000)
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)
vgf.VgCard(c) vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,cm.cost,cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not (c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanChangePosition() and e:GetHandler():IsPosition(POS_FACEUP_ATTACK) and vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk) end
vgf.OverlayCost(1)(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.ChangePosition(e:GetHandler(),POS_FACEUP_DEFENCE)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(tp,2)
if g:GetCount()>0 then
Duel.ConfirmCards(tp,g)
Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOTOP)
local sg=g:select(tp,1,1,nil)
g:Sub(sg)
if g:GetCount()>0 then
Duel.MoveSequence(g:GetFirst(),1)
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)
vgf.VgCard(c) vgf.VgCard(c)
vgd.CardToG(c,nil,cm.op)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_MONSTER)
local g=vgf.SelectMatchingCard(HINTMSG_MONSTER,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst()
if vgf.RMonsterFilter(tc) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(1)
tc:RegisterEffect(e1)
vgf.EffectReset(c,e1,EVENT_BATTLED)
elseif vgf.VMonsterFilter(tc) then
tc:RegisterFlagEffect(FLAG_DEFENSE_ENTIRELY,RESET_EVENT+RESETS_STANDARD,0,1)
end
end
local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if sg:GetCount()>=2 then
sg=sg:Select(tp,1,1,nil)
vgf.Sendto(LOCATION_DROP,sg,REASON_DISCARD+REASON_EFFECT)
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)
vgf.VgCard(c) vgf.VgCard(c)
vgd.EffectTypeTrigger(c,m,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,vgf.SearchCard(LOCATION_HAND,LOCATION_DROP,cm.filter,1,0),nil,cm.con)
vgd.EffectTypeContinuousChangeAttack(c,EFFECT_TYPE_SINGLE,5000,cm.con2)
vgd.GlobalCheckEffect(c,m,EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS,EVENT_CHAINING,cm.checkcon,cm.checkop)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE)
end
function cm.filter(c)
return c:GetType()==TYPE_SPELL
end
function cm.checkcon(e,tp,eg,ep,ev,re,r,rp)
return re:IsHasType(EFFECT_TYPE_ACTIVATE) and rp==tp
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,m)>0 and vgf.RMonsterCondition(e)
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.EffectTypeIgnition(c,m,LOCATION_MZONE,cm.op,cm.cost,vgf.RMonsterCondition)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,2,2,nil)
vgf.AtkUp(c,g,5000)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
vgf.Sendto(LOCATION_DROP,e:GetHandler(),REASON_COST)
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.CardToG(c,nil,cm.op)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_MONSTER)
local g=vgf.SelectMatchingCard(HINTMSG_MONSTER,e,tp,nil,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then
local tc=g:GetFirst()
if vgf.RMonsterFilter(tc) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(1)
tc:RegisterEffect(e1)
vgf.EffectReset(c,e1,EVENT_BATTLED)
elseif vgf.VMonsterFilter(tc) then
tc:RegisterFlagEffect(FLAG_DEFENSE_ENTIRELY,RESET_EVENT+RESETS_STANDARD,0,1)
end
end
local sg=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if sg:GetCount()>=2 then
sg=sg:Select(tp,1,1,nil)
vgf.Sendto(LOCATION_DROP,sg,REASON_DISCARD+REASON_EFFECT)
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)
vgf.VgCard(c) vgf.VgCard(c)
vgd.SpellActivate(c,m,cm.op,vgf.OverlayCost(2))
end
function cm.op(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=Duel.GetDecktopGroup(tp,4)
Duel.ConfirmCards(tp,4)
local ct=bit.ReturnCount(vgf.GetAvailableLocation(tp))
if chk>0 then
if ct>2 then ct=2 end
else
if ct>1 then ct=1 end
end
if ct>0 then
Duel.DisableShuffleCheck()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CALL)
local sg=g:FilterSelect(tp,vgf.IsCanBeCalled,0,ct,nil,e,tp)
vgf.Sendto(LOCATION_MZONE,sg,0,tp)
sg=Duel.GetOperatedGroup()
vgf.AtkUp(c,sg,5000)
g:Sub(sg)
end
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
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),cm.con)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=vgf.SelectMatchingCard(HINTMSG_ATKUP,e,tp,nil,tp,LOCATION_MZONE,0,3,3,nil)
vgf.AtkUp(c,g,10000)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.GetVMonster(tp):IsCode(10401009)
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.OverlayCost(1))
end
function cm.op(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
vgf.SearchCard(LOCATION_MZONE,LOCATION_GRAVE,cm.filter,1,1)(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetOperatedGroup()
vgf.AtkUp(c,g,10000)
end
function cm.filter(c)
local tp=c:GetControl()
local lv=vgf.GetVMonster(tp):GetLevel()
return c:IsLevelBelow(lv)
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,nil,EFFECT_TYPE_SINGLE,EVENT_SPSUMMON_SUCCESS,cm.op,vgf.DamageCost(1),cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return not(c:IsSummonType(SUMMON_TYPE_RIDE) or c:IsSummonType(SUMMON_TYPE_SELFRIDE))
and vgf.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil)
end
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)
vgf.Sendto(LOCATION_DROP,g,REASON_EFFECT)
end
function cm.filter(c)
return c:GetFlagEffectLabel(FLAG_CONDITION)==201
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_SINGLE,EVENT_ATTACK_ANNOUNCE,cm.op,nil,cm.con)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return vgf.GetMatchingGroup(vgf.RMonsterFilter,tp,0,LOCATION_MZONE,nil):GetCount()<=2 and vgf.RMonsterCondition(e)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=vgf.AtkUp(c,c,5000)
vgf.EffectReset(c,e1,EVENT_BATTLED)
end end
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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