Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5eea97dd8b | ||
|
|
f0a118e714 | ||
|
|
3019f83999 | ||
|
|
438046f77f | ||
|
|
830f0ffbed | ||
|
|
849e5b586e | ||
|
|
f82e979f9c | ||
|
|
c9a3e3ce1b | ||
|
|
72dcb84662 | ||
|
|
4af2126254 | ||
|
|
42d7b1be94 | ||
|
|
a31474c43a | ||
|
|
75c7955bb5 |
BIN
BGM/8-bit happiness.ogg
Normal file
BIN
BGM/blank.ogg
BIN
BGM/cruelty.ogg
BIN
BGM/end.ogg
Normal file
BIN
BGM/final.ogg
BIN
BGM/infinite.ogg
BIN
BGM/newera.ogg
Normal file
BIN
BGM/push.ogg
BIN
BGM/race.ogg
BIN
BGM/reason.ogg
BIN
BGM/rockblock.ogg
Normal file
BIN
BGM/secret7th.ogg
Normal file
BIN
BGM/secret8th.ogg
Normal file
BIN
BGM/way.ogg
BIN
SFX/button.ogg
BIN
SFX/collect.ogg
Normal file
BIN
SFX/drop.ogg
BIN
SFX/lock.ogg
Normal file
BIN
SFX/ren_mega.ogg
Normal file
BIN
SFX/spin.ogg
BIN
SFX/swipe.ogg
Normal file
BIN
VOICE/I_1.ogg
Normal file
BIN
VOICE/I_2.ogg
Normal file
BIN
VOICE/J_1.ogg
Normal file
BIN
VOICE/J_2.ogg
Normal file
BIN
VOICE/L_1.ogg
Normal file
BIN
VOICE/L_2.ogg
Normal file
BIN
VOICE/O_1.ogg
Normal file
BIN
VOICE/O_2.ogg
Normal file
BIN
VOICE/PC_1.ogg
Normal file
BIN
VOICE/S_1.ogg
Normal file
BIN
VOICE/S_2.ogg
Normal file
BIN
VOICE/T_1.ogg
Normal file
BIN
VOICE/T_2.ogg
Normal file
BIN
VOICE/Z_1.ogg
Normal file
BIN
VOICE/Z_2.ogg
Normal file
BIN
VOICE/b2b_1.ogg
Normal file
BIN
VOICE/b2b_2.ogg
Normal file
BIN
VOICE/b2b_3.ogg
Normal file
BIN
VOICE/b3b_1.ogg
Normal file
BIN
VOICE/double_1.ogg
Normal file
BIN
VOICE/double_2.ogg
Normal file
BIN
VOICE/double_3.ogg
Normal file
BIN
VOICE/lose_1.ogg
Normal file
BIN
VOICE/lose_2.ogg
Normal file
BIN
VOICE/lose_3.ogg
Normal file
BIN
VOICE/mini_1.ogg
Normal file
BIN
VOICE/nya_1.ogg
Normal file
BIN
VOICE/nya_11.ogg
Normal file
BIN
VOICE/nya_12.ogg
Normal file
BIN
VOICE/nya_13.ogg
Normal file
BIN
VOICE/nya_2.ogg
Normal file
BIN
VOICE/nya_21.ogg
Normal file
BIN
VOICE/nya_22.ogg
Normal file
BIN
VOICE/nya_3.ogg
Normal file
BIN
VOICE/nya_31.ogg
Normal file
BIN
VOICE/nya_4.ogg
Normal file
BIN
VOICE/nya_o0.ogg
Normal file
BIN
VOICE/nya_o1.ogg
Normal file
BIN
VOICE/nya_o2.ogg
Normal file
BIN
VOICE/nya_o3.ogg
Normal file
BIN
VOICE/nya_o4.ogg
Normal file
BIN
VOICE/nya_o5.ogg
Normal file
BIN
VOICE/single_1.ogg
Normal file
BIN
VOICE/single_2.ogg
Normal file
BIN
VOICE/single_3.ogg
Normal file
BIN
VOICE/spin-_1.ogg
Normal file
BIN
VOICE/spin-_2.ogg
Normal file
BIN
VOICE/spin_1.ogg
Normal file
BIN
VOICE/spin_2.ogg
Normal file
BIN
VOICE/spin_3.ogg
Normal file
BIN
VOICE/spin_4.ogg
Normal file
BIN
VOICE/spin_5.ogg
Normal file
BIN
VOICE/triple_1.ogg
Normal file
BIN
VOICE/triple_2.ogg
Normal file
BIN
VOICE/tts_1.ogg
Normal file
BIN
VOICE/win_1.ogg
Normal file
BIN
VOICE/win_2.ogg
Normal file
BIN
VOICE/这游戏有问题.ogg
Normal file
51
ai.lua
@@ -49,17 +49,18 @@ FCL[5]=FCL[3]
|
|||||||
clearScore={[0]=0,0,2,4,12}
|
clearScore={[0]=0,0,2,4,12}
|
||||||
function ifoverlapAI(f,bk,x,y)
|
function ifoverlapAI(f,bk,x,y)
|
||||||
if y<1 then return true end
|
if y<1 then return true end
|
||||||
if y>#f then return nil end
|
if y>#f then return end
|
||||||
for i=1,#bk do for j=1,#bk[1]do
|
for i=1,#bk do for j=1,#bk[1]do
|
||||||
if f[y+i-1]and bk[i][j]>0 and f[y+i-1][x+j-1]>0 then return true end
|
if f[y+i-1]and bk[i][j]and f[y+i-1][x+j-1]>0 then return true end
|
||||||
end end
|
end end
|
||||||
end
|
end
|
||||||
function resetField(f0,f,start)
|
function resetField(f0,f,start)
|
||||||
while f[start]do
|
::L::if f[start]then
|
||||||
removeRow(f,start)
|
removeRow(f,start)
|
||||||
|
goto L
|
||||||
end
|
end
|
||||||
for i=start,#f0 do
|
for i=start,#f0 do
|
||||||
f[i]=getNewRow()
|
f[i]=getNewRow(0)
|
||||||
for j=1,10 do
|
for j=1,10 do
|
||||||
f[i][j]=f0[i][j]
|
f[i][j]=f0[i][j]
|
||||||
end
|
end
|
||||||
@@ -68,25 +69,24 @@ end
|
|||||||
function getScore(field,bn,cb,cx,cy)
|
function getScore(field,bn,cb,cx,cy)
|
||||||
local score=0
|
local score=0
|
||||||
local highest=0
|
local highest=0
|
||||||
local height=getNewRow()
|
local height=getNewRow(0)
|
||||||
local clear=0
|
local clear=0
|
||||||
local hole=0
|
local hole=0
|
||||||
|
|
||||||
for i=cy+#cb-1,cy,-1 do
|
for i=cy+#cb-1,cy,-1 do
|
||||||
local f=true
|
|
||||||
for j=1,10 do
|
for j=1,10 do
|
||||||
if field[i][j]==0 then f=false;break end
|
if field[i][j]==0 then goto L end
|
||||||
end
|
|
||||||
if f then
|
|
||||||
removeRow(field,i)
|
|
||||||
clear=clear+1
|
|
||||||
end
|
end
|
||||||
|
removeRow(field,i)
|
||||||
|
clear=clear+1
|
||||||
|
::L::
|
||||||
end
|
end
|
||||||
if #field==0 then return 9e99 end--PC best
|
if #field==0 then return 9e99 end--PC best
|
||||||
for x=1,10 do
|
for x=1,10 do
|
||||||
local h=#field
|
local h=#field
|
||||||
while field[h][x]==0 and h>1 do
|
::L::if field[h][x]==0 and h>1 then
|
||||||
h=h-1
|
h=h-1
|
||||||
|
goto L
|
||||||
end
|
end
|
||||||
height[x]=h
|
height[x]=h
|
||||||
if x>3 and x<8 and h>highest then highest=h end
|
if x>3 and x<8 and h>highest then highest=h end
|
||||||
@@ -117,33 +117,34 @@ function getScore(field,bn,cb,cx,cy)
|
|||||||
+clearScore[clear]*(8+#field)
|
+clearScore[clear]*(8+#field)
|
||||||
-hole*50
|
-hole*50
|
||||||
if #field>6 then score=score-highest*5 end
|
if #field>6 then score=score-highest*5 end
|
||||||
if mh1>3 then score=score-50-mh1*40 end
|
if mh1>3 then score=score-40-mh1*30 end
|
||||||
return score
|
return score
|
||||||
end
|
end
|
||||||
function AI_getControls(ctrl)
|
function AI_getControls(ctrl)
|
||||||
local Tfield={}--test field
|
local Tfield={}--test field
|
||||||
local field_org=P.field
|
local field_org=P.field
|
||||||
for i=1,#field_org do
|
for i=1,#field_org do
|
||||||
Tfield[i]=getNewRow()
|
Tfield[i]=getNewRow(0)
|
||||||
for j=1,10 do
|
for j=1,10 do
|
||||||
Tfield[i][j]=field_org[i][j]
|
Tfield[i][j]=field_org[i][j]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local best={x=1,dir=0,hold=false,score=-9e99}
|
local best={x=1,dir=0,hold=false,score=-9e99}
|
||||||
for ifhold=0,P.gameEnv.hold and 1 or 0 do
|
for ifhold=0,P.gameEnv.hold and 1 or 0 do
|
||||||
local bn=ifhold==0 and P.bn or P.hn>0 and P.hn or P.nxt[1]
|
local bn=ifhold==0 and P.cur.id or P.hold.id>0 and P.hold.id or P.next[1].id
|
||||||
for dir=0,dirCount[bn] do--each dir
|
for dir=0,dirCount[bn] do--each dir
|
||||||
local cb=blocks[bn][dir]
|
local cb=blocks[bn][dir]
|
||||||
for cx=1,11-#cb[1]do--each pos
|
for cx=1,11-#cb[1]do--each pos
|
||||||
local cy=#Tfield+1
|
local cy=#Tfield+1
|
||||||
while not ifoverlapAI(Tfield,cb,cx,cy-1)do
|
::L::if not ifoverlapAI(Tfield,cb,cx,cy-1)then
|
||||||
cy=cy-1
|
cy=cy-1
|
||||||
|
goto L
|
||||||
end--move to bottom
|
end--move to bottom
|
||||||
for i=1,#cb do
|
for i=1,#cb do
|
||||||
local y=cy+i-1
|
local y=cy+i-1
|
||||||
if not Tfield[y]then Tfield[y]=getNewRow()end
|
if not Tfield[y]then Tfield[y]=getNewRow(0)end
|
||||||
for j=1,#cb[1]do
|
for j=1,#cb[1]do
|
||||||
if cb[i][j]~=0 then
|
if cb[i][j]then
|
||||||
Tfield[y][cx+j-1]=1
|
Tfield[y][cx+j-1]=1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -156,8 +157,11 @@ function AI_getControls(ctrl)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
while #Tfield>0 do
|
|
||||||
|
::L::
|
||||||
|
if #Tfield>0 then
|
||||||
removeRow(Tfield,1)
|
removeRow(Tfield,1)
|
||||||
|
goto L
|
||||||
end--Release cache
|
end--Release cache
|
||||||
if best.hold then
|
if best.hold then
|
||||||
ins(ctrl,8)
|
ins(ctrl,8)
|
||||||
@@ -167,11 +171,4 @@ function AI_getControls(ctrl)
|
|||||||
ins(ctrl,l[i])
|
ins(ctrl,l[i])
|
||||||
end
|
end
|
||||||
ins(ctrl,6)
|
ins(ctrl,6)
|
||||||
|
|
||||||
if rnd()<.1 then
|
|
||||||
if P.atkMode~=4 and P==mostDangerous then
|
|
||||||
ins(P.ai.controls,9)
|
|
||||||
--Smarter AI???
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
BIN
albbph.ttf
907
call&sys.lua
37
class.lua
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
Task={}
|
||||||
|
metatable_task={__index=Task}
|
||||||
|
function newTask(code,P,data)
|
||||||
|
local obj={
|
||||||
|
code=code,
|
||||||
|
P=P,
|
||||||
|
data=data,
|
||||||
|
}
|
||||||
|
setmetatable(obj,metatable_task)
|
||||||
|
ins(Task,obj)
|
||||||
|
end
|
||||||
|
function clearTask(opt)
|
||||||
|
if opt=="all"then
|
||||||
|
while Task[1]do
|
||||||
|
rem(Task,i)
|
||||||
|
end
|
||||||
|
elseif opt=="play"then
|
||||||
|
for i=#Task,1,-1 do
|
||||||
|
if Task[i].P then
|
||||||
|
rem(Task,i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else--Player table
|
||||||
|
for i=#Task,1,-1 do
|
||||||
|
if Task[i].P==P then
|
||||||
|
rem(Task,i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function Task:update()
|
||||||
|
if(not self.P or self.P and scene=="play")and self:code(self.P,self.data)then
|
||||||
|
for i=#Task,1,-1 do
|
||||||
|
if Task[i]==self then rem(Task,i)return end
|
||||||
|
end--Destroy
|
||||||
|
end
|
||||||
|
end
|
||||||
6
conf.lua
@@ -9,15 +9,15 @@ function love.conf(t)
|
|||||||
t.audio.mixwithsystem=true--Switch on to keep sysBGM
|
t.audio.mixwithsystem=true--Switch on to keep sysBGM
|
||||||
|
|
||||||
local W=t.window
|
local W=t.window
|
||||||
W.title="Techmino V0.7.7"
|
W.title="Techmino V0.7.20"
|
||||||
W.icon="/image/icon.png"
|
W.icon="/image/icon.png"
|
||||||
W.width,W.height=1280,720
|
W.width,W.height=1280,720
|
||||||
|
W.minwidth,W.minheight=640,360
|
||||||
W.borderless=X
|
W.borderless=X
|
||||||
W.resizable=true
|
W.resizable=true
|
||||||
W.minwidth,W.minheight=640,360
|
|
||||||
W.fullscreentype="desktop"--Choose between "desktop" fullscreen or "exclusive" fullscreen mode (string)
|
W.fullscreentype="desktop"--Choose between "desktop" fullscreen or "exclusive" fullscreen mode (string)
|
||||||
W.fullscreen=X
|
W.fullscreen=X
|
||||||
W.vsync=X--0 to set ∞fps
|
W.vsync=0--0→∞fps
|
||||||
W.msaa=X--The number of samples to use with multi-sampled antialiasing (number)
|
W.msaa=X--The number of samples to use with multi-sampled antialiasing (number)
|
||||||
W.depth=X--Bits per sample in the depth buffer
|
W.depth=X--Bits per sample in the depth buffer
|
||||||
W.stencil=1--The number of bits per sample in the stencil buffer
|
W.stencil=1--The number of bits per sample in the stencil buffer
|
||||||
|
|||||||
1166
dataList.lua
Normal file
1336
gamefunc.lua
BIN
image/block.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 6.2 KiB |
BIN
image/mess/groupcode.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
image/mess/light.png
Normal file
|
After Width: | Height: | Size: 423 B |
BIN
image/mess/lightBulb.png
Normal file
|
After Width: | Height: | Size: 421 B |
|
Before Width: | Height: | Size: 638 B |
BIN
image/mess/paycode.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
image/virtualkey/func.png
Normal file
|
After Width: | Height: | Size: 370 B |
|
Before Width: | Height: | Size: 300 B |
260
language/chi.lua
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
return{
|
||||||
|
atkModeName={"随机","徽章","击杀","反击"},
|
||||||
|
royale_remain=function(n)return"剩余 "..n.." 名玩家"end,
|
||||||
|
cmb={nil,nil,"3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!","15 Combo!","16 Combo!","17 Combo!","18 Combo!","19 Combo!","MEGACMB"},
|
||||||
|
techrash="Techrash",
|
||||||
|
techrashB2B="B2B Techrash",
|
||||||
|
techrashB3B="B2B2B Techrash",
|
||||||
|
block={"Z","S","L","J","T","O","I"},
|
||||||
|
clear={" single"," double"," triple"},
|
||||||
|
spin={"Z-spin","S-spin","L-spin","J-spin","T-spin","O-spin","I-spin"},
|
||||||
|
b2b="B2B ",b3b="B2B2B ",
|
||||||
|
mini="Mini",
|
||||||
|
PC="Perfect Clear",
|
||||||
|
hold="暂存",next="下一个",
|
||||||
|
|
||||||
|
stage={"关卡 1","关卡 2","关卡 3","关卡 4","关卡 5",},
|
||||||
|
maxspeed="最高速度",
|
||||||
|
speedup="速度加快",
|
||||||
|
|
||||||
|
win="胜利",
|
||||||
|
lose="失败",
|
||||||
|
pause="暂停",
|
||||||
|
finish="结束",
|
||||||
|
pauseTime="暂停时间",
|
||||||
|
|
||||||
|
custom="自定义游戏",
|
||||||
|
customOption={
|
||||||
|
drop="下落延迟:",
|
||||||
|
lock="锁定延迟:",
|
||||||
|
wait="放块延迟:",
|
||||||
|
fall="消行延迟:",
|
||||||
|
next="序列数量:",
|
||||||
|
hold="暂存:",
|
||||||
|
sequence="序列:",
|
||||||
|
visible="可见性:",
|
||||||
|
target="目标行数:",
|
||||||
|
freshLimit="锁延刷新次数:",
|
||||||
|
opponent="对手速度等级:",
|
||||||
|
bg="背景:",
|
||||||
|
bgm="背景音乐:",
|
||||||
|
},
|
||||||
|
customVal={
|
||||||
|
drop={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞","[20G]"},
|
||||||
|
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞"},
|
||||||
|
wait=nil,
|
||||||
|
fall=nil,
|
||||||
|
next=nil,
|
||||||
|
hold={"开","关","无限"},
|
||||||
|
sequence={"bag7","his4","随机"},
|
||||||
|
visible={"可见","半隐","全隐","瞬隐"},
|
||||||
|
target={10,20,40,100,200,500,1000,"∞"},
|
||||||
|
freshLimit={0,8,15,"∞"},
|
||||||
|
opponent={"无电脑",1,2,3,4,5,6,7,8,9,10,11},
|
||||||
|
},
|
||||||
|
softdropdas="软降DAS:",
|
||||||
|
softdroparr="软降ARR:",
|
||||||
|
snapLevelName={"任意摆放","10px吸附","20px吸附","40px吸附","60px吸附","80px吸附"},
|
||||||
|
keyboard="键盘",joystick="手柄",
|
||||||
|
space="空格",enter="回车",
|
||||||
|
setting2Help="方向键选择/翻页,回车修改,esc返回",
|
||||||
|
musicRoom="音乐室",
|
||||||
|
nowPlaying="正在播放:",
|
||||||
|
|
||||||
|
actName={"左移:","右移:","顺时针旋转:","逆时针旋转:","180°旋转","硬降:","软降:","暂存:","功能键:","重新开始:","左瞬移:","右瞬移:","软降到底:"},
|
||||||
|
modeName={
|
||||||
|
[0]="自定义",
|
||||||
|
"竞速","马拉松","大师","经典","禅","无尽","单挑","仅TSD","隐形","挖掘","生存","科研",
|
||||||
|
"C4W练习","全清训练","全清挑战","49人混战","99人混战","干旱","多人",
|
||||||
|
},
|
||||||
|
modeInfo={
|
||||||
|
sprint="挑战世界纪录",
|
||||||
|
marathon="尝试坚持到最后",
|
||||||
|
master="成为方块大师",
|
||||||
|
classic="高速经典",
|
||||||
|
zen="无重力消除200行",
|
||||||
|
infinite="科研沙盒",
|
||||||
|
solo="打败AI",
|
||||||
|
tsd="尽可能做TSD",
|
||||||
|
blind="最强大脑",
|
||||||
|
dig="核能挖掘机",
|
||||||
|
survivor="防守练习",
|
||||||
|
tech="尽可能不要普通消除",
|
||||||
|
c4wtrain="无 限 连 击",
|
||||||
|
pctrain="熟悉全清定式的组合",
|
||||||
|
pcchallenge="100行内尽可能多PC",
|
||||||
|
techmino49="49人混战",
|
||||||
|
techmino99="99人混战",
|
||||||
|
drought="异常序列",
|
||||||
|
hotseat="友尽模式",
|
||||||
|
},
|
||||||
|
|
||||||
|
load={"加载语音ing","加载音乐ing","加载音效ing","加载完成",},
|
||||||
|
tips={
|
||||||
|
"不是动画,真的在加载!",
|
||||||
|
"整个游戏都是MrZ完成的!",
|
||||||
|
"大满贯10连击消四全清!",
|
||||||
|
"<方块研究所>有一个Nspire-CX版本!",
|
||||||
|
"B2B2B2B存在吗?",
|
||||||
|
"MEGACMB!",
|
||||||
|
"ALLSPIN!",
|
||||||
|
"O型回旋三清?",
|
||||||
|
"只用一个输入设备就可以游玩了",
|
||||||
|
"Miya:喵!",
|
||||||
|
"225238922,哔哩哔哩 干杯~",
|
||||||
|
"适度游戏益脑,沉迷游戏伤身,合理安排时间,享受健康生活",
|
||||||
|
"合群了就会消失,但是消失不代表没有意义",
|
||||||
|
"学会使用两个旋转键,三个更好",
|
||||||
|
"更小的DAS和ARR拥有更高的操作上限",
|
||||||
|
"注意到\"旋转\"到底对方块做了些什么吗?",
|
||||||
|
"20G是一套全新的游戏规则",
|
||||||
|
"不要在上课时玩游戏!",
|
||||||
|
"本游戏难度上限很高,做好心理准备",
|
||||||
|
"方块可以不是个休闲游戏",
|
||||||
|
"调到特殊的日期也不会发生什么的",
|
||||||
|
"[随机文本]",
|
||||||
|
},
|
||||||
|
stat={
|
||||||
|
"游戏运行次数:",
|
||||||
|
"游戏局数:",
|
||||||
|
"游戏时间:",
|
||||||
|
"按键数:",
|
||||||
|
"旋转数:",
|
||||||
|
"Hold次数:",
|
||||||
|
"方块使用数:",
|
||||||
|
"消行数:",
|
||||||
|
"攻击数:",
|
||||||
|
"发送数:",
|
||||||
|
"接收数:",
|
||||||
|
"上涨数:",
|
||||||
|
"消除数:",
|
||||||
|
"Spin数:",
|
||||||
|
"B2B数:",
|
||||||
|
"PC数:",
|
||||||
|
"效率:",
|
||||||
|
},
|
||||||
|
help={
|
||||||
|
"好像也没啥好帮助的吧?就当是关于了",
|
||||||
|
"这只是一个方块游戏,请勿过度解读和随意联想",
|
||||||
|
"不过就当成TOP/C2/KOS/TGM3/JS玩好了",
|
||||||
|
"游戏还在测试阶段,请 勿 外 传",
|
||||||
|
"",
|
||||||
|
"使用LOVE2D引擎",
|
||||||
|
"作者:MrZ 邮箱:1046101471@qq.com",
|
||||||
|
"程序:MrZ 美术:MrZ 音乐:MrZ 音效:MrZ 语音:Miya",
|
||||||
|
"使用工具:VScode,GFIE,Beepbox,Goldwave",
|
||||||
|
"特别感谢:Farter,196,Teatube,Flyz,T830,[所有测试人员]和 你!",
|
||||||
|
"错误或者建议请附带相关信息发送到作者邮箱~",
|
||||||
|
},
|
||||||
|
support="支持作者",
|
||||||
|
group="官方QQ群",
|
||||||
|
ButtonText={
|
||||||
|
main={
|
||||||
|
play="开始",
|
||||||
|
setting="设置",
|
||||||
|
music="音乐室",
|
||||||
|
stat="统计信息",
|
||||||
|
help="帮助",
|
||||||
|
quit="退出",
|
||||||
|
},
|
||||||
|
mode={
|
||||||
|
up="Λ",
|
||||||
|
down="v",
|
||||||
|
left="<",
|
||||||
|
right=">",
|
||||||
|
start="开始",
|
||||||
|
custom="自定义(C)",
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
music={
|
||||||
|
up="↑",
|
||||||
|
play="播放",
|
||||||
|
down="↓",
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
custom={
|
||||||
|
up="↑",
|
||||||
|
down="↓",
|
||||||
|
left="<",
|
||||||
|
right=">",
|
||||||
|
start1="消除开始",
|
||||||
|
start2="拼图开始",
|
||||||
|
draw="画图(D)",
|
||||||
|
set1="40行",
|
||||||
|
set2="1v1",
|
||||||
|
set3="无尽",
|
||||||
|
set4="隐形",
|
||||||
|
set5="极限",
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
draw={
|
||||||
|
any="不定",
|
||||||
|
block1="■",
|
||||||
|
block2="■",
|
||||||
|
block3="■",
|
||||||
|
block4="■",
|
||||||
|
block5="■",
|
||||||
|
block6="■",
|
||||||
|
block7="■",
|
||||||
|
gb1="■",
|
||||||
|
gb2="■",
|
||||||
|
gb3="■",
|
||||||
|
gb4="■",
|
||||||
|
gb5="■",
|
||||||
|
space="×",
|
||||||
|
clear="清空",
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
play={
|
||||||
|
pause="暂停",
|
||||||
|
},
|
||||||
|
pause={
|
||||||
|
resume="继续",
|
||||||
|
quit="退出",
|
||||||
|
},
|
||||||
|
setting={
|
||||||
|
ghost=function()return setting.ghost and"阴影:开"or"阴影:关"end,
|
||||||
|
center=function()return setting.center and"旋转中心:开"or"旋转中心:关"end,
|
||||||
|
grid=function()return setting.grid and"网格:开"or"网格:关"end,
|
||||||
|
swap=function()return setting.swap and"目标选择:组合键"or"目标选择:循环"end,
|
||||||
|
fxs=function()return setting.fxs and"特效:开"or"特效:关"end,
|
||||||
|
bg=function()return setting.bg and"背景:开"or"背景:关"end,
|
||||||
|
dasD="-",dasU="+",
|
||||||
|
arrD="-",arrU="+",
|
||||||
|
sddasD="-",sddasU="+",
|
||||||
|
sdarrD="-",sdarrU="+",
|
||||||
|
ctrl="控制设置",
|
||||||
|
touch="触摸设置",
|
||||||
|
lang=function()return langName[setting.lang]end,
|
||||||
|
sfx=function()return setting.sfx and"音效:开"or"音效:关"end,
|
||||||
|
bgm=function()return setting.bgm and"音乐:开"or"音乐:关"end,
|
||||||
|
vib=function()return "震动:"..setting.vib end,
|
||||||
|
voc=function()return setting.voc and"语音:开"or"语音:关"end,
|
||||||
|
fullscreen=function()return setting.fullscreen and"全屏:开"or"全屏:关"end,
|
||||||
|
bgblock=function()return setting.bgblock and"背景动画:开"or"背景动画:关"end,
|
||||||
|
frame=function()return"绘制帧:"..setting.frameMul.."%"end,
|
||||||
|
skin="切换方块皮肤",
|
||||||
|
back="保存&返回",
|
||||||
|
},
|
||||||
|
setting2={
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
setting3={
|
||||||
|
back="返回",
|
||||||
|
hide=function()return setting.virtualkeySwitch and"隐藏虚拟按键"or"显示虚拟按键"end,
|
||||||
|
default="默认组合",
|
||||||
|
snap=function()return text.snapLevelName[snapLevel]end,
|
||||||
|
alpha=function()return percent0to5[setting.virtualkeyAlpha]end,
|
||||||
|
icon="图标",
|
||||||
|
size="大小",
|
||||||
|
},
|
||||||
|
help={
|
||||||
|
back="返回",
|
||||||
|
qq="作者QQ",
|
||||||
|
},
|
||||||
|
stat={
|
||||||
|
back="返回",
|
||||||
|
path="打开存储目录",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
260
language/chi_full.lua
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
return{
|
||||||
|
atkModeName={"随机","徽章","击杀","反击"},
|
||||||
|
royale_remain=function(n)return"剩余 "..n.." 名玩家"end,
|
||||||
|
cmb={nil,nil,"3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!","15 Combo!","16 Combo!","17 Combo!","18 Combo!","19 Combo!","MEGACMB"},
|
||||||
|
techrash="四清",
|
||||||
|
techrashB2B="满贯 四清",
|
||||||
|
techrashB3B="大满贯 四清",
|
||||||
|
block={"Z","S","L","J","T","O","I"},
|
||||||
|
clear={"单清","双清","三清"},
|
||||||
|
spin={"Z型回旋","S型回旋","L型回旋","J型回旋","T型回旋","O型回旋","I型回旋"},
|
||||||
|
b2b="满贯",b3b="大满贯",
|
||||||
|
mini="迷你",
|
||||||
|
PC="场地全清",
|
||||||
|
hold="暂存",next="下一个",
|
||||||
|
|
||||||
|
stage={"关卡 1","关卡 2","关卡 3","关卡 4","关卡 5",},
|
||||||
|
maxspeed="最高速度",
|
||||||
|
speedup="速度加快",
|
||||||
|
|
||||||
|
win="胜利",
|
||||||
|
lose="失败",
|
||||||
|
pause="暂停",
|
||||||
|
finish="结束",
|
||||||
|
pauseTime="暂停时间",
|
||||||
|
|
||||||
|
custom="自定义游戏",
|
||||||
|
customOption={
|
||||||
|
drop="下落延迟:",
|
||||||
|
lock="锁定延迟:",
|
||||||
|
wait="放块延迟:",
|
||||||
|
fall="消行延迟:",
|
||||||
|
next="序列数量:",
|
||||||
|
hold="暂存:",
|
||||||
|
sequence="序列:",
|
||||||
|
visible="可见性:",
|
||||||
|
target="目标行数:",
|
||||||
|
freshLimit="锁延刷新次数:",
|
||||||
|
opponent="对手速度等级:",
|
||||||
|
bg="背景:",
|
||||||
|
bgm="背景音乐:",
|
||||||
|
},
|
||||||
|
customVal={
|
||||||
|
drop={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞","[20G]"},
|
||||||
|
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞"},
|
||||||
|
wait=nil,
|
||||||
|
fall=nil,
|
||||||
|
next=nil,
|
||||||
|
hold={"开","关","无限"},
|
||||||
|
sequence={"bag7","his4","随机"},
|
||||||
|
visible={"可见","半隐","全隐","瞬隐"},
|
||||||
|
target={10,20,40,100,200,500,1000,"∞"},
|
||||||
|
freshLimit={0,8,15,"∞"},
|
||||||
|
opponent={"无电脑",1,2,3,4,5,6,7,8,9,10,11},
|
||||||
|
},
|
||||||
|
softdropdas="软降DAS:",
|
||||||
|
softdroparr="软降ARR:",
|
||||||
|
snapLevelName={"任意摆放","10px吸附","20px吸附","40px吸附","60px吸附","80px吸附"},
|
||||||
|
keyboard="键盘",joystick="手柄",
|
||||||
|
space="空格",enter="回车",
|
||||||
|
setting2Help="方向键选择/翻页,回车修改,esc返回",
|
||||||
|
musicRoom="音乐室",
|
||||||
|
nowPlaying="正在播放:",
|
||||||
|
|
||||||
|
actName={"左移:","右移:","顺时针旋转:","逆时针旋转:","180°旋转","硬降:","软降:","暂存:","功能键:","重新开始:","左瞬移:","右瞬移:","软降到底:"},
|
||||||
|
modeName={
|
||||||
|
[0]="自定义",
|
||||||
|
"竞速","马拉松","大师","经典","禅","无尽","单挑","仅TSD","隐形","挖掘","生存","科研",
|
||||||
|
"C4W练习","全清训练","全清挑战","49人混战","99人混战","干旱","多人",
|
||||||
|
},
|
||||||
|
modeInfo={
|
||||||
|
sprint="挑战世界纪录",
|
||||||
|
marathon="尝试坚持到最后",
|
||||||
|
master="成为方块大师",
|
||||||
|
classic="高速经典",
|
||||||
|
zen="无重力消除200行",
|
||||||
|
infinite="科研沙盒",
|
||||||
|
solo="打败AI",
|
||||||
|
tsd="尽可能做T旋双清",
|
||||||
|
blind="最强大脑",
|
||||||
|
dig="核能挖掘机",
|
||||||
|
survivor="防守练习",
|
||||||
|
tech="尽可能不要普通消除!",
|
||||||
|
c4wtrain="无 限 连 击",
|
||||||
|
pctrain="熟悉全清定式的组合",
|
||||||
|
pcchallenge="100行内尽可能多全清",
|
||||||
|
techmino49="49人混战",
|
||||||
|
techmino99="99人混战",
|
||||||
|
drought="异常序列",
|
||||||
|
hotseat="友尽模式",
|
||||||
|
},
|
||||||
|
|
||||||
|
load={"加载语音ing","加载音乐ing","加载音效ing","加载完成",},
|
||||||
|
tips={
|
||||||
|
"不是动画,真的在加载!",
|
||||||
|
"整个游戏都是MrZ完成的!",
|
||||||
|
"大满贯10连击消四全清!",
|
||||||
|
"<方块研究所>有一个Nspire-CX版本!",
|
||||||
|
"B2B2B2B存在吗?",
|
||||||
|
"MEGACMB!",
|
||||||
|
"ALLSPIN!",
|
||||||
|
"O型回旋三清?",
|
||||||
|
"只用一个输入设备就可以游玩了",
|
||||||
|
"Miya:喵!",
|
||||||
|
"225238922,哔哩哔哩 干杯~",
|
||||||
|
"适度游戏益脑,沉迷游戏伤身,合理安排时间,享受健康生活",
|
||||||
|
"合群了就会消失,但是消失不代表没有意义",
|
||||||
|
"学会使用两个旋转键,三个更好",
|
||||||
|
"更小的DAS和ARR拥有更高的操作上限",
|
||||||
|
"注意到\"旋转\"到底对方块做了些什么吗?",
|
||||||
|
"20G是一套全新的游戏规则",
|
||||||
|
"不要在上课时玩游戏!",
|
||||||
|
"本游戏难度上限很高,做好心理准备",
|
||||||
|
"方块可以不是个休闲游戏",
|
||||||
|
"调到特殊的日期也不会发生什么的",
|
||||||
|
"[随机文本]",
|
||||||
|
},
|
||||||
|
stat={
|
||||||
|
"游戏运行次数:",
|
||||||
|
"游戏局数:",
|
||||||
|
"游戏时间:",
|
||||||
|
"按键数:",
|
||||||
|
"旋转数:",
|
||||||
|
"暂存次数:",
|
||||||
|
"方块使用:",
|
||||||
|
"消行数:",
|
||||||
|
"攻击行数:",
|
||||||
|
"发送数:",
|
||||||
|
"接收数:",
|
||||||
|
"上涨数:",
|
||||||
|
"消除数:",
|
||||||
|
"旋转消行数:",
|
||||||
|
"满贯数:",
|
||||||
|
"全清数:",
|
||||||
|
"效率:",
|
||||||
|
},
|
||||||
|
help={
|
||||||
|
"好像也没啥好帮助的吧?就当是关于了",
|
||||||
|
"这只是一个方块游戏,请勿过度解读和随意联想",
|
||||||
|
"不过就当成TOP/C2/KOS/TGM3/JS玩好了",
|
||||||
|
"游戏还在测试阶段,请 勿 外 传",
|
||||||
|
"",
|
||||||
|
"使用LOVE2D引擎",
|
||||||
|
"作者:MrZ 邮箱:1046101471@qq.com",
|
||||||
|
"程序:MrZ 美术:MrZ 音乐:MrZ 音效:MrZ 语音:Miya",
|
||||||
|
"使用工具:VScode,GFIE,Beepbox,Goldwave",
|
||||||
|
"特别感谢:Farter,Teatube,196,Flyz,T830,[所有测试人员]和 你!",
|
||||||
|
"错误或者建议请附带相关信息发送到作者邮箱~",
|
||||||
|
},
|
||||||
|
support="支持作者",
|
||||||
|
group="官方QQ群",
|
||||||
|
ButtonText={
|
||||||
|
main={
|
||||||
|
play="开始",
|
||||||
|
setting="设置",
|
||||||
|
music="音乐室",
|
||||||
|
stat="统计信息",
|
||||||
|
help="帮助",
|
||||||
|
quit="退出",
|
||||||
|
},
|
||||||
|
mode={
|
||||||
|
up="Λ",
|
||||||
|
down="v",
|
||||||
|
left="<",
|
||||||
|
right=">",
|
||||||
|
start="开始",
|
||||||
|
custom="自定义(C)",
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
music={
|
||||||
|
up="↑",
|
||||||
|
play="播放",
|
||||||
|
down="↓",
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
custom={
|
||||||
|
up="↑",
|
||||||
|
down="↓",
|
||||||
|
left="<",
|
||||||
|
right=">",
|
||||||
|
start1="消除开始",
|
||||||
|
start2="拼图开始",
|
||||||
|
draw="画图(D)",
|
||||||
|
set1="40行",
|
||||||
|
set2="1v1",
|
||||||
|
set3="无尽",
|
||||||
|
set4="隐形",
|
||||||
|
set5="极限",
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
draw={
|
||||||
|
any="不定",
|
||||||
|
block1="■",
|
||||||
|
block2="■",
|
||||||
|
block3="■",
|
||||||
|
block4="■",
|
||||||
|
block5="■",
|
||||||
|
block6="■",
|
||||||
|
block7="■",
|
||||||
|
gb1="■",
|
||||||
|
gb2="■",
|
||||||
|
gb3="■",
|
||||||
|
gb4="■",
|
||||||
|
gb5="■",
|
||||||
|
space="×",
|
||||||
|
clear="清空",
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
play={
|
||||||
|
pause="暂停",
|
||||||
|
},
|
||||||
|
pause={
|
||||||
|
resume="继续",
|
||||||
|
quit="退出",
|
||||||
|
},
|
||||||
|
setting={
|
||||||
|
ghost=function()return setting.ghost and"阴影:开"or"阴影:关"end,
|
||||||
|
center=function()return setting.center and"旋转中心:开"or"旋转中心:关"end,
|
||||||
|
grid=function()return setting.grid and"网格:开"or"网格:关"end,
|
||||||
|
swap=function()return setting.swap and"目标选择:组合键"or"目标选择:循环"end,
|
||||||
|
fxs=function()return setting.fxs and"特效:开"or"特效:关"end,
|
||||||
|
bg=function()return setting.bg and"背景:开"or"背景:关"end,
|
||||||
|
dasD="-",dasU="+",
|
||||||
|
arrD="-",arrU="+",
|
||||||
|
sddasD="-",sddasU="+",
|
||||||
|
sdarrD="-",sdarrU="+",
|
||||||
|
ctrl="控制设置",
|
||||||
|
touch="触摸设置",
|
||||||
|
lang=function()return langName[setting.lang]end,
|
||||||
|
sfx=function()return setting.sfx and"音效:开"or"音效:关"end,
|
||||||
|
bgm=function()return setting.bgm and"音乐:开"or"音乐:关"end,
|
||||||
|
vib=function()return "震动:"..setting.vib end,
|
||||||
|
voc=function()return setting.voc and"语音:开"or"语音:关"end,
|
||||||
|
fullscreen=function()return setting.fullscreen and"全屏:开"or"全屏:关"end,
|
||||||
|
bgblock=function()return setting.bgblock and"背景动画:开"or"背景动画:关"end,
|
||||||
|
frame=function()return"绘制帧:"..setting.frameMul.."%"end,
|
||||||
|
skin="切换方块皮肤",
|
||||||
|
back="保存&返回",
|
||||||
|
},
|
||||||
|
setting2={
|
||||||
|
back="返回",
|
||||||
|
},
|
||||||
|
setting3={
|
||||||
|
back="返回",
|
||||||
|
hide=function()return setting.virtualkeySwitch and"隐藏虚拟按键"or"显示虚拟按键"end,
|
||||||
|
default="默认组合",
|
||||||
|
snap=function()return text.snapLevelName[snapLevel]end,
|
||||||
|
alpha=function()return percent0to5[setting.virtualkeyAlpha]end,
|
||||||
|
icon="图标",
|
||||||
|
size="大小",
|
||||||
|
},
|
||||||
|
help={
|
||||||
|
back="返回",
|
||||||
|
qq="作者QQ",
|
||||||
|
},
|
||||||
|
stat={
|
||||||
|
back="返回",
|
||||||
|
path="打开存储目录",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
260
language/eng.lua
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
return{
|
||||||
|
atkModeName={"Random","Badges","K.O.s","Counters"},
|
||||||
|
royale_remain=function(n)return n.." Players Remain"end,
|
||||||
|
cmb={nil,nil,"3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!","15 Combo!","16 Combo!","17 Combo!","18 Combo!","19 Combo!","MEGACMB"},
|
||||||
|
techrash="Techrash",
|
||||||
|
techrashB2B="B2B Techrash",
|
||||||
|
techrashB3B="B2B2B Techrash",
|
||||||
|
block={"Z","S","L","J","T","O","I"},
|
||||||
|
clear={" single"," double"," triple"},
|
||||||
|
spin={"Z-spin","S-spin","L-spin","J-spin","T-spin","O-spin","I-spin"},
|
||||||
|
b2b="B2B ",b3b="B2B2B ",
|
||||||
|
mini="Mini",
|
||||||
|
PC="Perfect Clear",
|
||||||
|
hold="Hold",next="Next",
|
||||||
|
|
||||||
|
stage={"STAGE 1","STAGE 2","STAGE 3","STAGE 4","STAGE 5",},
|
||||||
|
maxspeed="Max speed",
|
||||||
|
speedup="Speed up",
|
||||||
|
|
||||||
|
win="WIN",
|
||||||
|
lose="LOSE",
|
||||||
|
pause="PAUSE",
|
||||||
|
finish="FINISH",
|
||||||
|
pauseTime="Pause time",
|
||||||
|
|
||||||
|
custom="Custom Game",
|
||||||
|
customOption={
|
||||||
|
drop="Drop delay:",
|
||||||
|
lock="Lock delay:",
|
||||||
|
wait="Next piece delay:",
|
||||||
|
fall="Clear row delay:",
|
||||||
|
next="Next count:",
|
||||||
|
hold="Hold:",
|
||||||
|
sequence="Sequence:",
|
||||||
|
visible="Visible:",
|
||||||
|
target="Line limit:",
|
||||||
|
freshLimit="Lock fresh limit:",
|
||||||
|
opponent="Opponent speed:",
|
||||||
|
bg="Background:",
|
||||||
|
bgm="BGM:",
|
||||||
|
},
|
||||||
|
customVal={
|
||||||
|
drop={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞","[20G]"},
|
||||||
|
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞"},
|
||||||
|
wait=nil,
|
||||||
|
fall=nil,
|
||||||
|
next=nil,
|
||||||
|
hold={"ON","OFF","FREE"},
|
||||||
|
sequence={"bag7","his4","random"},
|
||||||
|
visible={"normal","time","invisible","sudden"},
|
||||||
|
target={10,20,40,100,200,500,1000,"∞"},
|
||||||
|
freshLimit={0,8,15,"∞"},
|
||||||
|
opponent={"No CPU",1,2,3,4,5,6,7,8,9,10,11},
|
||||||
|
},
|
||||||
|
softdropdas="Down DAS:",
|
||||||
|
softdroparr="Down ARR:",
|
||||||
|
snapLevelName={"Free pos","Snap-10","Snap-20","Snap-40","Snap-60","Snap-80"},
|
||||||
|
keyboard="Keyboard",joystick="Joystick",
|
||||||
|
space="Space",enter="Enter",
|
||||||
|
setting2Help="Arrowkey to select/change slot,Enter to change,Esc back",
|
||||||
|
musicRoom="Music Room",
|
||||||
|
nowPlaying="Now Playing:",
|
||||||
|
|
||||||
|
actName={"Move Left:","Move Right:","Rotate Right:","Rotate Left:","Rotate Flip:","Hard Drop:","Soft Drop:","Hold:","Function:","Restart:","Instant Left:","Instant Right:","Ins Down:"},
|
||||||
|
modeName={
|
||||||
|
[0]="Custom",
|
||||||
|
"Sprint","Marathon","Master","Classic","Zen","Infinite","1v1","TSD-only","Blind","Dig","Survivor","Tech",
|
||||||
|
"C4W Train","PC Train","PC Challenge","Techmino49","Techmino99","Drought","Hotseat",
|
||||||
|
},
|
||||||
|
modeInfo={
|
||||||
|
sprint="Speed run",
|
||||||
|
marathon="Survive and reach target",
|
||||||
|
master="To be Grand Master",
|
||||||
|
classic="Vintage car drag racing",
|
||||||
|
zen="Clear 200 Lines without gravity",
|
||||||
|
infinite="Infinite game,infinite happiness",
|
||||||
|
solo="Beat AI",
|
||||||
|
tsd="Make more T-spin-doubles",
|
||||||
|
blind="Invisible board",
|
||||||
|
dig="Downstack!",
|
||||||
|
survivor="Hand them!",
|
||||||
|
tech="Don't do normal clear",
|
||||||
|
c4wtrain="Infinite combo",
|
||||||
|
pctrain="Let's learn some PCs",
|
||||||
|
pcchallenge="Make PCs in 100 Lines",
|
||||||
|
techmino49="Melee fight with 48 AIs",
|
||||||
|
techmino99="Melee fight with 98 AIs",
|
||||||
|
drought="ERRSEQ flood attack",
|
||||||
|
hotseat="",
|
||||||
|
},
|
||||||
|
|
||||||
|
load={"Loading VOICE","Loading BGM","Loading SFX","Finished",},
|
||||||
|
tips={
|
||||||
|
"Not animation,real loading!",
|
||||||
|
"The WHOLE game is made by MrZ!",
|
||||||
|
"Back to Back 10 combo Techrash PC!",
|
||||||
|
"Techmino has a Nspire-CX edition!",
|
||||||
|
"Is B2B2B2B possible?",
|
||||||
|
"MEGACMB!",
|
||||||
|
"ALLSPIN!",
|
||||||
|
"O spin triple?",
|
||||||
|
"You can play with any input device!",
|
||||||
|
"Miya:Nya!",
|
||||||
|
"225238922,Bilibili cheers!",
|
||||||
|
"Playing too much = taking drugs",
|
||||||
|
"Disappearing doesn't mean useless",
|
||||||
|
"Try to use two rotate button,three better",
|
||||||
|
"Small DAS&ARR can make you faster,if you can adapt to it",
|
||||||
|
"Have you noticed what does \"rotating\" do to block?",
|
||||||
|
"20G is a brand new game rule",
|
||||||
|
"Do not play game in class!",
|
||||||
|
"This game can be very hard,be mentally perpared",
|
||||||
|
"This in not a casual game",
|
||||||
|
"Nothing will happen when some special day come",
|
||||||
|
"[random text]",
|
||||||
|
},
|
||||||
|
stat={
|
||||||
|
"Games run:",
|
||||||
|
"Games played:",
|
||||||
|
"Game time:",
|
||||||
|
"Key pressed:",
|
||||||
|
"Rotate:",
|
||||||
|
"Hold:",
|
||||||
|
"Block used:",
|
||||||
|
"Rows cleared:",
|
||||||
|
"Attack:",
|
||||||
|
"Sent:",
|
||||||
|
"Receive:",
|
||||||
|
"Pend:",
|
||||||
|
"Clear:",
|
||||||
|
"Spin:",
|
||||||
|
"B2B:",
|
||||||
|
"PC:",
|
||||||
|
"Efficiency:",
|
||||||
|
},
|
||||||
|
help={
|
||||||
|
"I don't think you need \"help\".",
|
||||||
|
"THIS IS ONLY A BLOCK GAME",
|
||||||
|
"But just play like playing TOP/C2/KOS/TGM3",
|
||||||
|
"Game is not public now,so DO NOT DISTIRBUTE",
|
||||||
|
"",
|
||||||
|
"Powered by LOVE2D",
|
||||||
|
"Author:MrZ E-mail:1046101471@qq.com",
|
||||||
|
"Programe:MrZ Art:MrZ Music:MrZ SFX:MrZ VOICE:Miya",
|
||||||
|
"Tool used:VScode,GFIE,Beepbox,Goldwave",
|
||||||
|
"Special thanks:Farter,Teatube,196,Flyz,T830,[all test staff] and YOU!",
|
||||||
|
"Any bugs/suggestions to my E-mail.",
|
||||||
|
},
|
||||||
|
support="Support Author",
|
||||||
|
group="Official QQ Group",
|
||||||
|
ButtonText={
|
||||||
|
main={
|
||||||
|
play="Play",
|
||||||
|
setting="Settings",
|
||||||
|
music="Music room",
|
||||||
|
stat="Statistics",
|
||||||
|
help="Help",
|
||||||
|
quit="Quit",
|
||||||
|
},
|
||||||
|
mode={
|
||||||
|
up="Λ",
|
||||||
|
down="v",
|
||||||
|
left="<",
|
||||||
|
right=">",
|
||||||
|
start="Start",
|
||||||
|
custom="Custom(C)",
|
||||||
|
back="Back",
|
||||||
|
},
|
||||||
|
music={
|
||||||
|
up="↑",
|
||||||
|
play="Play",
|
||||||
|
down="↓",
|
||||||
|
back="Back",
|
||||||
|
},
|
||||||
|
custom={
|
||||||
|
up="↑",
|
||||||
|
down="↓",
|
||||||
|
left="<",
|
||||||
|
right=">",
|
||||||
|
start1="Clear Start",
|
||||||
|
start2="Puzzle Start",
|
||||||
|
draw="Draw(D)",
|
||||||
|
set1="40L",
|
||||||
|
set2="1v1",
|
||||||
|
set3="infinite",
|
||||||
|
set4="blind",
|
||||||
|
set5="classic",
|
||||||
|
back="Back",
|
||||||
|
},
|
||||||
|
draw={
|
||||||
|
any="ANY",
|
||||||
|
block1="■",
|
||||||
|
block2="■",
|
||||||
|
block3="■",
|
||||||
|
block4="■",
|
||||||
|
block5="■",
|
||||||
|
block6="■",
|
||||||
|
block7="■",
|
||||||
|
gb1="■",
|
||||||
|
gb2="■",
|
||||||
|
gb3="■",
|
||||||
|
gb4="■",
|
||||||
|
gb5="■",
|
||||||
|
space="×",
|
||||||
|
clear="CLEAR",
|
||||||
|
back="Back",
|
||||||
|
},
|
||||||
|
play={
|
||||||
|
pause="Pause",
|
||||||
|
},
|
||||||
|
pause={
|
||||||
|
resume="Resume",
|
||||||
|
quit="Quit",
|
||||||
|
},
|
||||||
|
setting={
|
||||||
|
ghost=function()return setting.ghost and"Ghost:ON"or"Ghost:OFF"end,
|
||||||
|
center=function()return setting.center and"Center:ON"or"Center:OFF"end,
|
||||||
|
grid=function()return setting.grid and"Grid:ON"or"Grid:OFF"end,
|
||||||
|
swap=function()return setting.swap and"Swap:comboKey"or"Swap:loop"end,
|
||||||
|
fxs=function()return setting.fxs and"FXs:ON"or"FXs:OFF"end,
|
||||||
|
bg=function()return setting.bg and"BG:ON"or"BG:OFF"end,
|
||||||
|
dasD="-",dasU="+",
|
||||||
|
arrD="-",arrU="+",
|
||||||
|
sddasD="-",sddasU="+",
|
||||||
|
sdarrD="-",sdarrU="+",
|
||||||
|
ctrl="Control settings",
|
||||||
|
touch="Touch settings",
|
||||||
|
lang=function()return langName[setting.lang]end,
|
||||||
|
sfx=function()return setting.sfx and"SFX:ON"or"SFX:OFF"end,
|
||||||
|
bgm=function()return setting.bgm and"BGM:ON"or"BGM:OFF"end,
|
||||||
|
voc=function()return setting.voc and"VOC:ON"or"VOC:OFF"end,
|
||||||
|
vib=function()return "VIB:"..setting.vib end,
|
||||||
|
fullscreen=function()return setting.fullscreen and"Fullscreen:ON"or"Fullscreen:OFF"end,
|
||||||
|
bgblock=function()return setting.bgblock and"BG animation:ON"or"BG animation:OFF"end,
|
||||||
|
frame=function()return"FrameDraw:"..setting.frameMul.."%"end,
|
||||||
|
skin="Change Block Skin",
|
||||||
|
back="Save&Back",
|
||||||
|
},
|
||||||
|
setting2={
|
||||||
|
back="Back",
|
||||||
|
},
|
||||||
|
setting3={
|
||||||
|
back="Back",
|
||||||
|
hide=function()return setting.virtualkeySwitch and"Hide Virtual Key"or"Show Virtual Key"end,
|
||||||
|
default="Defaults",
|
||||||
|
snap=function()return text.snapLevelName[snapLevel]end,
|
||||||
|
alpha=function()return percent0to5[setting.virtualkeyAlpha]end,
|
||||||
|
icon="Icon",
|
||||||
|
size="Size",
|
||||||
|
},
|
||||||
|
help={
|
||||||
|
back="Back",
|
||||||
|
qq="Author's qq",
|
||||||
|
},
|
||||||
|
stat={
|
||||||
|
back="Back",
|
||||||
|
path="Open Data Folder",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||