Commit 1123682b authored by salix5's avatar salix5 Committed by GitHub
parent eaddd940
...@@ -3,13 +3,18 @@ function c13529466.initial_effect(c) ...@@ -3,13 +3,18 @@ function c13529466.initial_effect(c)
--fusion material --fusion material
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddFusionProcCodeFun(c,86120751,aux.FilterBoolFunction(Card.IsFusionAttribute,ATTRIBUTE_DARK),1,true,true) aux.AddFusionProcCodeFun(c,86120751,aux.FilterBoolFunction(Card.IsFusionAttribute,ATTRIBUTE_DARK),1,true,true)
--activate limit --effect count
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetOperation(c13529466.aclimit1) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetOperation(c13529466.scount)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e4=e1:Clone()
e4:SetOperation(c13529466.ocount)
c:RegisterEffect(e4)
--activate limit
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
...@@ -19,9 +24,6 @@ function c13529466.initial_effect(c) ...@@ -19,9 +24,6 @@ function c13529466.initial_effect(c)
e3:SetCondition(c13529466.econ1) e3:SetCondition(c13529466.econ1)
e3:SetValue(c13529466.elimit) e3:SetValue(c13529466.elimit)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e1:Clone()
e4:SetOperation(c13529466.aclimit3)
c:RegisterEffect(e4)
local e6=e3:Clone() local e6=e3:Clone()
e6:SetCondition(c13529466.econ2) e6:SetCondition(c13529466.econ2)
e6:SetTargetRange(0,1) e6:SetTargetRange(0,1)
...@@ -45,14 +47,14 @@ function c13529466.initial_effect(c) ...@@ -45,14 +47,14 @@ function c13529466.initial_effect(c)
e8:SetLabelObject(e7) e8:SetLabelObject(e7)
c:RegisterEffect(e8) c:RegisterEffect(e8)
end end
function c13529466.aclimit1(e,tp,eg,ep,ev,re,r,rp) function c13529466.scount(e,tp,eg,ep,ev,re,r,rp)
if ep~=tp or not re:IsActiveType(TYPE_MONSTER) then return end if ep~=tp or not re:IsActiveType(TYPE_MONSTER) then return end
e:GetHandler():RegisterFlagEffect(13529466,RESET_EVENT+0x3ff0000+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(13529466,RESET_EVENT+0x3ff0000+RESET_PHASE+PHASE_END,0,1)
end end
function c13529466.econ1(e) function c13529466.econ1(e)
return e:GetHandler():GetFlagEffect(13529466)~=0 return e:GetHandler():GetFlagEffect(13529466)~=0
end end
function c13529466.aclimit3(e,tp,eg,ep,ev,re,r,rp) function c13529466.ocount(e,tp,eg,ep,ev,re,r,rp)
if ep==tp or not re:IsActiveType(TYPE_MONSTER) then return end if ep==tp or not re:IsActiveType(TYPE_MONSTER) then return end
e:GetHandler():RegisterFlagEffect(13529467,RESET_EVENT+0x3ff0000+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(13529467,RESET_EVENT+0x3ff0000+RESET_PHASE+PHASE_END,0,1)
end end
......
...@@ -43,21 +43,28 @@ function c5253985.sumop(e,tp,eg,ep,ev,re,r,rp) ...@@ -43,21 +43,28 @@ function c5253985.sumop(e,tp,eg,ep,ev,re,r,rp)
if tc then if tc then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_ADD_EXTRA_TRIBUTE) e1:SetCode(EFFECT_ADD_EXTRA_TRIBUTE)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetTargetRange(0,LOCATION_MZONE) e1:SetTargetRange(0,LOCATION_MZONE)
e1:SetValue(POS_FACEUP_ATTACK+POS_FACEDOWN_DEFENSE) e1:SetValue(POS_FACEUP_ATTACK+POS_FACEDOWN_DEFENSE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
Duel.Summon(tp,tc,true,nil,1) --limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetReset(RESET_PHASE+PHASE_MAIN1)
e1:SetOperation(c5253985.limitop)
Duel.RegisterEffect(e1,tp)
--reset when negated
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_END) e2:SetCode(EVENT_SUMMON_NEGATED)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e2:SetOperation(c5253985.rstop)
e2:SetOperation(c5253985.limitop) e2:SetLabelObject(e1)
e2:SetLabelObject(tc) e2:SetReset(RESET_PHASE+PHASE_MAIN1)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
Duel.Summon(tp,tc,true,nil,1)
end end
end end
function c5253985.cfilter(c,tp) function c5253985.cfilter(c,tp)
...@@ -65,17 +72,11 @@ function c5253985.cfilter(c,tp) ...@@ -65,17 +72,11 @@ function c5253985.cfilter(c,tp)
end end
function c5253985.limitop(e,tp,eg,ep,ev,re,r,rp) function c5253985.limitop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=e:GetLabelObject() local tc=eg:GetFirst()
local g=tc:GetMaterial() local g=tc:GetMaterial()
if g and g:IsExists(c5253985.cfilter,1,nil,tp) then if g and g:IsExists(c5253985.cfilter,1,nil,tp) then
--can't activate effects Duel.AddCustomActivityCounter(5253985,ACTIVITY_CHAIN,c5253985.chainfilter)
local e2=Effect.CreateEffect(c) --activate limit
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAINING)
e2:SetCondition(c5253985.regcon)
e2:SetOperation(c5253985.regop)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
...@@ -88,16 +89,18 @@ function c5253985.limitop(e,tp,eg,ep,ev,re,r,rp) ...@@ -88,16 +89,18 @@ function c5253985.limitop(e,tp,eg,ep,ev,re,r,rp)
end end
e:Reset() e:Reset()
end end
function c5253985.regcon(e,tp,eg,ep,ev,re,r,rp) function c5253985.rstop(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and not re:GetHandler():IsRace(RACE_DIVINE) local e1=e:GetLabelObject()
e1:Reset()
e:Reset()
end end
function c5253985.regop(e,tp,eg,ep,ev,re,r,rp) function c5253985.chainfilter(re,tp,cid)
Duel.RegisterFlagEffect(tp,5253985,RESET_PHASE+PHASE_END,2,0,1) return re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsRace(RACE_DIVINE)
end end
function c5253985.actcon(e) function c5253985.actcon(e)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return Duel.GetFlagEffect(tp,5253985)>0 return Duel.GetCustomActivityCount(5253985,tp,ACTIVITY_CHAIN)~=0
end end
function c5253985.aclimit(e,re,tp) function c5253985.aclimit(e,re,tp)
return not re:GetHandler():IsRace(RACE_DIVINE) return not (re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsRace(RACE_DIVINE))
end end
...@@ -17,19 +17,22 @@ function c63176202.initial_effect(c) ...@@ -17,19 +17,22 @@ function c63176202.initial_effect(c)
e2:SetTarget(c63176202.desreptg) e2:SetTarget(c63176202.desreptg)
e2:SetOperation(c63176202.desrepop) e2:SetOperation(c63176202.desrepop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--activate limit --effect count
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_CHAINING) e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetOperation(c63176202.aclimit1) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(c63176202.count)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD) e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e4:SetCode(EVENT_CHAIN_NEGATED) e4:SetCode(EVENT_CHAIN_NEGATED)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetOperation(c63176202.aclimit2) e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetOperation(c63176202.rst)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--activate limit
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD) e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_CANNOT_ACTIVATE) e5:SetCode(EFFECT_CANNOT_ACTIVATE)
...@@ -70,11 +73,11 @@ function c63176202.desrepop(e,tp,eg,ep,ev,re,r,rp) ...@@ -70,11 +73,11 @@ function c63176202.desrepop(e,tp,eg,ep,ev,re,r,rp)
tc:SetStatus(STATUS_DESTROY_CONFIRMED,false) tc:SetStatus(STATUS_DESTROY_CONFIRMED,false)
Duel.Destroy(tc,REASON_EFFECT+REASON_REPLACE) Duel.Destroy(tc,REASON_EFFECT+REASON_REPLACE)
end end
function c63176202.aclimit1(e,tp,eg,ep,ev,re,r,rp) function c63176202.count(e,tp,eg,ep,ev,re,r,rp)
if ep==tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return end if ep==tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return end
e:GetHandler():RegisterFlagEffect(63176202,RESET_EVENT+0x3ff0000+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(63176202,RESET_EVENT+0x3ff0000+RESET_PHASE+PHASE_END,0,1)
end end
function c63176202.aclimit2(e,tp,eg,ep,ev,re,r,rp) function c63176202.rst(e,tp,eg,ep,ev,re,r,rp)
if ep==tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return end if ep==tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return end
e:GetHandler():ResetFlagEffect(63176202) e:GetHandler():ResetFlagEffect(63176202)
end end
......
...@@ -47,20 +47,16 @@ function c856784.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,20 +47,16 @@ function c856784.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
end end
if not e:IsHasType(EFFECT_TYPE_ACTIVATE) then return end if not e:IsHasType(EFFECT_TYPE_ACTIVATE) then return end
--cannot set spell/trap card
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SSET) e1:SetCode(EFFECT_CANNOT_SSET)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTargetRange(1,0) e1:SetTargetRange(1,0)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c) Duel.AddCustomActivityCounter(856784,ACTIVITY_CHAIN,c856784.chainfilter)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) --activate limit
e2:SetCode(EVENT_CHAINING)
e2:SetCondition(c856784.regcon)
e2:SetOperation(c856784.regop)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
...@@ -71,13 +67,10 @@ function c856784.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,13 +67,10 @@ function c856784.activate(e,tp,eg,ep,ev,re,r,rp)
e3:SetReset(RESET_PHASE+PHASE_END) e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp) Duel.RegisterEffect(e3,tp)
end end
function c856784.regcon(e,tp,eg,ep,ev,re,r,rp) function c856784.chainfilter(re,tp,cid)
return ep==tp return false
end
function c856784.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,856784,RESET_PHASE+PHASE_END,0,1)
end end
function c856784.actcon(e) function c856784.actcon(e)
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
return Duel.GetFlagEffect(tp,856784)>0 return Duel.GetCustomActivityCount(856784,tp,ACTIVITY_CHAIN)~=0
end end
...@@ -8,19 +8,22 @@ function c88494899.initial_effect(c) ...@@ -8,19 +8,22 @@ function c88494899.initial_effect(c)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetCondition(c88494899.spcon) e1:SetCondition(c88494899.spcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--activate limit --effect count
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_CHAINING) e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetOperation(c88494899.aclimit1) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(c88494899.count)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_CHAIN_NEGATED) e3:SetCode(EVENT_CHAIN_NEGATED)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetOperation(c88494899.aclimit2) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(c88494899.rst)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--activate limit
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD) e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_ACTIVATE) e4:SetCode(EFFECT_CANNOT_ACTIVATE)
...@@ -37,11 +40,11 @@ function c88494899.spcon(e,c) ...@@ -37,11 +40,11 @@ function c88494899.spcon(e,c)
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD)-Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)>=4 and Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD)-Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)>=4
end end
function c88494899.aclimit1(e,tp,eg,ep,ev,re,r,rp) function c88494899.count(e,tp,eg,ep,ev,re,r,rp)
if ep==tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return end if ep==tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return end
e:GetHandler():RegisterFlagEffect(88494899,RESET_EVENT+0x3ff0000+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(88494899,RESET_EVENT+0x3ff0000+RESET_PHASE+PHASE_END,0,1)
end end
function c88494899.aclimit2(e,tp,eg,ep,ev,re,r,rp) function c88494899.rst(e,tp,eg,ep,ev,re,r,rp)
if ep==tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return end if ep==tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return end
e:GetHandler():ResetFlagEffect(88494899) e:GetHandler():ResetFlagEffect(88494899)
end end
......
...@@ -297,7 +297,7 @@ EFFECT_FLAG_DAMAGE_STEP =0x4000 --可以在伤害步骤发动 ...@@ -297,7 +297,7 @@ EFFECT_FLAG_DAMAGE_STEP =0x4000 --可以在伤害步骤发动
EFFECT_FLAG_DAMAGE_CAL =0x8000 --可以在伤害计算时发动 EFFECT_FLAG_DAMAGE_CAL =0x8000 --可以在伤害计算时发动
EFFECT_FLAG_DELAY =0x10000 --場合型誘發效果、用於永續效果的EFFECT_TYPE_CONTINUOUS、神之化身/恐惧之源的攻击力变化最后计算 EFFECT_FLAG_DELAY =0x10000 --場合型誘發效果、用於永續效果的EFFECT_TYPE_CONTINUOUS、神之化身/恐惧之源的攻击力变化最后计算
EFFECT_FLAG_SINGLE_RANGE =0x20000 --只对自己有效 EFFECT_FLAG_SINGLE_RANGE =0x20000 --只对自己有效
EFFECT_FLAG_UNCOPYABLE =0x40000 --不能复制(效果外文本) EFFECT_FLAG_UNCOPYABLE =0x40000 --不能复制的原始效果(效果外文本)
EFFECT_FLAG_OATH =0x80000 --誓约效果 EFFECT_FLAG_OATH =0x80000 --誓约效果
EFFECT_FLAG_SPSUM_PARAM =0x100000 --指定召喚/规则特殊召唤的位置和表示形式(熔岩魔神) EFFECT_FLAG_SPSUM_PARAM =0x100000 --指定召喚/规则特殊召唤的位置和表示形式(熔岩魔神)
EFFECT_FLAG_REPEAT =0x200000 --神之化身的攻击力重复计算 EFFECT_FLAG_REPEAT =0x200000 --神之化身的攻击力重复计算
......
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