Commit 7bb3c6da authored by 独孤朲's avatar 独孤朲

Merge pull request #878 from salix5/patch

fix(updated: 8/15)
parents 803c53d2 7018cd72
......@@ -35,12 +35,12 @@ function c26732909.initial_effect(c)
end
end
function c26732909.checkop1(e,tp,eg,ep,ev,re,r,rp)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsSetCard(0x106e) then
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsType(TYPE_SPELL) and re:GetHandler():IsSetCard(0x106e) then
c26732909[rp]=c26732909[rp]+1
end
end
function c26732909.checkop2(e,tp,eg,ep,ev,re,r,rp)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsSetCard(0x106e) then
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsType(TYPE_SPELL) and re:GetHandler():IsSetCard(0x106e) then
c26732909[rp]=c26732909[rp]-1
end
end
......
......@@ -45,10 +45,12 @@ function c37991342.initial_effect(c)
c:RegisterEffect(e6)
--immune
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetCode(EVENT_SUMMON_SUCCESS)
e7:SetOperation(c37991342.immop)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c37991342.immcon)
e7:SetValue(c37991342.efilter)
c:RegisterEffect(e7)
--destroy
local e8=Effect.CreateEffect(c)
......@@ -111,16 +113,8 @@ function c37991342.lvop2(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e2)
end
function c37991342.immop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(c37991342.efilter)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
function c37991342.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end
function c37991342.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
......
......@@ -46,10 +46,12 @@ function c64496451.initial_effect(c)
c:RegisterEffect(e6)
--immune
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetCode(EVENT_SUMMON_SUCCESS)
e7:SetOperation(c64496451.immop)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c64496451.immcon)
e7:SetValue(c64496451.efilter)
c:RegisterEffect(e7)
--summon success
local e8=Effect.CreateEffect(c)
......@@ -119,16 +121,8 @@ function c64496451.lvop2(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e2)
end
function c64496451.immop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(c64496451.efilter)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
function c64496451.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end
function c64496451.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
......
......@@ -11,7 +11,7 @@ function c69155991.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_CHAIN_END)
e2:SetCode(EVENT_CHAIN_SOLVED)
e2:SetOperation(c69155991.desop1)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
......@@ -36,7 +36,7 @@ function c69155991.initial_effect(c)
end
function c69155991.chop(e,tp,eg,ep,ev,re,r,rp)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) or re:GetHandler():IsType(TYPE_MONSTER) then
e:GetHandler():RegisterFlagEffect(69155991,RESET_EVENT+0x1ff0000+RESET_PHASE+RESET_END,0,1)
e:GetHandler():RegisterFlagEffect(69155991,RESET_EVENT+0x1fe0000+RESET_CHAIN,0,1)
end
end
function c69155991.desop1(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -48,12 +48,12 @@ function c87608852.checkop1(e,tp,eg,ep,ev,re,r,rp)
end
end
function c87608852.checkop2(e,tp,eg,ep,ev,re,r,rp)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsSetCard(0x106e) then
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsType(TYPE_SPELL) and re:GetHandler():IsSetCard(0x106e) then
c87608852[rp+2]=c87608852[rp+2]+1
end
end
function c87608852.checkop3(e,tp,eg,ep,ev,re,r,rp)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsSetCard(0x106e) then
if re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsType(TYPE_SPELL) and re:GetHandler():IsSetCard(0x106e) then
c87608852[rp+2]=c87608852[rp+2]-1
end
end
......
......@@ -45,10 +45,12 @@ function c90885155.initial_effect(c)
c:RegisterEffect(e6)
--immune
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetCode(EVENT_SUMMON_SUCCESS)
e7:SetOperation(c90885155.immop)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c90885155.immcon)
e7:SetValue(c90885155.efilter)
c:RegisterEffect(e7)
--effect
local e8=Effect.CreateEffect(c)
......@@ -115,16 +117,8 @@ function c90885155.lvop2(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e2)
end
function c90885155.immop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(c90885155.efilter)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
function c90885155.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end
function c90885155.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
......
......@@ -46,10 +46,12 @@ function c91907707.initial_effect(c)
c:RegisterEffect(e6)
--immune
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetCode(EVENT_SUMMON_SUCCESS)
e7:SetOperation(c91907707.immop)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c91907707.immcon)
e7:SetValue(c91907707.efilter)
c:RegisterEffect(e7)
--tohand
local e8=Effect.CreateEffect(c)
......@@ -112,16 +114,8 @@ function c91907707.lvop2(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e2)
end
function c91907707.immop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(c91907707.efilter)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
function c91907707.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end
function c91907707.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
......
......@@ -36,22 +36,34 @@ function c94977269.initial_effect(c)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetCode(EVENT_SPSUMMON)
e5:SetRange(LOCATION_MZONE)
e5:SetOperation(c94977269.checkop)
e5:SetOperation(c94977269.checkop1)
c:RegisterEffect(e5)
--tohand
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(94977269,0))
e6:SetCategory(CATEGORY_TOHAND)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_TO_GRAVE)
e6:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e6:SetCondition(c94977269.thcon)
e6:SetTarget(c94977269.thtg)
e6:SetOperation(c94977269.thop)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_CHAINING)
e6:SetRange(LOCATION_MZONE)
e6:SetOperation(c94977269.checkop2)
c:RegisterEffect(e6)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e7:SetCode(EVENT_CHAIN_SOLVED)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetRange(LOCATION_MZONE)
e7:SetOperation(c94977269.checkop3)
c:RegisterEffect(e7)
--tohand
local e8=Effect.CreateEffect(c)
e8:SetDescription(aux.Stringid(94977269,0))
e8:SetCategory(CATEGORY_TOHAND)
e8:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e8:SetCode(EVENT_TO_GRAVE)
e8:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e8:SetCondition(c94977269.thcon)
e8:SetTarget(c94977269.thtg)
e8:SetOperation(c94977269.thop)
c:RegisterEffect(e8)
end
function c94977269.ffilter1(c)
return c:IsSetCard(0x9d)
......@@ -167,9 +179,8 @@ end
function c94977269.spval(e,se,sp)
return 1-e:GetHandler():GetFlagEffect(94977269+sp)
end
function c94977269.checkop(e,tp,eg,ep,ev,re,r,rp)
function c94977269.checkop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if eg:IsContains(c) then return end
local p1=false
local p2=false
local tc=eg:GetFirst()
......@@ -177,8 +188,43 @@ function c94977269.checkop(e,tp,eg,ep,ev,re,r,rp)
if tc:GetSummonPlayer()==0 then p1=true else p2=true end
tc=eg:GetNext()
end
if p1 then c:RegisterFlagEffect(94977269,RESET_PHASE+PHASE_END,0,1) end
if p2 then c:RegisterFlagEffect(94977270,RESET_PHASE+PHASE_END,0,1) end
if p1 then c:RegisterFlagEffect(94977269,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) end
if p2 then c:RegisterFlagEffect(94977270,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) end
end
function c94977269.checkop2(e,tp,eg,ep,ev,re,r,rp)
local ex=Duel.GetOperationInfo(ev,CATEGORY_SPECIAL_SUMMON)
local c=e:GetHandler()
if ex then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetAbsoluteRange(rp,1,0)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetOperation(c94977269.rst)
e2:SetLabelObject(e1)
Duel.RegisterEffect(e2,tp)
end
end
function c94977269.rst(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if e1 then e1:Reset() end
e:Reset()
end
function c94977269.checkop3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ex=Duel.GetOperationInfo(ev,CATEGORY_SPECIAL_SUMMON)
if ex then
if c:GetFlagEffect(94977271)==0 then
c:RegisterFlagEffect(94977271,RESET_EVENT+0x1fc0000,0,1)
elseif not c:IsDisabled() then
c:RegisterFlagEffect(94977269+rp,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
end
end
function c94977269.indval(e,re,tp)
return tp~=e:GetHandlerPlayer()
......
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