Commit 6be6c8aa authored by POLYMER's avatar POLYMER

fix

parent ab564c7b
......@@ -69,10 +69,27 @@ function cm.initial_effect(c)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_DISABLE)
e0:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e0:SetTarget(function(e,c) return c:IsOriginalSetCard(0x5977) and c:IsType(TYPE_TRAP) and c:IsHasEffect(EFFECT_DISABLE_TRAPMONSTER) and c:IsHasEffect(EFFECT_DISABLE_TRAPMONSTER):GetHandlerPlayer()==e:GetHandlerPlayer() end)
e0:SetTarget(function(e,c) return c:GetOriginalCode()==m and c:IsType(TYPE_TRAP) and c:IsHasEffect(EFFECT_DISABLE_TRAPMONSTER) and c:IsHasEffect(EFFECT_DISABLE_TRAPMONSTER):GetHandlerPlayer()==e:GetHandlerPlayer() end)
Duel.RegisterEffect(e0,0)
local e1=e0:Clone()
Duel.RegisterEffect(e1,1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_SEND_REPLACE)
e2:SetTarget(function(e,tp,eg,ep,ev,re,r,rp,chk)
local g=eg:Filter(function(c) return c:GetOriginalCode()==m and c:IsStatus(STATUS_ACTIVATE_DISABLED) and c:GetDestination()==LOCATION_GRAVE end,nil)
if chk==0 then return #g>0 end
for rc in aux.Next(g) do
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TO_DECK)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
end
end)
e2:SetValue(aux.FALSE)
Duel.RegisterEffect(e2,0)
local _IsActiveType=Effect.IsActiveType
local _GetActiveType=Effect.GetActiveType
local _GetActivateLocation=Effect.GetActivateLocation
......@@ -124,24 +141,20 @@ function cm.initial_effect(c)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
--tograve
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TO_DECK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return _NegateActivation(ev)
return res
end
function Duel.ChangeChainOperation(ev,...)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:CancelToGrave(false)
end
end
......
......@@ -83,6 +83,23 @@ function cm.initial_effect(c)
Duel.RegisterEffect(e0,0)
local e1=e0:Clone()
Duel.RegisterEffect(e1,1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_SEND_REPLACE)
e2:SetTarget(function(e,tp,eg,ep,ev,re,r,rp,chk)
local g=eg:Filter(function(c) return c:GetOriginalCode()==m and c:IsStatus(STATUS_ACTIVATE_DISABLED) and c:GetDestination()==LOCATION_GRAVE end,nil)
if chk==0 then return #g>0 end
for rc in aux.Next(g) do
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TO_DECK)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
end
end)
e2:SetValue(aux.FALSE)
Duel.RegisterEffect(e2,0)
local _IsActiveType=Effect.IsActiveType
local _GetActiveType=Effect.GetActiveType
local _GetActivateLocation=Effect.GetActivateLocation
......@@ -134,24 +151,20 @@ function cm.initial_effect(c)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
--tograve
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TO_DECK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return _NegateActivation(ev)
return res
end
function Duel.ChangeChainOperation(ev,...)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:CancelToGrave(false)
end
end
......
......@@ -72,6 +72,23 @@ function cm.initial_effect(c)
Duel.RegisterEffect(e0,0)
local e1=e0:Clone()
Duel.RegisterEffect(e1,1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_SEND_REPLACE)
e2:SetTarget(function(e,tp,eg,ep,ev,re,r,rp,chk)
local g=eg:Filter(function(c) return c:GetOriginalCode()==m and c:IsStatus(STATUS_ACTIVATE_DISABLED) and c:GetDestination()==LOCATION_GRAVE end,nil)
if chk==0 then return #g>0 end
for rc in aux.Next(g) do
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TO_DECK)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
end
end)
e2:SetValue(aux.FALSE)
Duel.RegisterEffect(e2,0)
local _IsActiveType=Effect.IsActiveType
local _GetActiveType=Effect.GetActiveType
local _GetActivateLocation=Effect.GetActivateLocation
......@@ -123,24 +140,20 @@ function cm.initial_effect(c)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
--tograve
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TO_DECK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return _NegateActivation(ev)
return res
end
function Duel.ChangeChainOperation(ev,...)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:CancelToGrave(false)
end
end
......
......@@ -74,6 +74,23 @@ function cm.initial_effect(c)
Duel.RegisterEffect(e0,0)
local e1=e0:Clone()
Duel.RegisterEffect(e1,1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_SEND_REPLACE)
e2:SetTarget(function(e,tp,eg,ep,ev,re,r,rp,chk)
local g=eg:Filter(function(c) return c:GetOriginalCode()==m and c:IsStatus(STATUS_ACTIVATE_DISABLED) and c:GetDestination()==LOCATION_GRAVE end,nil)
if chk==0 then return #g>0 end
for rc in aux.Next(g) do
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TO_DECK)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
end
end)
e2:SetValue(aux.FALSE)
Duel.RegisterEffect(e2,0)
local _IsActiveType=Effect.IsActiveType
local _GetActiveType=Effect.GetActiveType
local _GetActivateLocation=Effect.GetActivateLocation
......@@ -125,24 +142,20 @@ function cm.initial_effect(c)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
--tograve
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TO_DECK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return _NegateActivation(ev)
return res
end
function Duel.ChangeChainOperation(ev,...)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:CancelToGrave(false)
end
end
......
......@@ -81,6 +81,7 @@ function cm.initial_effect(c)
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _GetChainInfo=Duel.GetChainInfo
local _NegateActivation=Duel.NegateActivation
local _ChangeChainOperation=Duel.ChangeChainOperation
function Effect.GetActiveType(e)
if e:GetDescription()==aux.Stringid(m,0) then
......@@ -124,11 +125,22 @@ function cm.initial_effect(c)
end
return _GetChainInfo(ev,...)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
function Duel.ChangeChainOperation(ev,...)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:CancelToGrave(false)
end
end
......
......@@ -74,6 +74,7 @@ function cm.initial_effect(c)
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _GetChainInfo=Duel.GetChainInfo
local _NegateActivation=Duel.NegateActivation
local _ChangeChainOperation=Duel.ChangeChainOperation
function Effect.GetActiveType(e)
if e:GetDescription()==aux.Stringid(m,0) then
......@@ -117,11 +118,22 @@ function cm.initial_effect(c)
end
return _GetChainInfo(ev,...)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
function Duel.ChangeChainOperation(ev,...)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:CancelToGrave(false)
end
end
......
......@@ -50,6 +50,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -62,6 +63,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.valcheck(e,c)
......
......@@ -37,6 +37,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -49,6 +50,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.actarget(e,te,tp)
......
......@@ -72,6 +72,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -84,6 +85,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.filter(c,event)
......
......@@ -55,6 +55,7 @@ function cm.initial_effect(c)
Duel.RegisterEffect(ge0,0)
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -67,6 +68,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
local KOISHI_CHECK=false
......
......@@ -116,8 +116,9 @@ end
function cm.efilter(e,te)
if not (te:IsActivated() and te:GetOwnerPlayer()==1-e:GetHandlerPlayer()) then return false end
local ev=Duel.GetCurrentChain()
local sp=te:IsHasCategory(CATEGORY_NEGATE) and Duel.GetChainInfo(ev-1,CHAININFO_TRIGGERING_EFFECT):IsHasType(EFFECT_TYPE_ACTIVATE)
local ex,tg,tc=Duel.GetOperationInfo(ev,CATEGORY_DESTROY)
return not (ex and (tg~=nil or tc>0))
return sp or not (ex and (tg~=nil or tc>0))
end
function cm.thfilter(c)
return c:GetAttack()>0 and (c:IsSetCard(0x10) or c:IsSetCard(0xb5)) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
......
......@@ -55,6 +55,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -67,6 +68,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.handcon(e)
......
......@@ -55,6 +55,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -67,6 +68,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.handcon(e)
......
......@@ -55,6 +55,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -67,6 +68,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.handcon(e)
......
......@@ -55,6 +55,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -67,6 +68,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.handcon(e)
......
......@@ -55,6 +55,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -67,6 +68,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.handcon(e)
......
......@@ -55,6 +55,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -67,6 +68,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.handcon(e)
......
......@@ -53,6 +53,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -65,6 +66,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD)
ge1:SetCode(EFFECT_TRAP_ACT_IN_HAND)
......
......@@ -55,6 +55,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -67,6 +68,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.actarget(e,te,tp)
......
......@@ -60,6 +60,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -72,6 +73,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.actarget(e,te,tp)
......
......@@ -60,6 +60,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -72,6 +73,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.actarget(e,te,tp)
......
......@@ -58,6 +58,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -70,6 +71,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAINING)
......@@ -149,7 +161,7 @@ function cm.clear(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.costcon(e)
cm[0]=false
cm.costing=false
return true
end
function cm.actarget2(e,te,tp)
......@@ -162,7 +174,7 @@ end
function cm.costop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local te=e:GetLabelObject()
if cm[0] or CONVIATRESS_BUFF[te] then return end
if cm.costing or CONVIATRESS_BUFF[te] then return end
local tg=te:GetTarget() or aux.TRUE
local tg2=function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return tg(e,tp,eg,ep,ev,re,r,rp,0,1) end
......@@ -229,7 +241,7 @@ function cm.costop2(e,tp,eg,ep,ev,re,r,rp)
end
te:SetTarget(tg2)
CONVIATRESS_BUFF[te]=true
cm[0]=true
cm.costing=true
end
function cm.efilter(e,ct)
return e:GetLabel()==ct
......
......@@ -34,6 +34,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_FZONE
......@@ -46,6 +47,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.rdfilter(c)
......
......@@ -26,6 +26,7 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
if e:GetHandler():IsType(TYPE_FIELD) then return LOCATION_FZONE end
......@@ -39,6 +40,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.matfilter(c)
......
......@@ -59,6 +59,7 @@ function cm.initial_effect(c)
Duel.RegisterEffect(ge0,0)
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -71,6 +72,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
local KOISHI_CHECK=false
......
......@@ -21,6 +21,32 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()>=aux.Stringid(m,1) and e:GetDescription()<=aux.Stringid(m,7) then
return LOCATION_SZONE
end
return _GetActivateLocation(e)
end
function Effect.GetActivateSequence(e)
if e:GetDescription()>=aux.Stringid(m,1) and e:GetDescription()<=aux.Stringid(m,7) then
return cm.activate_sequence[e]
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and (re:GetDescription()>=aux.Stringid(m,1) and re:GetDescription()<=aux.Stringid(m,7)) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
function Effect.GetActivateLocation(e)
if e:GetDescription()>=aux.Stringid(m,1) and e:GetDescription()<=aux.Stringid(m,7) then
return LOCATION_SZONE
......@@ -68,8 +94,9 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=re:IsHasCategory(CATEGORY_NEGATE)
local b2=re:IsHasCategory(CATEGORY_DISABLE)
local sp=re:IsHasCategory(CATEGORY_NEGATE) and Duel.GetChainInfo(ev-1,CHAININFO_TRIGGERING_EFFECT):IsHasType(EFFECT_TYPE_ACTIVATE)
local ex,tg,tc=Duel.GetOperationInfo(ev,CATEGORY_DESTROY)
local b3=(ex and (tg~=nil or tc>0))
local b3=ex and (tg~=nil or tc>0) and not sp
local lab=0
if b1 then lab=lab+1 end
if b2 then lab=lab+2 end
......
......@@ -53,8 +53,10 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
if e:GetHandler():IsType(TYPE_FIELD) then return LOCATION_FZONE end
return LOCATION_SZONE
end
return _GetActivateLocation(e)
......@@ -65,6 +67,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_DESTROYED)
......@@ -145,7 +158,7 @@ function cm.handcon(e)
return Duel.GetTurnPlayer()==1-e:GetHandlerPlayer()
end
function cm.cfilter(c)
return c:IsType(TYPE_MONSTER) and not c:IsReason(REASON_DRAW) and not c:IsStatus(STATUS_TO_HAND_WITHOUT_CONFIRM)
return c:IsType(TYPE_MONSTER) and not c:IsReason(REASON_DRAW) and (c:IsPublic() or (not c:IsStatus(STATUS_TO_HAND_WITHOUT_CONFIRM) and (c:IsPreviousLocation(LOCATION_DECK) or c:IsPreviousPosition(POS_FACEUP))))
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil)
......
......@@ -77,8 +77,10 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) or e:GetDescription()==aux.Stringid(m,1) then
if e:GetHandler():IsType(TYPE_FIELD) then return LOCATION_FZONE end
return LOCATION_SZONE
end
return _GetActivateLocation(e)
......@@ -89,6 +91,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and (re:GetDescription()==aux.Stringid(m,0) or re:GetDescription()==aux.Stringid(m,1)) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
local ge5=Effect.CreateEffect(c)
ge5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge5:SetCode(EVENT_LEAVE_FIELD)
......
......@@ -10,6 +10,9 @@ function cm.initial_effect(c)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
local e3=e1:Clone()
e3:SetRange(LOCATION_HAND)
--c:RegisterEffect(e3)
local e2=e1:Clone()
e2:SetDescription(aux.Stringid(m,0))
e2:SetRange(LOCATION_DECK)
......@@ -41,8 +44,10 @@ function cm.initial_effect(c)
cm.activate_sequence={}
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _NegateActivation=Duel.NegateActivation
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
if e:GetHandler():IsType(TYPE_FIELD) then return LOCATION_FZONE end
return LOCATION_SZONE
end
return _GetActivateLocation(e)
......@@ -53,6 +58,17 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
end
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
......@@ -112,7 +128,7 @@ function cm.tdfilter(c)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) and Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) and Duel.IsPlayerCanDraw(tp,1)
return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) and Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) and Duel.IsPlayerCanDraw(tp,1) and e:GetHandler():GetFlagEffect(m)==0
end
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -18,6 +18,7 @@ function cm.initial_effect(c)
cm.global_check=true
local _IsActiveType=Effect.IsActiveType
local _GetActiveType=Effect.GetActiveType
local _NegateActivation=Duel.NegateActivation
local _ChangeChainOperation=Duel.ChangeChainOperation
function Effect.GetActiveType(e)
if e:GetDescription()==aux.Stringid(m,0) then
......@@ -29,11 +30,22 @@ function cm.initial_effect(c)
local typ2=e:GetActiveType()
return typ&typ2~=0
end
function Duel.NegateActivation(ev)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local res=_NegateActivation(ev)
if res and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
end
return res
end
function Duel.ChangeChainOperation(ev,...)
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if rc and rc:IsOnField() and re:GetDescription()==aux.Stringid(m,0) then
if rc and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) and re:GetDescription()==aux.Stringid(m,0) then
rc:CancelToGrave(false)
end
end
......
--新二重 雷霆之怒龙
local s,id,o=GetID()
function c21401148.initial_effect(c)
s.EnableDualAttribute(c)
aux.EnableDualAttribute(c)
--destroy
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
......@@ -9,15 +9,40 @@ function c21401148.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_END_PHASE+TIMINGS_CHECK_MONSTER)
e1:SetHintTiming(0,TIMING_END_PHASE+TIMING_EQUIP)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(aux.IsDualState)
e1:SetCountLimit(1)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
--deck normal type
--把gettype和istype重写,如果c是id,并且在卡组,就返回原本的函数
local ori_GetType = Card.GetType
local ori_IsType = Card.IsType
Card.GetType = function(c)
if c:IsOriginalCodeRule(id) and c:IsLocation(LOCATION_DECK) then
--Debug.Message("gettype")
return TYPE_MONSTER + TYPE_NORMAL
end
return ori_GetType(c)
end
Card.IsType = function(c,type)
if c:IsOriginalCodeRule(id) and type & TYPE_NORMAL and c:IsLocation(LOCATION_DECK) then
if not type==TYPE_NORMAL then
--Debug.Message("istype_cont")
return ori_IsType(c,type~TYPE_NORMAL)
else
--Debug.Message("istype_true")
return true
end
end
return ori_IsType(c,type)
end
end
function s.EnableDualAttribute(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
......@@ -28,15 +53,37 @@ function s.EnableDualAttribute(c)
e2:SetCode(EFFECT_ADD_TYPE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetRange(LOCATION_MZONE+LOCATION_GRAVE+LOCATION_DECK)
e2:SetCondition(Auxiliary.DualNormalCondition)
e2:SetCondition(aux.TRUE)
e2:SetValue(TYPE_NORMAL)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_REMOVE_TYPE)
e3:SetValue(TYPE_EFFECT)
c:RegisterEffect(e3)
end
function s.debug(e)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_ADD_TYPE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetRange(LOCATION_DECK)
e4:SetValue(TYPE_NORMAL)
e4:SetCondition(s.debug)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EFFECT_REMOVE_TYPE)
e5:SetValue(TYPE_EFFECT)
c:RegisterEffect(e5)
local c=e:GetHandler()
Debug.Message(c:IsLocation(LOCATION_DECK))
return true
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() end
if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
......
......@@ -9,6 +9,7 @@ function c60152901.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_HAND)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,60152901)
e1:SetCondition(c60152901.e1con)
e1:SetTarget(c60152901.e1tg)
......
......@@ -9,6 +9,7 @@ function c60152902.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_HAND)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,60152902)
e1:SetCondition(c60152902.e1con)
e1:SetTarget(c60152902.e1tg)
......
......@@ -9,6 +9,7 @@ function c60152903.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_HAND)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,60152903)
e1:SetCondition(c60152903.e1con)
e1:SetTarget(c60152903.e1tg)
......
......@@ -9,6 +9,7 @@ function c60152904.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_HAND)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,60152904)
e1:SetCondition(c60152904.e1con)
e1:SetTarget(c60152904.e1tg)
......
......@@ -9,6 +9,7 @@ function c60152905.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_HAND)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,60152905)
e1:SetCondition(c60152905.e1con)
e1:SetTarget(c60152905.e1tg)
......
......@@ -9,6 +9,7 @@ function c60152906.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_HAND)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,60152906)
e1:SetCondition(c60152906.e1con)
e1:SetTarget(c60152906.e1tg)
......
......@@ -9,6 +9,7 @@ function c60152907.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_HAND)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,60152907)
e1:SetCondition(c60152907.e1con)
e1:SetTarget(c60152907.e1tg)
......
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