Files
Techmino/parts/globalTables.lua
2020-12-14 23:26:33 +08:00

348 lines
8.5 KiB
Lua

--Complex tables
local function disableKey(P,key)
table.insert(P.gameEnv.keyCancel,key)
end
MODOPT={--Mod options
{no=0,id="NX",name="next",
key="q",x=80,y=230,color="orange",
list={0,1,2,3,4,5,6},
func=function(P,M)P.gameEnv.nextCount=M.list[M.sel]end,
},
{no=1,id="HL",name="hold",
key="w",x=200,y=230,color="orange",
list={0,1,2,3,4,5,6},
func=function(P,M)P.gameEnv.holdCount=M.list[M.sel]end,
unranked=true,
},
{no=2,id="FL",name="hideNext",
key="e",x=320,y=230,color="water",
list={1,2,3,4,5},
func=function(P,M)P.gameEnv.nextStartPos=M.list[M.sel]+1 end,
},
{no=3,id="IH",name="infHold",
key="r",x=440,y=230,color="water",
func=function(P)P.gameEnv.infHold=true end,
unranked=true,
},
{no=4,id="HB",name="hideBlock",
key="y",x=680,y=230,color="purple",
func=function(P)P.gameEnv.block=false end,
},
{no=5,id="HG",name="hideGhost",
key="u",x=800,y=230,color="purple",
func=function(P)P.gameEnv.ghost=false end,
},
{no=6,id="HD",name="hidden",
key="i",x=920,y=230,color="grape",
list={"time","fast","none"},
func=function(P,M)P.gameEnv.visible=M.list[M.sel]end,
unranked=true,
},
{no=7,id="HB",name="hideBoard",
key="o",x=1040,y=230,color="grape",
list={"down","up","all"},
func=function(P)LOG.print("该mod还没有做好!")end,
},
{no=8,id="FB",name="flipBoard",
key="p",x=1160,y=230,color="grass",
list={"UD","LR","180"},
func=function(P)LOG.print("该mod还没有做好!")end,
},
{no=9,id="DT",name="dropDelay",
key="a",x=140,y=350,color="red",
list={0,.125,.25,.5,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
func=function(P,M)P.gameEnv.drop=M.list[M.sel]end,
unranked=true,
},
{no=10,id="LT",name="lockDelay",
key="s",x=260,y=350,color="red",
list={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
func=function(P,M)P.gameEnv.lock=M.list[M.sel]end,
unranked=true,
},
{no=11,id="ST",name="waitDelay",
key="d",x=380,y=350,color="red",
list={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
func=function(P,M)P.gameEnv.wait=M.list[M.sel]end,
unranked=true,
},
{no=12,id="CT",name="fallDelay",
key="f",x=500,y=350,color="red",
list={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
func=function(P,M)P.gameEnv.fall=M.list[M.sel]end,
unranked=true,
},
{no=13,id="LF",name="life",
key="j",x=860,y=350,color="yellow",
list={0,1,2,3,5,10,15,26,42,87,500},
func=function(P,M)P.gameEnv.life=M.list[M.sel]end,
unranked=true,
},
{no=14,id="FB",name="forceB2B",
key="k",x=980,y=350,color="yellow",
func=function(P)P.gameEnv.b2bKill=true end,
},
{no=15,id="PF",name="forceFinesse",
key="l",x=1100,y=350,color="yellow",
func=function(P)P.gameEnv.fineKill=true end,
},
{no=16,id="TL",name="tele",
key="z",x=200,y=470,color="lGrey",
func=function(P)
P.gameEnv.das,P.gameEnv.arr=0,0
P.gameEnv.sddas,P.gameEnv.sdarr=0,0
end,
unranked=true,
},
{no=17,id="FX",name="noRotation",
key="x",x=320,y=470,color="lGrey",
func=function(P)
disableKey(P,3)
disableKey(P,4)
disableKey(P,5)
end,
},
{no=18,id="GL",name="noMove",
key="c",x=440,y=470,color="lGrey",
func=function(P)
disableKey(P,1)disableKey(P,2)
disableKey(P,11)disableKey(P,12)
disableKey(P,17)disableKey(P,18)
disableKey(P,19)disableKey(P,20)
end,
},
{no=19,id="CS",name="customSeq",
key="b",x=680,y=470,color="blue",
list={"bag","his4","rnd","reverb"},
func=function(P,M)P.gameEnv.sequence=M.list[M.sel]end,
unranked=true,
},
{no=20,id="PS",name="pushSpeed",
key="n",x=800,y=470,color="blue",
list={.5,1,2,3,5,15,1e99},
func=function(P,M)P.gameEnv.pushSpeed=M.list[M.sel]end,
unranked=true,
},
{no=21,id="BN",name="boneBlock",
key="m",x=920,y=470,color="blue",
list={"on","off"},
func=function(P,M)P.gameEnv.bone=M.sel==1 end,
},
}
for i=1,#MODOPT do
local M=MODOPT[i]
M.sel,M.time=0,0
M.color=COLOR[M.color]
end
PATH={--Network API paths
api="/tech/api/v1",
socket="/tech/socket/v1",
appInfo="/app/info",
users="/users",
auth="/auth",
access="/auth/access",
versus="/online/versus",
chat="/chat",
}
--Game tables
PLAYERS={alive={}}--Players data
FIELD={}--Field(s) for custom game
BAG={}--Sequence for custom game
MISSION={}--Clearing mission for custom game
CUSTOMENV={--gameEnv for cutsom game
--Basic
drop=60,
lock=60,
wait=0,
fall=0,
nextCount=6,
nextStartPos=1,
holdCount=1,
infHold=false,
--Visual
block=true,
ghost=.3,
center=1,
bagLine=false,
highCam=false,
nextPos=false,
bone=false,
--Rule
mindas=0,
minarr=0,
minsdarr=0,
sequence="bag",
ospin=true,
RS="TRS",
noTele=false,
fineKill=false,
b2bKill=false,
missionKill=false,
easyFresh=true,
visible="show",
target=1e99,
freshLimit=1e99,
opponent=0,
life=0,
pushSpeed=3,
--Else
bg="none",
bgm="race",
}
GAME={--Global game data
init=false, --If need initializing game when enter scene-play
restartCount=0, --Keep +=1 if player hold restart button after game start
frame=0, --Frame count
result=false, --Game result (string)
pauseTime=0, --Time paused
pauseCount=0, --Pausing count
garbageSpeed=1, --Garbage timing speed
warnLVL0=0, --Warning level
warnLVL=0, --Warning level (show)
seed=1046101471, --Game seed
curMode=nil, --Current gamemode object
modeEnv=nil, --Current gamemode environment
setting={}, --Game settings
rec={}, --Recording list, key,time,key,time...
recording=false, --If recording
replaying=false, --If replaying
saved=false, --If recording saved
mod={}, --List of loaded mods
rank=nil, --Rank reached
prevBG=nil, --Previous background, for restore BG when quit setting page
--Data for royale mode
stage=nil, --Game stage
mostBadge=nil, --Most badge owner
secBadge=nil, --Second badge owner
mostDangerous=nil, --Most dangerous player
secDangerous=nil, --Second dangerous player
}
--Userdata tables
RANKS={sprint_10=0}--Ranks of modes
USER={--User infomation
email=nil,
auth_token=nil,
access_token=nil,
username=nil,
motto=nil,
avatar=nil,
}
SETTING={--Settings
--Tuning
das=10,arr=2,dascut=0,
sddas=0,sdarr=2,
ihs=true,irs=true,ims=true,
RS="TRS",
swap=true,
--System
reTime=4,
autoPause=true,
fine=false,
appLock=false,
lang=1,
skinSet=1,
skin={1,7,11,3,14,4,9,1,7,1,7,11,3,14,4,9,14,9,11,3,11,3,1,7,4},
face={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
--Graphic
block=true,ghost=.3,center=1,
smooth=true,grid=.16,
bagLine=false,
lockFX=2,
dropFX=2,
moveFX=2,
clearFX=2,
splashFX=2,
shakeFX=2,
atkFX=2,
frameMul=100,
text=true,
score=true,
warn=true,
highCam=false,
nextPos=false,
fullscreen=true,
bg=true,
powerInfo=false,
--Sound
sfx=1,
spawn=.3,
bgm=.7,
stereo=.7,
vib=0,
voc=0,
cv="miya",
--Virtualkey
VKSFX=.2,--SFX volume
VKVIB=0,--VIB
VKSwitch=false,--If disp
VKTrack=false,--If tracked
VKDodge=false,--If dodge
VKTchW=.3,--Touch-Pos Weight
VKCurW=.4,--Cur-Pos Weight
VKIcon=true,--If disp icon
VKAlpha=.3,
}
STAT={--Statistics
version=VERSION_CODE,
run=0,game=0,time=0,frame=0,
key=0,rotate=0,hold=0,
extraPiece=0,finesseRate=0,
piece=0,row=0,dig=0,
atk=0,digatk=0,
send=0,recv=0,pend=0,off=0,
clear={},spin={},
pc=0,hpc=0,b2b=0,b3b=0,score=0,
lastPlay="sprint_10",--Last played mode ID
date=nil,
todayTime=0,
}for i=1,25 do STAT.clear[i]={0,0,0,0,0,0}STAT.spin[i]={0,0,0,0,0,0,0}end
keyMap={--Key setting
{"left","right","x","z","c","up","down","space","tab","r"},{},
--Keyboard
{"dpleft","dpright","a","b","y","dpup","dpdown","rightshoulder","x","leftshoulder"},{},
--Joystick
}for i=1,#keyMap do for j=1,20 do if not keyMap[i][j]then keyMap[i][j]=""end end end
VK_org={--Virtualkey layout, refresh all VKs' position with this before each game
{ava=true, x=80, y=720-200, r=80},--moveLeft
{ava=true, x=320, y=720-200, r=80},--moveRight
{ava=true, x=1280-80, y=720-200, r=80},--rotRight
{ava=true, x=1280-200, y=720-80, r=80},--rotLeft
{ava=true, x=1280-200, y=720-320, r=80},--rot180
{ava=true, x=200, y=720-320, r=80},--hardDrop
{ava=true, x=200, y=720-80, r=80},--softDrop
{ava=true, x=1280-320, y=720-200, r=80},--hold
{ava=true, x=1280-80, y=280, r=80},--func
{ava=true, x=80, y=280, r=80},--restart
{ava=false, x=100, y=50, r=80},--insLeft
{ava=false, x=200, y=50, r=80},--insRight
{ava=false, x=300, y=50, r=80},--insDown
{ava=false, x=400, y=50, r=80},--down1
{ava=false, x=500, y=50, r=80},--down4
{ava=false, x=600, y=50, r=80},--down10
{ava=false, x=700, y=50, r=80},--dropLeft
{ava=false, x=800, y=50, r=80},--dropRight
{ava=false, x=900, y=50, r=80},--addToLeft
{ava=false, x=1000, y=50, r=80},--addToRight
}
virtualkey={}for i=1,#VK_org do virtualkey[i]={}end--In-game virtualkey layout