Commit e845cf31 authored by mercury233's avatar mercury233 Committed by GitHub

fix deattach xyz triggered effect (#1448)

* update IsActivated check

don't need to deal with EFFECT_TYPE_ACTIVATE

* fix deattach xyz triggered effect

shouldn't be triggered by other monsters
parent b100217e
......@@ -55,7 +55,7 @@ function c13032689.atkval(e,c)
return c:GetRank()*200
end
function c13032689.rcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(r,REASON_COST)~=0 and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_XYZ)
return bit.band(r,REASON_COST)~=0 and re:IsActivated() and re:IsActiveType(TYPE_XYZ)
and ep==e:GetOwnerPlayer() and e:GetHandler():GetEquipTarget()==re:GetHandler() and re:GetHandler():GetOverlayCount()>=ev-1
end
function c13032689.rop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -60,7 +60,7 @@ function c13647631.spop(e,tp,eg,ep,ev,re,r,rp)
end
function c13647631.descon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return c:IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_XYZ)
and c:IsPreviousLocation(LOCATION_OVERLAY)
end
function c13647631.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......
......@@ -50,7 +50,7 @@ function c21565445.operation(e,tp,eg,ep,ev,re,r,rp)
end
end
function c21565445.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and re:GetHandler():IsAttribute(ATTRIBUTE_WATER)
end
function c21565445.spfilter(c,e,tp)
......
......@@ -52,7 +52,7 @@ function c28884172.splimit(e,c)
end
function c28884172.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return c:IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_XYZ)
and c:IsPreviousLocation(LOCATION_OVERLAY)
end
function c28884172.atkfilter(c)
......
......@@ -22,7 +22,7 @@ function c32542011.cfilter2(c,att)
end
function c32542011.spfilter(c,tid,e,tp)
local re=c:GetReasonEffect()
return c:GetTurnID()==tid and c:IsReason(REASON_COST) and re and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return c:GetTurnID()==tid and c:IsReason(REASON_COST) and re and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and c:IsAttribute(ATTRIBUTE_WATER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c32542011.target(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -14,7 +14,7 @@ function c32696942.initial_effect(c)
end
function c32696942.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return c:IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and bit.band(c:GetPreviousLocation(),LOCATION_OVERLAY)~=0
end
function c32696942.filter(c,e,tp)
......
......@@ -18,7 +18,7 @@ function c32999573.initial_effect(c)
end
function c32999573.rcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(32999573+ep)==0
and bit.band(r,REASON_COST)~=0 and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_XYZ)
and bit.band(r,REASON_COST)~=0 and re:IsActivated() and re:IsActiveType(TYPE_XYZ)
and re:GetHandler():GetOverlayCount()>=ev-1
and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_HAND,0,1,nil,tp,POS_FACEDOWN)
end
......
......@@ -48,7 +48,7 @@ function c35394356.atkop(e,tp,eg,ep,ev,re,r,rp)
end
end
function c35394356.rcon(e,tp,eg,ep,ev,re,r,rp)
return aux.exccon(e) and bit.band(r,REASON_COST)~=0 and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_XYZ)
return aux.exccon(e) and bit.band(r,REASON_COST)~=0 and re:IsActivated() and re:IsActiveType(TYPE_XYZ)
and re:GetHandler():GetOverlayCount()>=ev-1 and e:GetHandler():IsAbleToRemoveAsCost() and ep==e:GetOwnerPlayer()
end
function c35394356.rop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -25,7 +25,7 @@ function c37104630.extg(e,c)
return c:IsLevelBelow(4) and c:IsRace(RACE_SEASERPENT)
end
function c37104630.descon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and re:GetHandler():IsAttribute(ATTRIBUTE_WATER)
end
function c37104630.desfilter(c)
......
......@@ -60,7 +60,7 @@ function c41418852.cpop(e,tp,eg,ep,ev,re,r,rp)
end
end
function c41418852.rcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(r,REASON_COST)~=0 and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_XYZ) and re:GetHandler():IsSetCard(0x14a)
return bit.band(r,REASON_COST)~=0 and re:IsActivated() and re:IsActiveType(TYPE_XYZ) and re:GetHandler():IsSetCard(0x14a)
and ep==e:GetOwnerPlayer() and re:GetActivateLocation()&LOCATION_MZONE~=0
end
function c41418852.rop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -23,7 +23,7 @@ function c45184165.initial_effect(c)
end
function c45184165.thcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return c:IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_XYZ)
and c:IsPreviousLocation(LOCATION_OVERLAY)
end
function c45184165.thfilter(c)
......
......@@ -26,7 +26,7 @@ function c45483489.initial_effect(c)
c:RegisterEffect(e2)
end
function c45483489.rmcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and re:GetHandler():IsAttribute(ATTRIBUTE_WATER)
end
function c45483489.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -16,7 +16,7 @@ function c55067058.initial_effect(c)
end
c55067058.xyz_number=19
function c55067058.rcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(r,REASON_COST)~=0 and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_XYZ)
return bit.band(r,REASON_COST)~=0 and re:IsActivated() and re:IsActiveType(TYPE_XYZ)
and e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_EFFECT)
and ep==e:GetOwnerPlayer() and re:GetHandler():GetOverlayCount()>=ev-1
end
......
......@@ -67,7 +67,7 @@ function c59913418.costcon(e)
return e:GetHandler():GetFlagEffect(59913418)>0
end
function c59913418.costval(e,re,rp,val)
if re and re:IsHasType(0x7e0) and re:GetHandler()==e:GetHandler() then
if re and re:IsActivated() and re:GetHandler()==e:GetHandler() then
return 0
else return val end
end
......
......@@ -43,7 +43,7 @@ function c62968263.spop1(e,tp,eg,ep,ev,re,r,rp)
end
function c62968263.spcon2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return c:IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_XYZ)
and c:IsPreviousLocation(LOCATION_OVERLAY)
end
function c62968263.spfilter(c,e,tp)
......
......@@ -59,7 +59,7 @@ function c68392533.operation(e,tp,eg,ep,ev,re,r,rp)
end
end
function c68392533.costchange(e,re,rp,val)
if re and re:IsHasType(0x7e0) and re:GetHandler()==e:GetHandler():GetEquipTarget() then
if re and re:IsActivated() and re:GetHandler()==e:GetHandler():GetEquipTarget() then
return 0
else return val end
end
......
......@@ -43,7 +43,7 @@ function c706925.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
function c706925.descon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and re:GetHandler():IsAttribute(ATTRIBUTE_WATER)
end
function c706925.desfilter(c)
......
......@@ -23,7 +23,7 @@ function c74311226.datg(e,c)
return c:IsLevelBelow(3) and c:IsRace(RACE_SEASERPENT)
end
function c74311226.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return e:GetHandler():IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_MONSTER)
and re:GetHandler():IsAttribute(ATTRIBUTE_WATER)
end
function c74311226.thfilter(c)
......
......@@ -29,7 +29,7 @@ function c76722334.drcon1(e,tp,eg,ep,ev,re,r,rp)
end
function c76722334.drcon2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_COST) and re:IsHasType(0x7e0) and re:IsActiveType(TYPE_MONSTER)
return c:IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_XYZ)
and c:IsPreviousLocation(LOCATION_OVERLAY)
end
function c76722334.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -65,7 +65,7 @@ function c83880087.atkop(e,tp,eg,ep,ev,re,r,rp)
end
end
function c83880087.rcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(r,REASON_COST)~=0 and re:IsHasType(0x7e0)
return bit.band(r,REASON_COST)~=0 and re:IsActivated()
and re:IsActiveType(TYPE_XYZ) and re:GetHandler():IsSetCard(0x107f)
and e:GetHandler():IsAbleToRemoveAsCost()
and ep==e:GetOwnerPlayer() and ev==1
......
......@@ -59,7 +59,7 @@ function c85668449.lrcon(e,tp,eg,ep,ev,re,r,rp)
if tp~=ep then return false end
local lp=Duel.GetLP(ep)
if lp<ev then return false end
if not re or not re:IsHasType(0x7e0) then return false end
if not re or not re:IsActivated() then return false end
local rc=re:GetHandler()
return rc:IsLocation(LOCATION_MZONE) and rc:IsRace(RACE_PSYCHO)
end
......
......@@ -32,7 +32,7 @@ function c98918572.rfilter(c,oc)
end
function c98918572.rcon(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
return bit.band(r,REASON_COST)~=0 and re:IsHasType(0x7e0)
return bit.band(r,REASON_COST)~=0 and re:IsActivated()
and re:IsActiveType(TYPE_XYZ) and ep==e:GetOwnerPlayer() and rc:IsSetCard(0xf1)
and Duel.IsExistingMatchingCard(c98918572.rfilter,tp,LOCATION_MZONE,0,1,rc,ev)
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