Commit c8adf691 authored by 未闻皂名's avatar 未闻皂名

2022/11/26 部分先行卡移动到正式卡,控制权相关调整(抗性,贯通)

parent 3e00c4d7
No preview for this file type
No preview for this file type
...@@ -44,7 +44,9 @@ function RushDuel.AttachBattleIndes(e, card, value, desc, reset, forced) ...@@ -44,7 +44,9 @@ function RushDuel.AttachBattleIndes(e, card, value, desc, reset, forced)
end end
-- 赋予: 效果破坏抗性 -- 赋予: 效果破坏抗性
function RushDuel.AttachEffectIndes(e, card, value, desc, reset, forced) function RushDuel.AttachEffectIndes(e, card, value, desc, reset, forced)
return RushDuel.CreateSingleEffect(e, desc, card, EFFECT_INDESTRUCTABLE_EFFECT, value, reset, forced) local attach = RushDuel.CreateSingleEffect(e, desc, card, EFFECT_INDESTRUCTABLE_EFFECT, value, reset, forced)
attach:SetLabel(e:GetHandlerPlayer())
return attach
end end
-- 赋予: 战斗, 效果破坏抗性 (有次数限制) -- 赋予: 战斗, 效果破坏抗性 (有次数限制)
function RushDuel.AttachIndesCount(e, card, count, value, desc, reset, forced) function RushDuel.AttachIndesCount(e, card, count, value, desc, reset, forced)
......
...@@ -27,6 +27,17 @@ function RushDuel._private_check_effect_values(value, values, decode) ...@@ -27,6 +27,17 @@ function RushDuel._private_check_effect_values(value, values, decode)
end end
return false return false
end end
-- 内部方法:检测效果破坏抗性的控制权
function RushDuel._private_swap_effect_indes(value, swap)
if swap then
local check = value(nil)
return function()
return check[1], check[3], check[2]
end
else
return value
end
end
-- 条件: 卡片是否处于"极大模式" -- 条件: 卡片是否处于"极大模式"
function RushDuel.IsMaximumMode(card) function RushDuel.IsMaximumMode(card)
...@@ -154,9 +165,11 @@ function RushDuel.IsCanAttachBattleIndes(card, value) ...@@ -154,9 +165,11 @@ function RushDuel.IsCanAttachBattleIndes(card, value)
return true return true
end end
-- 条件: 可否赋予效果 - 效果破坏抗性 -- 条件: 可否赋予效果 - 效果破坏抗性
function RushDuel.IsCanAttachEffectIndes(card, value) function RushDuel.IsCanAttachEffectIndes(card, player, value)
local swap = card:GetControler() ~= player
local check = RushDuel._private_swap_effect_indes(value, swap)
local values = RushDuel.GetEffectValues(card, EFFECT_INDESTRUCTABLE_EFFECT) local values = RushDuel.GetEffectValues(card, EFFECT_INDESTRUCTABLE_EFFECT)
return RushDuel._private_check_effect_values(value, values, function(val) return RushDuel._private_check_effect_values(check, values, function(val)
if val == 1 then if val == 1 then
return {true, TYPE_MONSTER + TYPE_SPELL + TYPE_TRAP, TYPE_MONSTER + TYPE_SPELL + TYPE_TRAP} return {true, TYPE_MONSTER + TYPE_SPELL + TYPE_TRAP, TYPE_MONSTER + TYPE_SPELL + TYPE_TRAP}
else else
......
...@@ -20,6 +20,9 @@ function RushDuel.ValueEffectIndesType(self_type, opponent_type, ignore) ...@@ -20,6 +20,9 @@ function RushDuel.ValueEffectIndesType(self_type, opponent_type, ignore)
return ignore or false, s_type or 0, o_type or 0 return ignore or false, s_type or 0, o_type or 0
end end
local tp = e:GetHandlerPlayer() local tp = e:GetHandlerPlayer()
if e:GetLabel() ~= nil then
tp = e:GetLabel()
end
if rp == tp then if rp == tp then
return s_type ~= 0 and re:IsActiveType(s_type) return s_type ~= 0 and re:IsActiveType(s_type)
else else
......
...@@ -14,18 +14,19 @@ function cm.initial_effect(c) ...@@ -14,18 +14,19 @@ function cm.initial_effect(c)
end end
--Indes Effect --Indes Effect
cm.indval=RD.ValueEffectIndesType(0,TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP) cm.indval=RD.ValueEffectIndesType(0,TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP)
function cm.filter(c) function cm.filter(c,tp)
return RD.IsCanAttachEffectIndes(c,cm.indval) return RD.IsCanAttachEffectIndes(c,tp,cm.indval)
end end
function cm.costfilter(c) function cm.costfilter(c)
return c:IsRace(RACE_SPELLCASTER+RACE_DRAGON) and c:IsAbleToGraveAsCost() return c:IsRace(RACE_SPELLCASTER+RACE_DRAGON) and c:IsAbleToGraveAsCost()
end end
cm.cost=RD.CostSendHandToGrave(cm.costfilter,1,1) cm.cost=RD.CostSendHandToGrave(cm.costfilter,1,1)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil,tp) end
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,LOCATION_MZONE,0,1,1,nil,function(g) local filter=RD.Filter(cm.filter,tp)
RD.SelectAndDoAction(aux.Stringid(m,1),filter,tp,LOCATION_MZONE,0,1,1,nil,function(g)
RD.AttachEffectIndes(e,g:GetFirst(),cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) RD.AttachEffectIndes(e,g:GetFirst(),cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
end) end)
end end
\ No newline at end of file
...@@ -19,15 +19,16 @@ end ...@@ -19,15 +19,16 @@ end
function cm.costcheck(g) function cm.costcheck(g)
return g:GetClassCount(Card.GetRace)==1 return g:GetClassCount(Card.GetRace)==1
end end
function cm.filter(c) function cm.filter(c,tp)
return c:IsFaceup() and c:IsLevelBelow(8) and RD.IsCanAttachEffectIndes(c,cm.indval) return c:IsFaceup() and c:IsLevelBelow(8) and RD.IsCanAttachEffectIndes(c,tp,cm.indval)
end end
cm.cost=RD.CostSendGraveSubToDeck(cm.costfilter,cm.costcheck,2,2) cm.cost=RD.CostSendGraveSubToDeck(cm.costfilter,cm.costcheck,2,2)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil,tp) end
end end
function cm.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,LOCATION_MZONE,0,1,2,nil,function(g) local filter=RD.Filter(cm.filter,tp)
RD.SelectAndDoAction(aux.Stringid(m,1),filter,tp,LOCATION_MZONE,0,1,2,nil,function(g)
g:ForEach(function(tc) g:ForEach(function(tc)
RD.AttachEffectIndes(e,tc,cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) RD.AttachEffectIndes(e,tc,cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
end) end)
......
...@@ -19,7 +19,7 @@ end ...@@ -19,7 +19,7 @@ end
--Indes --Indes
cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP) cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP)
function cm.condition(e,tp,eg,ep,ev,re,r,rp) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return RD.IsCanAttachEffectIndes(e:GetHandler(),cm.indval) return RD.IsCanAttachEffectIndes(e:GetHandler(),tp,cm.indval)
end end
cm.cost=RD.CostSendDeckTopToGrave(1) cm.cost=RD.CostSendDeckTopToGrave(1)
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -16,17 +16,18 @@ cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP) ...@@ -16,17 +16,18 @@ cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP)
function cm.confilter(c) function cm.confilter(c)
return c:IsFaceup() and c:IsRace(RACE_WARRIOR+RACE_FAIRY+RACE_BEAST+RACE_WINDBEAST+RACE_REPTILE) return c:IsFaceup() and c:IsRace(RACE_WARRIOR+RACE_FAIRY+RACE_BEAST+RACE_WINDBEAST+RACE_REPTILE)
end end
function cm.filter(c) function cm.filter(c,tp)
return c:IsFaceup() and RD.IsCanAttachEffectIndes(c,cm.indval) return c:IsFaceup() and RD.IsCanAttachEffectIndes(c,tp,cm.indval)
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.IsExistingMatchingCard(cm.confilter,tp,LOCATION_MZONE,0,1,nil) return Duel.IsExistingMatchingCard(cm.confilter,tp,LOCATION_MZONE,0,1,nil)
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil,tp) end
end end
function cm.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,LOCATION_MZONE,0,1,2,nil,function(g) local filter=RD.Filter(cm.filter,tp)
RD.SelectAndDoAction(aux.Stringid(m,1),filter,tp,LOCATION_MZONE,0,1,2,nil,function(g)
g:ForEach(function(tc) g:ForEach(function(tc)
RD.AttachEffectIndes(e,tc,cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) RD.AttachEffectIndes(e,tc,cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
end) end)
......
...@@ -14,15 +14,16 @@ function cm.initial_effect(c) ...@@ -14,15 +14,16 @@ function cm.initial_effect(c)
end end
--Indes --Indes
cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP) cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP)
function cm.filter(c) function cm.filter(c,tp)
return c:IsFaceup() and c:IsRace(RACE_GALAXY) and RD.IsCanAttachEffectIndes(c,cm.indval) return c:IsFaceup() and c:IsRace(RACE_GALAXY) and RD.IsCanAttachEffectIndes(c,tp,cm.indval)
end end
cm.cost=RD.CostSendHandToGrave(Card.IsAbleToGraveAsCost,1,1) cm.cost=RD.CostSendHandToGrave(Card.IsAbleToGraveAsCost,1,1)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil,tp) end
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,LOCATION_MZONE,0,1,1,nil,function(g) local filter=RD.Filter(cm.filter,tp)
RD.SelectAndDoAction(aux.Stringid(m,1),filter,tp,LOCATION_MZONE,0,1,1,nil,function(g)
RD.AttachEffectIndes(e,g:GetFirst(),cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) RD.AttachEffectIndes(e,g:GetFirst(),cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
end) end)
end end
\ No newline at end of file
...@@ -19,9 +19,9 @@ cm.indval=RD.ValueEffectIndesType(0,TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP) ...@@ -19,9 +19,9 @@ cm.indval=RD.ValueEffectIndesType(0,TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP)
function cm.confilter(c,tp) function cm.confilter(c,tp)
return c:GetSummonPlayer()==tp return c:GetSummonPlayer()==tp
end end
function cm.filter(c) function cm.filter(c,tp)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_SPELLCASTER) return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_SPELLCASTER)
and RD.IsCanAttachEffectIndes(c,cm.indval) and RD.IsCanAttachEffectIndes(c,tp,cm.indval)
end end
function cm.exfilter(c) function cm.exfilter(c)
return c:IsCode(list[1]) return c:IsCode(list[1])
...@@ -30,12 +30,12 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -30,12 +30,12 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.confilter,1,nil,1-tp) return eg:IsExists(cm.confilter,1,nil,1-tp)
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil,tp) end
local tc=eg:GetFirst() local tc=eg:GetFirst()
Duel.SetTargetCard(tc) Duel.SetTargetCard(tc)
end end
function cm.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_MZONE,0,nil) local g=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_MZONE,0,nil,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
g:ForEach(function(tc) g:ForEach(function(tc)
RD.AttachEffectIndes(e,tc,cm.indval,aux.Stringid(m,1),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) RD.AttachEffectIndes(e,tc,cm.indval,aux.Stringid(m,1),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
......
...@@ -16,7 +16,7 @@ end ...@@ -16,7 +16,7 @@ end
--Indes --Indes
cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP) cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP)
function cm.condition(e,tp,eg,ep,ev,re,r,rp) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return RD.IsCanAttachEffectIndes(e:GetHandler(),cm.indval) return RD.IsCanAttachEffectIndes(e:GetHandler(),tp,cm.indval)
end end
cm.cost=RD.CostSendDeckBottomToGrave(1,function(g) cm.cost=RD.CostSendDeckBottomToGrave(1,function(g)
return g:GetFirst():GetRace() return g:GetFirst():GetRace()
......
...@@ -12,11 +12,21 @@ function cm.initial_effect(c) ...@@ -12,11 +12,21 @@ function cm.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--Pierce --Pierce
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_PIERCE) e2:SetCode(EFFECT_PIERCE)
c:RegisterEffect(e2) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e3:SetRange(LOCATION_SZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(cm.prctg)
e3:SetLabelObject(e2)
c:RegisterEffect(e3)
end end
--Activate --Activate
function cm.target(c,e,tp) function cm.target(c,e,tp)
return c:IsControler(tp) and c:IsFaceup() and c:IsRace(RACE_MACHINE) return c:IsControler(tp) and c:IsFaceup() and c:IsRace(RACE_MACHINE)
end
--Pierce
function cm.prctg(e,c)
return c==e:GetHandler():GetEquipTarget()
end end
\ No newline at end of file
...@@ -14,8 +14,13 @@ function cm.initial_effect(c) ...@@ -14,8 +14,13 @@ function cm.initial_effect(c)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP) e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_PIERCE) e2:SetCode(EFFECT_PIERCE)
e2:SetCondition(cm.prccon) local e3=Effect.CreateEffect(c)
c:RegisterEffect(e2) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e3:SetRange(LOCATION_SZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(cm.prctg)
e3:SetLabelObject(e2)
c:RegisterEffect(e3)
end end
--Activate --Activate
function cm.target(c,e,tp) function cm.target(c,e,tp)
...@@ -29,6 +34,6 @@ function cm.upval(e,c) ...@@ -29,6 +34,6 @@ function cm.upval(e,c)
return Duel.GetMatchingGroupCount(cm.upfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,nil)*200 return Duel.GetMatchingGroupCount(cm.upfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,nil)*200
end end
--Pierce --Pierce
function cm.prccon(e) function cm.prctg(e,c)
return e:GetHandler():GetEquipTarget():IsAttribute(ATTRIBUTE_DARK) return c==e:GetHandler():GetEquipTarget() and c:IsAttribute(ATTRIBUTE_DARK)
end end
\ No newline at end of file
...@@ -14,9 +14,19 @@ function cm.initial_effect(c) ...@@ -14,9 +14,19 @@ function cm.initial_effect(c)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP) e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_PIERCE) e2:SetCode(EFFECT_PIERCE)
c:RegisterEffect(e2) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e3:SetRange(LOCATION_SZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(cm.prctg)
e3:SetLabelObject(e2)
c:RegisterEffect(e3)
end end
--Activate --Activate
function cm.target(c,e,tp) function cm.target(c,e,tp)
return c:IsControler(tp) and c:IsFaceup() and c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_GALAXY) return c:IsControler(tp) and c:IsFaceup() and c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_GALAXY)
end
--Pierce
function cm.prctg(e,c)
return c==e:GetHandler():GetEquipTarget()
end end
\ No newline at end of file
...@@ -14,15 +14,16 @@ function cm.initial_effect(c) ...@@ -14,15 +14,16 @@ function cm.initial_effect(c)
end end
--Indes --Indes
cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP) cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP)
function cm.filter(c) function cm.filter(c,tp)
return c:IsFaceup() and c:IsLevelAbove(5) and c:IsRace(RACE_MACHINE) and RD.IsCanAttachEffectIndes(c,cm.indval) return c:IsFaceup() and c:IsLevelAbove(5) and c:IsRace(RACE_MACHINE) and RD.IsCanAttachEffectIndes(c,tp,cm.indval)
end end
cm.cost=RD.CostSendHandToGrave(Card.IsAbleToGraveAsCost,1,1) cm.cost=RD.CostSendHandToGrave(Card.IsAbleToGraveAsCost,1,1)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil,tp) end
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,LOCATION_MZONE,0,1,1,nil,function(g) local filter=RD.Filter(cm.filter,tp)
RD.SelectAndDoAction(aux.Stringid(m,1),filter,tp,LOCATION_MZONE,0,1,1,nil,function(g)
local tc=g:GetFirst() local tc=g:GetFirst()
RD.AttachEffectIndes(e,tc,cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) RD.AttachEffectIndes(e,tc,cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
if tc:IsAttribute(ATTRIBUTE_LIGHT) then if tc:IsAttribute(ATTRIBUTE_LIGHT) then
......
local m=120231044 local m=120231044
local cm=_G["c"..m] local cm=_G["c"..m]
cm.name="H·D·D" cm.name="百神硬盘龙"
function cm.initial_effect(c) function cm.initial_effect(c)
--Draw Count --Draw Count
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
...@@ -19,18 +19,19 @@ cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP) ...@@ -19,18 +19,19 @@ cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP)
function cm.costfilter(c) function cm.costfilter(c)
return c:IsRace(RACE_SPELLCASTER+RACE_DRAGON) and c:IsAbleToDeckOrExtraAsCost() return c:IsRace(RACE_SPELLCASTER+RACE_DRAGON) and c:IsAbleToDeckOrExtraAsCost()
end end
function cm.filter(c) function cm.filter(c,tp)
return c:IsFaceup() and RD.IsCanAttachEffectIndes(c,cm.indval) return c:IsFaceup() and RD.IsCanAttachEffectIndes(c,tp,cm.indval)
end end
function cm.setfilter(c) function cm.setfilter(c)
return c:IsCode(list[1]) and c:IsSSetable() return c:IsCode(list[1]) and c:IsSSetable()
end end
cm.cost=RD.CostSendGraveToDeck(cm.costfilter,4,4) cm.cost=RD.CostSendGraveToDeck(cm.costfilter,4,4)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil,tp) end
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,LOCATION_MZONE,0,1,1,nil,function(g) local filter=RD.Filter(cm.filter,tp)
RD.SelectAndDoAction(aux.Stringid(m,1),filter,tp,LOCATION_MZONE,0,1,1,nil,function(g)
RD.AttachEffectIndes(e,g:GetFirst(),cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) RD.AttachEffectIndes(e,g:GetFirst(),cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
RD.CanSelectAndSet(aux.Stringid(m,3),aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,1,1,nil,e) RD.CanSelectAndSet(aux.Stringid(m,3),aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,1,1,nil,e)
end) end)
......
...@@ -13,7 +13,7 @@ function cm.initial_effect(c) ...@@ -13,7 +13,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
--Indes --Indes
cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP,true) cm.indval=RD.ValueEffectIndesType(0,TYPE_TRAP)
function cm.target(e,c) function cm.target(e,c)
return c:IsFaceup() and c:IsLevelAbove(7) and c:IsRace(RACE_CELESTIALWARRIOR+RACE_WARRIOR) return c:IsFaceup() and c:IsLevelAbove(7) and c:IsRace(RACE_CELESTIALWARRIOR+RACE_WARRIOR)
end end
\ No newline at end of file
local m=120231068 local m=120231068
local cm=_G["c"..m] local cm=_G["c"..m]
cm.name="干活的话语" cm.name="工作言语"
function cm.initial_effect(c) function cm.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
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