eventSet可以修改所有参数

整理代码
This commit is contained in:
MrZ626
2021-08-31 00:42:52 +08:00
parent 3114d3a27d
commit f252ed63d5
19 changed files with 110 additions and 128 deletions

View File

@@ -222,12 +222,12 @@ local function _loadGameEnv(P)--Load gameEnv
v=GAME.setting[k] --Game setting
-- print("game-"..k..":"..tostring(v))
elseif SETTING[k]~=nil then
v=SETTING[k] --Global setting
v=SETTING[k] --Global setting
-- print("global-"..k..":"..tostring(v))
-- else
-- print("default-"..k..":"..tostring(v))
end
if type(v)~='table'then--Default setting
if type(v)~='table'then --Default setting
ENV[k]=v
else
ENV[k]=TABLE.copy(v)
@@ -278,6 +278,37 @@ end
local function _applyGameEnv(P)--Finish gameEnv processing
local ENV=P.gameEnv
--Apply events
ENV.mesDisp=_mergeFuncTable(ENV.mesDisp,{})
ENV.dropPiece=_mergeFuncTable(ENV.dropPiece,{})
ENV.task=_mergeFuncTable(ENV.task,{})
--Apply eventSet
if ENV.eventSet and ENV.eventSet~="X"then
if type(ENV.eventSet)=='string'then
local eventSet=require('parts.eventsets.'..ENV.eventSet)
if eventSet then
for k,v in next,eventSet do
if
k=='mesDisp'or
k=='dropPiece'or
k=='task'
then
_mergeFuncTable(v,ENV[k])
elseif type(v)=='table'then
ENV[k]=TABLE.copy(v)
else
ENV[k]=v
end
end
else
MES.new('warn',"No event set called: "..ENV.eventSet)
end
else
MES.new('warn',"Wrong event set type: "..type(ENV.eventSet))
end
end
P._20G=ENV.drop==0
P.dropDelay=ENV.drop
P.lockDelay=ENV.lock
@@ -285,7 +316,7 @@ local function _applyGameEnv(P)--Finish gameEnv processing
P.life=ENV.life
P.keyAvailable={true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true}
P.keyAvailable=TABLE.new(true,20)
if ENV.noTele then
for i=11,20 do
if i~=14 then
@@ -361,28 +392,6 @@ local function _applyGameEnv(P)--Finish gameEnv processing
if ENV.center==0 then ENV.center=false end
if ENV.lineNum==0 then ENV.lineNum=false end
--Apply events
ENV.mesDisp=_mergeFuncTable(ENV.mesDisp,{})
ENV.dropPiece=_mergeFuncTable(ENV.dropPiece,{})
ENV.task=_mergeFuncTable(ENV.task,{})
--Apply eventSet
if ENV.eventSet and ENV.eventSet~="X"then
if type(ENV.eventSet)=='string'then
local eventSet=require('parts.eventsets.'..ENV.eventSet)
if eventSet then
for k,v in next,eventSet do
assert(type(ENV[k])=='table',"No eventSet method: "..k)
_mergeFuncTable(v,ENV[k])
end
else
MES.new('warn',"No event set called: "..ENV.eventSet)
end
else
MES.new('warn',"Wrong event set type: "..type(ENV.eventSet))
end
end
--Load tasks
for i=1,#ENV.task do P:newTask(ENV.task[i])end
end
@@ -443,9 +452,8 @@ function PLY.newAIPlayer(id,AIdata,mini)
P.type='computer'
_loadGameEnv(P)
local ENV=P.gameEnv
ENV.face={0,0,0,0,0,0,0}
ENV.skin={1,7,11,3,14,4,9}
P.gameEnv.face={0,0,0,0,0,0,0}
P.gameEnv.skin={1,7,11,3,14,4,9}
_applyGameEnv(P)
P:loadAI(AIdata)
end