Commit db04d77b authored by salix5's avatar salix5

CNo.88

parent 1c8aa8a6
...@@ -4,6 +4,7 @@ function c24096228.initial_effect(c) ...@@ -4,6 +4,7 @@ function c24096228.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCost(c24096228.cost) e1:SetCost(c24096228.cost)
e1:SetTarget(c24096228.target) e1:SetTarget(c24096228.target)
e1:SetOperation(c24096228.operation) e1:SetOperation(c24096228.operation)
...@@ -16,11 +17,29 @@ function c24096228.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -16,11 +17,29 @@ function c24096228.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c24096228.cfilter,tp,LOCATION_HAND,0,1,e:GetHandler()) end if chk==0 then return Duel.IsExistingMatchingCard(c24096228.cfilter,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.DiscardHand(tp,c24096228.cfilter,1,1,REASON_COST+REASON_DISCARD) Duel.DiscardHand(tp,c24096228.cfilter,1,1,REASON_COST+REASON_DISCARD)
end end
function c24096228.filter1(c) function c24096228.filter1(c,e,tp,eg,ep,ev,re,r,rp)
return c:IsType(TYPE_SPELL) and c:CheckActivateEffect(false,false,false)~=nil local te=c:CheckActivateEffect(false,false,false)
if c:IsType(TYPE_SPELL) and te then
if c:IsSetCard(0x95) then
local tg=te:GetTarget()
return not tg or tg(e,tp,eg,ep,ev,re,r,rp,0)
else
return true
end
end
return false
end end
function c24096228.filter2(c) function c24096228.filter2(c,e,tp,eg,ep,ev,re,r,rp)
return c:IsType(TYPE_SPELL) and not c:IsType(TYPE_EQUIP+TYPE_CONTINUOUS) and c:CheckActivateEffect(false,false,false)~=nil local te=c:CheckActivateEffect(false,false,false)
if c:IsType(TYPE_SPELL) and not c:IsType(TYPE_EQUIP+TYPE_CONTINUOUS) and te then
if c:IsSetCard(0x95) then
local tg=te:GetTarget()
return not tg or tg(e,tp,eg,ep,ev,re,r,rp,0)
else
return true
end
end
return false
end end
function c24096228.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c24096228.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end if chkc then return false end
...@@ -28,18 +47,16 @@ function c24096228.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -28,18 +47,16 @@ function c24096228.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local b=e:GetHandler():IsLocation(LOCATION_HAND) local b=e:GetHandler():IsLocation(LOCATION_HAND)
local ft=Duel.GetLocationCount(tp,LOCATION_SZONE) local ft=Duel.GetLocationCount(tp,LOCATION_SZONE)
if (b and ft>1) or (not b and ft>0) then if (b and ft>1) or (not b and ft>0) then
return Duel.IsExistingTarget(c24096228.filter1,tp,0,LOCATION_GRAVE,1,nil) return Duel.IsExistingTarget(c24096228.filter1,tp,0,LOCATION_GRAVE,1,e:GetHandler(),e,tp,eg,ep,ev,re,r,rp)
else else
return Duel.IsExistingTarget(c24096228.filter2,tp,0,LOCATION_GRAVE,1,nil) return Duel.IsExistingTarget(c24096228.filter2,tp,0,LOCATION_GRAVE,1,e:GetHandler(),e,tp,eg,ep,ev,re,r,rp)
end end
end end
e:SetProperty(EFFECT_FLAG_CARD_TARGET)
e:SetCategory(0)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
if Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then if Duel.GetLocationCount(tp,LOCATION_SZONE)>0 then
Duel.SelectTarget(tp,c24096228.filter1,tp,0,LOCATION_GRAVE,1,1,nil) Duel.SelectTarget(tp,c24096228.filter1,tp,0,LOCATION_GRAVE,1,1,nil,e,tp,eg,ep,ev,re,r,rp)
else else
Duel.SelectTarget(tp,c24096228.filter2,tp,0,LOCATION_GRAVE,1,1,nil) Duel.SelectTarget(tp,c24096228.filter2,tp,0,LOCATION_GRAVE,1,1,nil,e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c24096228.operation(e,tp,eg,ep,ev,re,r,rp) function c24096228.operation(e,tp,eg,ep,ev,re,r,rp)
...@@ -61,7 +78,13 @@ function c24096228.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,7 +78,13 @@ function c24096228.operation(e,tp,eg,ep,ev,re,r,rp)
end end
tc:CreateEffectRelation(te) tc:CreateEffectRelation(te)
if co then co(te,tp,eg,ep,ev,re,r,rp,1) end if co then co(te,tp,eg,ep,ev,re,r,rp,1) end
if tg then tg(te,tp,eg,ep,ev,re,r,rp,1) end if tg then
if tc:IsSetCard(0x95) then
tg(e,tp,eg,ep,ev,re,r,rp,1)
else
tg(te,tp,eg,ep,ev,re,r,rp,1)
end
end
Duel.BreakEffect() Duel.BreakEffect()
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS) local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local etc=g:GetFirst() local etc=g:GetFirst()
...@@ -69,7 +92,13 @@ function c24096228.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -69,7 +92,13 @@ function c24096228.operation(e,tp,eg,ep,ev,re,r,rp)
etc:CreateEffectRelation(te) etc:CreateEffectRelation(te)
etc=g:GetNext() etc=g:GetNext()
end end
if op then op(te,tp,eg,ep,ev,re,r,rp) end if op then
if tc:IsSetCard(0x95) then
op(e,tp,eg,ep,ev,re,r,rp)
else
op(te,tp,eg,ep,ev,re,r,rp)
end
end
tc:ReleaseEffectRelation(te) tc:ReleaseEffectRelation(te)
etc=g:GetFirst() etc=g:GetFirst()
while etc do while etc do
......
...@@ -28,7 +28,7 @@ function c49398568.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -28,7 +28,7 @@ function c49398568.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return not ftg or ftg(e,tp,eg,ep,ev,re,r,rp,chk) end if chk==0 then return not ftg or ftg(e,tp,eg,ep,ev,re,r,rp,chk) end
if re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then if re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then
e:SetProperty(EFFECT_FLAG_CARD_TARGET) e:SetProperty(EFFECT_FLAG_CARD_TARGET)
else e:SetProperty(0) end end
if ftg then if ftg then
ftg(e,tp,eg,ep,ev,re,r,rp,chk) ftg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
......
...@@ -41,8 +41,9 @@ function c6165656.initial_effect(c) ...@@ -41,8 +41,9 @@ function c6165656.initial_effect(c)
c:RegisterEffect(e4) c:RegisterEffect(e4)
end end
c6165656.xyz_number=88 c6165656.xyz_number=88
--target check is in RUM magic cards
function c6165656.splimit(e,se,sp,st) function c6165656.splimit(e,se,sp,st)
return se:GetHandler():IsSetCard(0x95) return se:GetHandler():IsSetCard(0x95) and se:GetHandler():IsType(TYPE_SPELL)
end end
function c6165656.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c6165656.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment