Commit f891606e authored by salix5's avatar salix5
parent 2a707fad
...@@ -68,6 +68,46 @@ function c269510.initial_effect(c) ...@@ -68,6 +68,46 @@ function c269510.initial_effect(c)
e8:SetTarget(aux.TargetBoolFunction(Card.IsRace,RACE_CYBERSE)) e8:SetTarget(aux.TargetBoolFunction(Card.IsRace,RACE_CYBERSE))
e8:SetValue(1) e8:SetValue(1)
c:RegisterEffect(e8) c:RegisterEffect(e8)
--check activated cards
if not c269510.global_check then
c269510.global_check=true
c269510.disable={}
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD)
ge1:SetCode(EFFECT_ACTIVATE_COST)
ge1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
ge1:SetTargetRange(1,1)
ge1:SetTarget(c269510.regtg)
ge1:SetOperation(c269510.regop1)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_CHAINING)
ge2:SetOperation(c269510.regop2)
Duel.RegisterEffect(ge2,0)
end
end
function c269510.regtg(e,te,tp)
if te:IsActiveType(TYPE_MONSTER) and te:GetHandler():IsRace(RACE_CYBERSE) then
e:SetLabel(1)
else
e:SetLabel(0)
end
return true
end
function c269510.regop1(e,tp,eg,ep,ev,re,r,rp)
if e:GetLabel()==1 then
Duel.RegisterFlagEffect(tp,269510,RESET_CHAIN,0,1)
else
Duel.ResetFlagEffect(tp,269510)
end
end
function c269510.regop2(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,269510)~=0 then
c269510.disable[ev]=true
else
c269510.disable[ev]=false
end
end end
function c269510.limfilter(c) function c269510.limfilter(c)
return c:IsFaceup() and c:IsType(TYPE_LINK) return c:IsFaceup() and c:IsType(TYPE_LINK)
...@@ -86,7 +126,7 @@ function c269510.cfilter(c) ...@@ -86,7 +126,7 @@ function c269510.cfilter(c)
end end
function c269510.discon(e,tp,eg,ep,ev,re,r,rp) function c269510.discon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetMatchingGroupCount(c269510.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)>1 return Duel.GetMatchingGroupCount(c269510.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)>1
and re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsRace(RACE_CYBERSE) and c269510.disable[ev]
end end
function c269510.disop(e,tp,eg,ep,ev,re,r,rp) function c269510.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev) Duel.NegateEffect(ev)
......
...@@ -24,6 +24,40 @@ function c39185163.initial_effect(c) ...@@ -24,6 +24,40 @@ function c39185163.initial_effect(c)
e2:SetTarget(c39185163.sptg) e2:SetTarget(c39185163.sptg)
e2:SetOperation(c39185163.spop) e2:SetOperation(c39185163.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--check activated cards
if not c39185163.global_check then
c39185163.global_check=true
c39185163.disable={}
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD)
ge1:SetCode(EFFECT_ACTIVATE_COST)
ge1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
ge1:SetTargetRange(1,1)
ge1:SetTarget(c39185163.regtg)
ge1:SetOperation(c39185163.regop1)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_CHAINING)
ge2:SetOperation(c39185163.regop2)
Duel.RegisterEffect(ge2,0)
end
end
function c39185163.regtg(e,te,tp)
local tc=te:GetHandler()
if te:IsActiveType(TYPE_MONSTER) and not tc:IsCode(39185163) and tc:IsRace(RACE_ZOMBIE) then
e:SetLabel(1)
else
e:SetLabel(0)
end
return true
end
function c39185163.regop1(e,tp,eg,ep,ev,re,r,rp)
if e:GetLabel()==1 then
Duel.RegisterFlagEffect(tp,39185165,RESET_CHAIN,0,1)
else
Duel.ResetFlagEffect(tp,39185165)
end
end end
function c39185163.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk) function c39185163.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -31,12 +65,7 @@ function c39185163.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -31,12 +65,7 @@ function c39185163.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk)
c:RegisterFlagEffect(39185163,RESET_CHAIN,0,1) c:RegisterFlagEffect(39185163,RESET_CHAIN,0,1)
end end
function c39185163.disrmcon(e,tp,eg,ep,ev,re,r,rp) function c39185163.disrmcon(e,tp,eg,ep,ev,re,r,rp)
local c=re:GetHandler() return Duel.GetFlagEffect(rp,39185165)~=0
local race=c:GetRace()
local loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)
if loc==LOCATION_HAND then race=c:GetOriginalRace() end
if loc==LOCATION_MZONE and not c:IsLocation(LOCATION_MZONE) then race=c:GetPreviousRaceOnField() end
return race==RACE_ZOMBIE and not c:IsCode(39185163)
end end
function c39185163.disrmtg(e,tp,eg,ep,ev,re,r,rp,chk) function c39185163.disrmtg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsChainDisablable(ev) and Duel.GetFlagEffect(tp,39185163)==0 local b1=Duel.IsChainDisablable(ev) and Duel.GetFlagEffect(tp,39185163)==0
......
...@@ -31,6 +31,46 @@ function c88305705.initial_effect(c) ...@@ -31,6 +31,46 @@ function c88305705.initial_effect(c)
e3:SetTarget(c88305705.rmtg) e3:SetTarget(c88305705.rmtg)
e3:SetOperation(c88305705.rmop) e3:SetOperation(c88305705.rmop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--check activated cards
if not c88305705.global_check then
c88305705.global_check=true
c88305705.disable={}
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD)
ge1:SetCode(EFFECT_ACTIVATE_COST)
ge1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
ge1:SetTargetRange(1,1)
ge1:SetTarget(c88305705.regtg)
ge1:SetOperation(c88305705.regop1)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_CHAINING)
ge2:SetOperation(c88305705.regop2)
Duel.RegisterEffect(ge2,0)
end
end
function c88305705.regtg(e,te,tp)
if te:IsActiveType(TYPE_MONSTER) and te:GetHandler():IsRace(RACE_CYBERSE) then
e:SetLabel(1)
else
e:SetLabel(0)
end
return true
end
function c88305705.regop1(e,tp,eg,ep,ev,re,r,rp)
if e:GetLabel()==1 then
Duel.RegisterFlagEffect(tp,88305705,RESET_CHAIN,0,1)
else
Duel.ResetFlagEffect(tp,88305705)
end
end
function c88305705.regop2(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,88305705)~=0 then
c88305705.disable[ev]=true
else
c88305705.disable[ev]=false
end
end end
function c88305705.atkcon(e,tp,eg,ep,ev,re,r,rp) function c88305705.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_FUSION) return e:GetHandler():IsSummonType(SUMMON_TYPE_FUSION)
...@@ -68,7 +108,7 @@ function c88305705.ftarget(e,c) ...@@ -68,7 +108,7 @@ function c88305705.ftarget(e,c)
end end
function c88305705.discon(e,tp,eg,ep,ev,re,r,rp) function c88305705.discon(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end if e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end
return re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsAttack(0) return c88305705.disable[ev]
end end
function c88305705.disop(e,tp,eg,ep,ev,re,r,rp) function c88305705.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev) Duel.NegateEffect(ev)
......
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