Commit fe7e9928 authored by nekrozar's avatar nekrozar
parent c74c5d59
......@@ -11,7 +11,7 @@ function c1475311.initial_effect(c)
c:RegisterEffect(e1)
end
function c1475311.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL) and Duel.IsPlayerCanDraw(tp,2) end
if chk==0 then return not Duel.IsPlayerCanRemove(tp) and Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
......
......@@ -27,12 +27,12 @@ function c15693423.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,0,LOCATION_ONFIELD)
local ct=g:GetCount()-Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)
if e:GetHandler():IsLocation(LOCATION_HAND) then ct=ct-1 end
if chk==0 then return not Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_IRON_WALL)
if chk==0 then return not Duel.IsPlayerCanRemove(1-tp)
and ct>0 and g:IsExists(c15693423.rmfilter,1,nil,1-tp) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,ct,0,0)
end
function c15693423.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_IRON_WALL) then return end
if Duel.IsPlayerCanRemove(1-tp) then return end
local g=Duel.GetFieldGroup(tp,0,LOCATION_ONFIELD)
local ct=g:GetCount()-Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)
if ct>0 then
......
......@@ -15,7 +15,7 @@ function c26557451.condition(e,tp,eg,ep,ev,re,r,rp)
return ep==1-tp and r&REASON_EFFECT~=0 and rp==1-tp
end
function c26557451.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL) end
if chk==0 then return not Duel.IsPlayerCanRemove(tp) end
local g=eg:Filter(Card.IsControler,nil,1-tp)
Duel.SetTargetCard(g)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,0,1-tp,LOCATION_HAND)
......
......@@ -14,12 +14,4 @@ function c30459350.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,1)
c:RegisterEffect(e2)
--30459350 chk
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_IRON_WALL)
e3:SetRange(LOCATION_SZONE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(1,1)
c:RegisterEffect(e3)
end
......@@ -57,12 +57,4 @@ function c34267821.rmop(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
--30459350 chk
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_IRON_WALL)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,1)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
......@@ -11,7 +11,7 @@ function c40465719.initial_effect(c)
c:RegisterEffect(e1)
end
function c40465719.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL) and Duel.IsPlayerCanDraw(tp,2) end
if chk==0 then return not Duel.IsPlayerCanRemove(tp) and Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
......
......@@ -31,7 +31,7 @@ function c51858306.filter(c)
and c:IsAbleToRemove()
end
function c51858306.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL) then return end
if Duel.IsPlayerCanRemove(tp) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c51858306.filter,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst()
......
......@@ -53,13 +53,13 @@ function c58820923.rmcost(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c58820923.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_DECK)>2
and not Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_IRON_WALL) end
and not Duel.IsPlayerCanRemove(1-tp) end
end
function c58820923.rmfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToRemove()
end
function c58820923.rmop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_IRON_WALL) then return end
if Duel.IsPlayerCanRemove(1-tp) then return end
local g=Duel.GetMatchingGroup(c58820923.rmfilter,1-tp,LOCATION_DECK,0,nil)
if g:GetCount()>2 then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_REMOVE)
......
......@@ -23,7 +23,7 @@ function c62015408.cost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
end
function c62015408.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL)
if chk==0 then return not Duel.IsPlayerCanRemove(tp)
and Duel.GetFieldGroupCount(tp,LOCATION_EXTRA,0)>0
and Duel.GetFieldGroupCount(tp,0,LOCATION_EXTRA)>0 end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,1-tp,LOCATION_EXTRA)
......
......@@ -25,14 +25,14 @@ function c66171432.filter(c,e,tp)
return c:IsSetCard(0xe6) and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
end
function c66171432.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL)
if chk==0 then return not Duel.IsPlayerCanRemove(tp)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c66171432.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,LOCATION_DECK)
end
function c66171432.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL) then return end
if Duel.IsPlayerCanRemove(tp) then return end
Duel.ConfirmDecktop(tp,3)
local g=Duel.GetDecktopGroup(tp,3)
local sg=g:Filter(c66171432.filter,nil,e,tp)
......
......@@ -21,12 +21,12 @@ function c90506641.filter(c)
return c:IsType(TYPE_NORMAL) and c:IsAbleToHand()
end
function c90506641.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL)
if chk==0 then return not Duel.IsPlayerCanRemove(tp)
and Duel.IsExistingMatchingCard(c90506641.filter,tp,LOCATION_DECK,0,5,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c90506641.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL) then return end
if Duel.IsPlayerCanRemove(tp) then return end
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(90506641,0))
local g=Duel.SelectMatchingCard(tp,c90506641.filter,tp,LOCATION_DECK,0,5,5,nil)
if g:GetCount()<5 then return end
......
......@@ -20,14 +20,6 @@ function c97940434.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(0,1)
c:RegisterEffect(e2)
--30459350 chk
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_IRON_WALL)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(0,1)
c:RegisterEffect(e3)
end
function c97940434.spfilter(c,sp)
return c:GetSummonPlayer()==sp
......
......@@ -542,7 +542,7 @@ EFFECT_ADD_LINK_RACE =357 --用作连接素材时的种族
EFFECT_EXTRA_LINK_MATERIAL =358 --手卡的连接素材
EFFECT_QP_ACT_IN_SET_TURN =359 --速攻魔法可以在盖放的回合发动
EFFECT_EXTRA_PENDULUM_SUMMON =360 --extra pendulum summon
EFFECT_IRON_WALL =361 --玩家已受到"不能除外"的效果影響
EFFECT_IRON_WALL =361 --N/A
--下面是诱发效果的诱发事件、时点 (如果是TYPE_SINGLE则自己发生以下事件后触发,如果TYPE_FIELD则场上任何卡发生以下事件都触发)
EVENT_STARTUP =1000 --N/A
......
......@@ -2193,6 +2193,6 @@ end
--condition of "negate activation and banish"
function Auxiliary.nbcon(tp,re)
local rc=re:GetHandler()
return not Duel.IsPlayerAffectedByEffect(tp,EFFECT_IRON_WALL)
return not Duel.IsPlayerCanRemove(tp)
and (not rc:IsRelateToEffect(re) or rc:IsAbleToRemove())
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