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