Commit 920b5f2d authored by POLYMER's avatar POLYMER

fix

parent 05dcb03a
......@@ -9,26 +9,30 @@ function c10105588.initial_effect(c)
e1:SetTarget(c10105588.target)
e1:SetOperation(c10105588.activate)
c:RegisterEffect(e1)
-- ②效果:攻击宣言时从墓地发动
-- ②效果:对方攻击宣言时从墓地发动
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_ATTACK_ANNOUNCE) -- 对方攻击宣言时
e2:SetRange(LOCATION_GRAVE) -- 在墓地发动
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,101055880)
e2:SetCost(aux.bfgcost) -- 自身除外作为cost
e2:SetCondition(c10105588.atkcon) -- 添加条件判断
e2:SetCost(aux.bfgcost)
e2:SetTarget(c10105588.sptg)
e2:SetOperation(c10105588.spop)
c:RegisterEffect(e2)
end
function c10105588.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x7cca)
end
function c10105588.condition(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsExistingMatchingCard(c10105588.cfilter,tp,LOCATION_MZONE,0,1,nil) then return false end
if not Duel.IsChainNegatable(ev) then return false end
return re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE)
end
function c10105588.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
......@@ -36,36 +40,36 @@ function c10105588.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function c10105588.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
end
-- 修正后的筛选函数(添加 e,tp 参数)
-- 新增:判断是否为对方怪兽的攻击宣言
function c10105588.atkcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttacker():IsControler(1-tp) -- 攻击者是对手
end
function c10105588.spfilter(c,e,tp)
return c:GetLevel()==12
and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
end
-- 修正后的目标选择
function c10105588.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c10105588.spfilter,tp,LOCATION_REMOVED,0,1,nil,e,tp)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c10105588.spfilter,tp,LOCATION_REMOVED,0,1,1,nil,e,tp)
if #g>0 then
Duel.SetTargetCard(g:GetFirst())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_REMOVED)
end
-- 效果处理:特殊召唤
function c10105588.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c10105588.spfilter,tp,LOCATION_REMOVED,0,1,1,nil,e,tp)
if #g>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
\ No newline at end of file
......@@ -11,7 +11,7 @@ function c28324124.initial_effect(c)
end
function c28324124.target(e,tp,eg,ep,ev,re,r,rp,chk)
local exc=e:IsHasType(EFFECT_TYPE_ACTIVATE) and e:GetHandler() or nil
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_ONFIELD,0,1,exc) end
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_ONFIELD,0,1,e:GetHandler()) end
if e:IsHasType(EFFECT_TYPE_ACTIVATE) then
Duel.SetChainLimit(aux.FALSE)
end
......
......@@ -26,7 +26,7 @@ function cm.fd(c)
and (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE))
end
function cm.fd3(c,e,tp,code)
if not c:IsCode(code) then return false end
if not c:IsCode(code) or not c:IsType(TYPE_MONSTER) then return false end
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return c:IsAbleToGrave() or (ft>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false))
end
......
......@@ -89,25 +89,23 @@ function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local g1=g:Filter(cm.ckfil,nil)
local tc1=g1:GetFirst()
while tc1 do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetTarget(cm.distg)
e1:SetLabelObject(tc1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetCondition(cm.discon)
e2:SetOperation(cm.disop)
e2:SetLabelObject(tc1)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
tc1=g1:GetNext()
for tc1 in aux.Next(g1) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetTarget(cm.distg)
e1:SetLabelObject(tc1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetCondition(cm.discon)
e2:SetOperation(cm.disop)
e2:SetLabelObject(tc1)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
end
function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -72,7 +72,7 @@ end
function c71401020.discon(e,tp,eg,ep,ev,re,r,rp)
local code=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_CODE)
return e:GetHandler():IsDefensePos()
and re:IsActiveType(TYPE_MONSTER) and Duel.IsExistingMatchingCard(Card.IsCode,0,LOCATION_REMOVED,LOCATION_REMOVED,1,nil,code)
and re:IsActiveType(TYPE_MONSTER) and Duel.IsExistingMatchingCard(Card.IsCode,0,LOCATION_REMOVED,LOCATION_REMOVED,1,nil,code) and rp~=tp
end
function c71401020.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev)
......
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