Commit 1d7ece2e authored by Nemo Ma's avatar Nemo Ma

Update special.lua

parent 5d1c4f8e
function Auxiliary.PreloadUds()
PreloadUds_Done=true
local tableclone=function(tab,mytab)
local res=mytab or {}
for i,v in pairs(tab) do res[i]=v end
return res
end
local _Card=tableclone(Card)
local _Duel=tableclone(Duel)
local _Effect=tableclone(Effect)
local _Group=tableclone(Group)
EFFECT_FLAG_CANNOT_NEGATE=EFFECT_FLAG_CANNOT_NEGATE or 0x200
function require(str)
require_list=require_list or {}
if not require_list[str] then
......@@ -29,8 +42,10 @@ function Auxiliary.PreloadUds()
return _loadfile(str..".lua")
end
end
local release_set={"CheckReleaseGroup","SelectReleaseGroup"}
local release_set2={"CheckReleaseGroupEx","SelectReleaseGroupEx"}
--(p,f,ct,exc) (p,f,min,max,exc)
for i,fname in pairs(release_set) do
local temp_f=Duel[fname]
Duel[fname]=function(...)
......@@ -51,6 +66,7 @@ function Auxiliary.PreloadUds()
return temp_f(...)
end
end
--(p,f,ct,r,bool,exc) (p,f,min,max,r,bool,exc)
for i,fname in pairs(release_set2) do
local temp_f=Duel[fname]
Duel[fname]=function(...)
......@@ -71,28 +87,62 @@ function Auxiliary.PreloadUds()
return temp_f(...)
end
end
Auxiliary=Auxiliary or {}
if not Auxiliary.GetMustMaterialGroup then
Auxiliary.GetMustMaterialGroup=Duel.GetMustMaterial
local _CreateEffect=Effect.CreateEffect
function Effect.CreateEffect(c,...)
local e=_CreateEffect(c,...)
effect_handler=effect_handler or {}
if e and c then effect_handler[e]=c end
return e
end
local _SetRange=Effect.SetRange
function Effect.SetRange(e,r,...)
table_range=table_range or {}
table_range[e]=r
if e and r then table_range[e]=r end
return _SetRange(e,r,...)
end
local _Clone=Effect.Clone
function Effect.Clone(e)
function Effect.Clone(e,...)
effect_handler=effect_handler or {}
table_range=table_range or {}
local clone_e=_Clone(e)
table_range[clone_e]=r
local clone_e=_Clone(e,...)
if e and clone_e then
effect_handler[clone_e]=effect_handler[e]
table_range[clone_e]=table_range[e]
end
return clone_e
end
local _CRegisterEffect=Card.RegisterEffect
function Card.RegisterEffect(c,e,...)
local eid=_CRegisterEffect(c,e,...)
effect_registered=effect_registered or {}
if e and eid then effect_registered[e]=true end
return eid
end
local _DRegisterEffect=Duel.RegisterEffect
function Duel.RegisterEffect(e,p,...)
_DRegisterEffect(e,p,...)
effect_registered=effect_registered or {}
if e then effect_registered[e]=true end
end
local _GetHandler=Effect.GetHandler
function Effect.GetHandler(e,...)
--warning!!!
effect_registered=effect_registered or {}
if _Effect.IsHasType(e,EFFECT_TYPE_XMATERIAL) and not effect_registered[e] then return effect_handler[e] end
local c=_GetHandler(e,...)
if not c then return effect_handler[e] end
return c
end
local _IsCanTurnSet=Card.IsCanTurnSet
function Card.IsCanTurnSet(c)
return (c:IsSSetable(true) and c:IsLocation(LOCATION_SZONE)) or ((_IsCanTurnSet(c) and not c:IsLocation(LOCATION_SZONE)))
function Card.IsCanTurnSet(c,...)
return (c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)) or (not c:IsLocation(LOCATION_SZONE) and _IsCanTurnSet(c,...))
end
EFFECT_FLAG_CANNOT_NEGATE=EFFECT_FLAG_CANNOT_NEGATE or 0x200
--From REIKAI
if not Group.ForEach then
function Group.ForEach(group,func,...)
if aux.GetValueType(group)=="Group" and group:GetCount()>0 then
local d_group=group:Clone()
......@@ -101,6 +151,13 @@ function Auxiliary.PreloadUds()
end
end
end
end
Auxiliary=Auxiliary or {}
if not Auxiliary.GetMustMaterialGroup then
Auxiliary.GetMustMaterialGroup=Duel.GetMustMaterial
end
if not Auxiliary.AddPlaceToPZoneIfDestroyEffect then
function Auxiliary.AddPlaceToPZoneIfDestroyEffect(c)
--pendulum
local e1=Effect.CreateEffect(c)
......@@ -123,5 +180,7 @@ function Auxiliary.PreloadUds()
end)
c:RegisterEffect(e1)
end
end
--require("script/procedure.lua")
end
\ No newline at end of file
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