Commit 3fb19fcb authored by 独孤朲's avatar 独孤朲

Merge pull request #1013 from salix5/patch-qli

fix: qliphort
parents aa80f67b f8db16ec
......@@ -126,13 +126,16 @@ function c13073850.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end
function c13073850.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
local tc=te:GetHandler()
local lv=e:GetHandler():GetLevel()
if te:IsActiveType(TYPE_XYZ) then
return tc:GetOriginalRank()<lv
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return tc:GetOriginalLevel()<lv
return false
end
function c13073850.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1
......
......@@ -56,6 +56,7 @@ function c20426907.distg1(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(1)
Duel.SetTargetCard(teg)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,teg,1,0,0)
e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(20426907,1))
end
return
end
......@@ -66,6 +67,7 @@ function c20426907.distg1(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(2)
Duel.SetTargetCard(g)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,g:GetCount(),0,0)
e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(20426907,1))
end
end
end
......@@ -83,10 +85,13 @@ function c20426907.distg3(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetTargetCard(g)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,g:GetCount(),0,0)
end
function c20426907.disfilter(c,e)
return c:IsFaceup() and c:IsRelateToEffect(e)
end
function c20426907.disop(e,tp,eg,ep,ev,re,r,rp)
if c20426907.sdcon(e) then return end
if e:GetLabel()==0 or not e:GetHandler():IsRelateToEffect(e) then return end
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(c20426907.disfilter,nil,e)
local tc=g:GetFirst()
while tc do
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
......
......@@ -27,7 +27,7 @@ function c27279764.initial_effect(c)
--immune
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_IMMUNE_EFFECT)
e5:SetCondition(c27279764.immcon)
......@@ -72,7 +72,7 @@ function c27279764.immcon(e)
end
function c27279764.efilter(e,te)
if te:IsActiveType(TYPE_SPELL+TYPE_TRAP) then return true end
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:GetHandlerPlayer()~=PLAYER_NONE or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
......
......@@ -117,13 +117,16 @@ 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
local tc=te:GetHandler()
local lv=e:GetHandler():GetLevel()
if te:IsActiveType(TYPE_XYZ) then
return tc:GetOriginalRank()<lv
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return tc:GetOriginalLevel()<lv
return false
end
function c37991342.desfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsDestructable()
......
......@@ -26,10 +26,12 @@ function c40061558.initial_effect(c)
c:RegisterEffect(e4)
--immune
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetCode(EVENT_SUMMON_SUCCESS)
e5:SetOperation(c40061558.immop)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_IMMUNE_EFFECT)
e5:SetCondition(c40061558.immcon)
e5:SetValue(c40061558.efilter)
c:RegisterEffect(e5)
--control
local e6=Effect.CreateEffect(c)
......@@ -54,23 +56,15 @@ function c40061558.ttop(e,tp,eg,ep,ev,re,r,rp,c)
c:SetMaterial(g)
Duel.Release(g,REASON_SUMMON+REASON_MATERIAL)
end
function c40061558.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(c40061558.efilter)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
function c40061558.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end
function c40061558.efilter(e,te)
if te:IsActiveType(TYPE_SPELL+TYPE_TRAP) then return true end
if te:IsActiveType(TYPE_MONSTER) and te:IsHasType(0x7e0) then
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetHandler()
if te:IsActiveType(TYPE_XYZ) then
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
......
......@@ -125,13 +125,16 @@ 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
local tc=te:GetHandler()
local lv=e:GetHandler():GetLevel()
if te:IsActiveType(TYPE_XYZ) then
return tc:GetOriginalRank()<lv
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return tc:GetOriginalLevel()<lv
return false
end
function c64496451.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1
......
......@@ -125,13 +125,16 @@ function c87588741.immcon(e)
return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_NORMAL)==SUMMON_TYPE_NORMAL
end
function c87588741.efilter(e,te)
if not te:IsActiveType(TYPE_MONSTER) or not te:IsHasType(0x7e0) then return false end
local tc=te:GetHandler()
local lv=e:GetHandler():GetLevel()
if te:IsActiveType(TYPE_XYZ) then
return tc:GetOriginalRank()<lv
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return tc:GetOriginalLevel()<lv
return false
end
function c87588741.damcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1
......
......@@ -123,13 +123,16 @@ 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
local tc=te:GetHandler()
local lv=e:GetHandler():GetLevel()
if te:IsActiveType(TYPE_XYZ) then
return tc:GetOriginalRank()<lv
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return tc:GetOriginalLevel()<lv
return false
end
function c90885155.effcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE and e:GetLabel()==1
......
......@@ -118,13 +118,16 @@ 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
local tc=te:GetHandler()
local lv=e:GetHandler():GetLevel()
if te:IsActiveType(TYPE_XYZ) then
return tc:GetOriginalRank()<lv
if te:IsActiveType(TYPE_MONSTER) and (te:IsHasType(0x7e0) or te:IsHasProperty(EFFECT_FLAG_FIELD_ONLY) or te:IsHasProperty(EFFECT_FLAG_OWNER_RELATE)) then
local lv=e:GetHandler():GetLevel()
local ec=te:GetOwner()
if ec:IsType(TYPE_XYZ) then
return ec:GetOriginalRank()<lv
else
return ec:GetOriginalLevel()<lv
end
end
return tc:GetOriginalLevel()<lv
return false
end
function c91907707.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsAbleToHand() end
......
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