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) ...@@ -35,12 +35,12 @@ function c26732909.initial_effect(c)
end end
end end
function c26732909.checkop1(e,tp,eg,ep,ev,re,r,rp) 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 c26732909[rp]=c26732909[rp]+1
end end
end end
function c26732909.checkop2(e,tp,eg,ep,ev,re,r,rp) 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 c26732909[rp]=c26732909[rp]-1
end end
end end
......
...@@ -45,10 +45,12 @@ function c37991342.initial_effect(c) ...@@ -45,10 +45,12 @@ function c37991342.initial_effect(c)
c:RegisterEffect(e6) c:RegisterEffect(e6)
--immune --immune
local e7=Effect.CreateEffect(c) local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetCode(EVENT_SUMMON_SUCCESS) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetOperation(c37991342.immop) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c37991342.immcon)
e7:SetValue(c37991342.efilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--destroy --destroy
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -111,16 +113,8 @@ function c37991342.lvop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -111,16 +113,8 @@ function c37991342.lvop2(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+0xff0000) e2:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c37991342.immop(e,tp,eg,ep,ev,re,r,rp) function c37991342.immcon(e)
local c=e:GetHandler() return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
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)
end end
function c37991342.efilter(e,te) function c37991342.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
......
...@@ -46,10 +46,12 @@ function c64496451.initial_effect(c) ...@@ -46,10 +46,12 @@ function c64496451.initial_effect(c)
c:RegisterEffect(e6) c:RegisterEffect(e6)
--immune --immune
local e7=Effect.CreateEffect(c) local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetCode(EVENT_SUMMON_SUCCESS) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetOperation(c64496451.immop) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c64496451.immcon)
e7:SetValue(c64496451.efilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--summon success --summon success
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -119,16 +121,8 @@ function c64496451.lvop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -119,16 +121,8 @@ function c64496451.lvop2(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+0xff0000) e2:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c64496451.immop(e,tp,eg,ep,ev,re,r,rp) function c64496451.immcon(e)
local c=e:GetHandler() return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
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)
end end
function c64496451.efilter(e,te) function c64496451.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
......
...@@ -11,7 +11,7 @@ function c69155991.initial_effect(c) ...@@ -11,7 +11,7 @@ function c69155991.initial_effect(c)
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:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_CHAIN_END) e2:SetCode(EVENT_CHAIN_SOLVED)
e2:SetOperation(c69155991.desop1) e2:SetOperation(c69155991.desop1)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
...@@ -36,7 +36,7 @@ function c69155991.initial_effect(c) ...@@ -36,7 +36,7 @@ function c69155991.initial_effect(c)
end end
function c69155991.chop(e,tp,eg,ep,ev,re,r,rp) function c69155991.chop(e,tp,eg,ep,ev,re,r,rp)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) or re:GetHandler():IsType(TYPE_MONSTER) then 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
end end
function c69155991.desop1(e,tp,eg,ep,ev,re,r,rp) 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) ...@@ -48,12 +48,12 @@ function c87608852.checkop1(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c87608852.checkop2(e,tp,eg,ep,ev,re,r,rp) 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 c87608852[rp+2]=c87608852[rp+2]+1
end end
end end
function c87608852.checkop3(e,tp,eg,ep,ev,re,r,rp) 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 c87608852[rp+2]=c87608852[rp+2]-1
end end
end end
......
...@@ -45,10 +45,12 @@ function c90885155.initial_effect(c) ...@@ -45,10 +45,12 @@ function c90885155.initial_effect(c)
c:RegisterEffect(e6) c:RegisterEffect(e6)
--immune --immune
local e7=Effect.CreateEffect(c) local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetCode(EVENT_SUMMON_SUCCESS) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetOperation(c90885155.immop) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c90885155.immcon)
e7:SetValue(c90885155.efilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--effect --effect
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -115,16 +117,8 @@ function c90885155.lvop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -115,16 +117,8 @@ function c90885155.lvop2(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+0xff0000) e2:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c90885155.immop(e,tp,eg,ep,ev,re,r,rp) function c90885155.immcon(e)
local c=e:GetHandler() return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
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)
end end
function c90885155.efilter(e,te) function c90885155.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
......
...@@ -46,10 +46,12 @@ function c91907707.initial_effect(c) ...@@ -46,10 +46,12 @@ function c91907707.initial_effect(c)
c:RegisterEffect(e6) c:RegisterEffect(e6)
--immune --immune
local e7=Effect.CreateEffect(c) local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e7:SetCode(EFFECT_IMMUNE_EFFECT)
e7:SetCode(EVENT_SUMMON_SUCCESS) e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetOperation(c91907707.immop) e7:SetRange(LOCATION_MZONE)
e7:SetCondition(c91907707.immcon)
e7:SetValue(c91907707.efilter)
c:RegisterEffect(e7) c:RegisterEffect(e7)
--tohand --tohand
local e8=Effect.CreateEffect(c) local e8=Effect.CreateEffect(c)
...@@ -112,16 +114,8 @@ function c91907707.lvop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -112,16 +114,8 @@ function c91907707.lvop2(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+0xff0000) e2:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c91907707.immop(e,tp,eg,ep,ev,re,r,rp) function c91907707.immcon(e)
local c=e:GetHandler() return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
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)
end end
function c91907707.efilter(e,te) function c91907707.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
......
...@@ -36,22 +36,34 @@ function c94977269.initial_effect(c) ...@@ -36,22 +36,34 @@ function c94977269.initial_effect(c)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_SPSUMMON_SUCCESS) e5:SetCode(EVENT_SPSUMMON)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetRange(LOCATION_MZONE) e5:SetRange(LOCATION_MZONE)
e5:SetOperation(c94977269.checkop) e5:SetOperation(c94977269.checkop1)
c:RegisterEffect(e5) c:RegisterEffect(e5)
--tohand
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(94977269,0)) e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCategory(CATEGORY_TOHAND) e6:SetCode(EVENT_CHAINING)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e6:SetRange(LOCATION_MZONE)
e6:SetCode(EVENT_TO_GRAVE) e6:SetOperation(c94977269.checkop2)
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)
c:RegisterEffect(e6) 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 end
function c94977269.ffilter1(c) function c94977269.ffilter1(c)
return c:IsSetCard(0x9d) return c:IsSetCard(0x9d)
...@@ -167,9 +179,8 @@ end ...@@ -167,9 +179,8 @@ end
function c94977269.spval(e,se,sp) function c94977269.spval(e,se,sp)
return 1-e:GetHandler():GetFlagEffect(94977269+sp) return 1-e:GetHandler():GetFlagEffect(94977269+sp)
end 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() local c=e:GetHandler()
if eg:IsContains(c) then return end
local p1=false local p1=false
local p2=false local p2=false
local tc=eg:GetFirst() local tc=eg:GetFirst()
...@@ -177,8 +188,43 @@ function c94977269.checkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -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 if tc:GetSummonPlayer()==0 then p1=true else p2=true end
tc=eg:GetNext() tc=eg:GetNext()
end end
if p1 then c:RegisterFlagEffect(94977269,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_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 end
function c94977269.indval(e,re,tp) function c94977269.indval(e,re,tp)
return tp~=e:GetHandlerPlayer() 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