Commit b8d9a11f authored by salix5's avatar salix5

EFFECT_FLAG_CONTINUOUS

parent 3d9dafcb
...@@ -149,7 +149,7 @@ public: ...@@ -149,7 +149,7 @@ public:
#define EFFECT_FLAG_ABSOLUTE_TARGET 0x0040 // #define EFFECT_FLAG_ABSOLUTE_TARGET 0x0040 //
#define EFFECT_FLAG_IGNORE_IMMUNE 0x0080 // #define EFFECT_FLAG_IGNORE_IMMUNE 0x0080 //
#define EFFECT_FLAG_SET_AVAILABLE 0x0100 // #define EFFECT_FLAG_SET_AVAILABLE 0x0100 //
#define EFFECT_FLAG_MULTIACT_HAND 0x0200 // #define EFFECT_FLAG_CONTINUOUS 0x0200 //
#define EFFECT_FLAG_CANNOT_DISABLE 0x0400 // #define EFFECT_FLAG_CANNOT_DISABLE 0x0400 //
#define EFFECT_FLAG_PLAYER_TARGET 0x0800 // #define EFFECT_FLAG_PLAYER_TARGET 0x0800 //
#define EFFECT_FLAG_BOTH_SIDE 0x1000 // #define EFFECT_FLAG_BOTH_SIDE 0x1000 //
......
...@@ -52,7 +52,7 @@ function c13073850.initial_effect(c) ...@@ -52,7 +52,7 @@ function c13073850.initial_effect(c)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE)
e7:SetRange(LOCATION_MZONE) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c13073850.immcon) e7:SetCondition(c13073850.immcon)
e7:SetValue(c13073850.efilter) e7:SetValue(aux.qlifilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--tohand --tohand
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -129,18 +129,6 @@ end ...@@ -129,18 +129,6 @@ end
function c13073850.immcon(e) function c13073850.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end end
function c13073850.efilter(e,te)
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return false
end
function c13073850.thcon(e,tp,eg,ep,ev,re,r,rp) function c13073850.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1 return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1
end end
......
...@@ -38,7 +38,7 @@ function c15939229.sumsuc(e,tp,eg,ep,ev,re,r,rp) ...@@ -38,7 +38,7 @@ function c15939229.sumsuc(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE) e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CONTINUOUS)
e1:SetTargetRange(1,1) e1:SetTargetRange(1,1)
e1:SetValue(c15939229.aclimit) e1:SetValue(c15939229.aclimit)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
...@@ -46,6 +46,7 @@ function c15939229.sumsuc(e,tp,eg,ep,ev,re,r,rp) ...@@ -46,6 +46,7 @@ function c15939229.sumsuc(e,tp,eg,ep,ev,re,r,rp)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_DISABLE) e2:SetCode(EFFECT_DISABLE)
e2:SetProperty(EFFECT_FLAG_CONTINUOUS)
e2:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD) e2:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e2:SetTarget(c15939229.disable) e2:SetTarget(c15939229.disable)
e2:SetReset(RESET_PHASE+RESET_END) e2:SetReset(RESET_PHASE+RESET_END)
......
...@@ -71,17 +71,8 @@ function c27279764.immcon(e) ...@@ -71,17 +71,8 @@ function c27279764.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end end
function c27279764.efilter(e,te) function c27279764.efilter(e,te)
if te:IsActiveType(TYPE_SPELL+TYPE_TRAP) then return true end if te:IsActiveType(TYPE_SPELL+TYPE_TRAP) then return true
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then else return aux.qlifilter(e,te) end
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return false
end end
function c27279764.adtg(e,c) function c27279764.adtg(e,c)
return bit.band(c:GetSummonType(),SUMMON_TYPE_SPECIAL)==SUMMON_TYPE_SPECIAL return bit.band(c:GetSummonType(),SUMMON_TYPE_SPECIAL)==SUMMON_TYPE_SPECIAL
......
...@@ -51,7 +51,7 @@ function c37991342.initial_effect(c) ...@@ -51,7 +51,7 @@ function c37991342.initial_effect(c)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE)
e7:SetRange(LOCATION_MZONE) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c37991342.immcon) e7:SetCondition(c37991342.immcon)
e7:SetValue(c37991342.efilter) e7:SetValue(aux.qlifilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--destroy --destroy
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -120,18 +120,6 @@ end ...@@ -120,18 +120,6 @@ end
function c37991342.immcon(e) function c37991342.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end end
function c37991342.efilter(e,te)
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return false
end
function c37991342.desfilter(c) function c37991342.desfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsDestructable() return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsDestructable()
end end
......
...@@ -60,17 +60,8 @@ function c40061558.immcon(e) ...@@ -60,17 +60,8 @@ function c40061558.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end end
function c40061558.efilter(e,te) function c40061558.efilter(e,te)
if te:IsActiveType(TYPE_SPELL+TYPE_TRAP) then return true end if te:IsActiveType(TYPE_SPELL+TYPE_TRAP) then return true
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then else return aux.qlifilter(e,te) end
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return false
end end
function c40061558.cttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c40061558.cttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsControlerCanBeChanged() end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsControlerCanBeChanged() end
......
...@@ -52,7 +52,7 @@ function c64496451.initial_effect(c) ...@@ -52,7 +52,7 @@ function c64496451.initial_effect(c)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE)
e7:SetRange(LOCATION_MZONE) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c64496451.immcon) e7:SetCondition(c64496451.immcon)
e7:SetValue(c64496451.efilter) e7:SetValue(aux.qlifilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--summon success --summon success
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -128,18 +128,6 @@ end ...@@ -128,18 +128,6 @@ end
function c64496451.immcon(e) function c64496451.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end end
function c64496451.efilter(e,te)
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return false
end
function c64496451.spcon(e,tp,eg,ep,ev,re,r,rp) function c64496451.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1 return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1
end end
......
...@@ -51,7 +51,7 @@ function c87588741.initial_effect(c) ...@@ -51,7 +51,7 @@ function c87588741.initial_effect(c)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE)
e7:SetRange(LOCATION_MZONE) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c87588741.immcon) e7:SetCondition(c87588741.immcon)
e7:SetValue(c87588741.efilter) e7:SetValue(aux.qlifilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--damage --damage
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -128,18 +128,6 @@ end ...@@ -128,18 +128,6 @@ end
function c87588741.immcon(e) function c87588741.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end end
function c87588741.efilter(e,te)
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return false
end
function c87588741.damcon(e,tp,eg,ep,ev,re,r,rp) function c87588741.damcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1 return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1
end end
......
...@@ -51,7 +51,7 @@ function c90885155.initial_effect(c) ...@@ -51,7 +51,7 @@ function c90885155.initial_effect(c)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE)
e7:SetRange(LOCATION_MZONE) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c90885155.immcon) e7:SetCondition(c90885155.immcon)
e7:SetValue(c90885155.efilter) e7:SetValue(aux.qlifilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--effect --effect
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -126,18 +126,6 @@ end ...@@ -126,18 +126,6 @@ end
function c90885155.immcon(e) function c90885155.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end end
function c90885155.efilter(e,te)
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return false
end
function c90885155.effcon(e,tp,eg,ep,ev,re,r,rp) function c90885155.effcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1 return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1
end end
......
...@@ -52,7 +52,7 @@ function c91907707.initial_effect(c) ...@@ -52,7 +52,7 @@ function c91907707.initial_effect(c)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE)
e7:SetRange(LOCATION_MZONE) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c91907707.immcon) e7:SetCondition(c91907707.immcon)
e7:SetValue(c91907707.efilter) e7:SetValue(aux.qlifilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--tohand --tohand
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -121,18 +121,6 @@ end ...@@ -121,18 +121,6 @@ end
function c91907707.immcon(e) function c91907707.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end end
function c91907707.efilter(e,te)
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return false
end
function c91907707.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c91907707.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsAbleToHand() end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsAbleToHand() end
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
......
...@@ -245,7 +245,7 @@ EFFECT_FLAG_IGNORE_RANGE =0x0020 --影响所有区域的卡(禁止令 大宇 ...@@ -245,7 +245,7 @@ EFFECT_FLAG_IGNORE_RANGE =0x0020 --影响所有区域的卡(禁止令 大宇
EFFECT_FLAG_ABSOLUTE_TARGET =0x0040 --Target Range不会因为控制权的改变而改变 EFFECT_FLAG_ABSOLUTE_TARGET =0x0040 --Target Range不会因为控制权的改变而改变
EFFECT_FLAG_IGNORE_IMMUNE =0x0080 --无视效果免疫 EFFECT_FLAG_IGNORE_IMMUNE =0x0080 --无视效果免疫
EFFECT_FLAG_SET_AVAILABLE =0x0100 --影响场上里侧的卡/裡側狀態可發動 EFFECT_FLAG_SET_AVAILABLE =0x0100 --影响场上里侧的卡/裡側狀態可發動
EFFECT_FLAG_MULTIACT_HAND =0x0200 --N/A EFFECT_FLAG_CONTINUOUS =0x0200 --由不入連鎖的效果產生的全局效果
EFFECT_FLAG_CANNOT_DISABLE =0x0400 --不会被无效 EFFECT_FLAG_CANNOT_DISABLE =0x0400 --不会被无效
EFFECT_FLAG_PLAYER_TARGET =0x0800 --以玩家为对象 EFFECT_FLAG_PLAYER_TARGET =0x0800 --以玩家为对象
EFFECT_FLAG_BOTH_SIDE =0x1000 --双方都能使用(部分场地,弹压) EFFECT_FLAG_BOTH_SIDE =0x1000 --双方都能使用(部分场地,弹压)
......
...@@ -1199,3 +1199,19 @@ function Auxiliary.damcon1(e,tp,eg,ep,ev,re,r,rp) ...@@ -1199,3 +1199,19 @@ function Auxiliary.damcon1(e,tp,eg,ep,ev,re,r,rp)
ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_RECOVER) ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_RECOVER)
return ex and (cp==tp or cp==PLAYER_ALL) and rr and not Duel.IsPlayerAffectedByEffect(tp,EFFECT_NO_EFFECT_DAMAGE) return ex and (cp==tp or cp==PLAYER_ALL) and rr and not Duel.IsPlayerAffectedByEffect(tp,EFFECT_NO_EFFECT_DAMAGE)
end end
--filter for the immune effetc of qli monsters
function Auxiliary.qlifilter(e,te)
if te:IsActiveType(TYPE_MONSTER)
and (te:IsHasType(0x7e0) or (te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) and not te:IsHasProperty(EFFECT_FLAG_CONTINUOUS))
or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
else
return false
end
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