Compare commits

..

16 Commits

Author SHA1 Message Date
MrZ626
707bcca368 Merge commit 'f8f115de10b4ef7818cf58bc03c9d75700e425b0' into test-new-mode-system 2021-12-27 14:26:32 +08:00
MrZ626
0498beecdf 特化新的模式选择场景名 2021-12-16 03:04:35 +08:00
MrZ626
b642f2b5c4 Merge branch 'main' into test-new-mode-system 2021-12-16 02:32:51 +08:00
MrZ626
462720881a 支持鼠标滚动模式列表 2021-12-16 02:07:49 +08:00
MrZ626
c9f8240234 添加模式搜索的帮助文本 2021-12-10 13:22:42 +08:00
MrZ626
f41f58e13f 模式文件夹可以显示作者 2021-12-10 01:49:05 +08:00
MrZ626
e81f25c216 修正段位更新条件
模式列表显示获得的段位
2021-12-10 01:37:14 +08:00
MrZ626
36fc681fbf 项目名太长会压缩显示 2021-12-09 20:10:46 +08:00
MrZ626
87e5e29129 彩蛋模式补充进模式树 2021-12-09 20:10:17 +08:00
MrZ626
6e78a3fedd 选择模式后右侧显示排行榜等信息 2021-12-09 19:41:42 +08:00
MrZ626
24760801af 增加模式图标显示,等待添加素材 2021-12-09 17:26:37 +08:00
MrZ626
f5e8e0f7a5 Merge commit 'df089a2f04fc44774e8dc722cc5d9948f94e5de5' into HEAD 2021-12-09 17:26:31 +08:00
MrZ626
5470387685 优化滚动
增加触摸控制
2021-12-09 15:55:09 +08:00
MrZ626
2f4a416353 整理代码
调整模式排列顺序
2021-12-09 15:13:09 +08:00
MrZ626
3dbafb042c 进一步优化 2021-12-09 15:04:17 +08:00
MrZ626
28103ad952 新模式选择菜单原型
删除模式图标
动态加载所有模式
2021-12-09 03:20:57 +08:00
143 changed files with 1437 additions and 2897 deletions

View File

@@ -1,8 +1,8 @@
---
name: Bug report (bluescreen crash) Bug报告 (蓝屏报错)
about: Create a bug report which causes a bluescreen crash
about: Create a report of problems which made the crash with a bluescreen
---
Screenshot with crash information (*Image(s) Here*):
If you can reproduce it, write the steps here. If you can't, try to describe what causes the game to crash, like pressing a key/button (*Details Here*)
If you can reproduce it, write the steps here. If you can't, try to describe the exactly time the game crash, like pressing which key or which button (*Details Here*)

View File

@@ -1,8 +1,8 @@
---
name: Bug report (unintended behaviors) Bug报告 (奇怪的现象)
about: Create bug report that causes unintended behaviors
about: Create a report of unintended behaviors
---
Screenshot with unintended behaviors (*Image(s) Here*):
If you can reproduce it, write the steps here. If you can't, try to describe what causes the unintended behavior, like pressing a key/button (*Details Here*):
If you can reproduce it, write the steps here. If you can't, try to describe the exactly time the game crash, like pressing which key or which button (*Details Here*):

View File

@@ -2,7 +2,3 @@
name: Feature Request 添加新功能
about: Suggest an idea that may improve Techmino 提一些有意思的新想法,让Techmino越来越好!
---
### What feature do you want to suggest to the game?

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

View File

@@ -12,6 +12,26 @@ local BGM={
--lastPlayed=[str:lastPlayed ID]
}
function BGM.getList()return nameList end
function BGM.getCount()return #nameList end
local function _addFile(name,path)
if not SourceObjList[name]then
table.insert(nameList,name)
SourceObjList[name]={path=path,source=false}
end
end
function BGM.load(name,path)
if type(name)=='table'then
for k,v in next,name do
_addFile(k,v)
end
else
_addFile(name,path)
end
table.sort(nameList)
LOG(BGM.getCount().." BGM files added")
end
local function _tryReleaseSources()
local n=#lastLoaded
while #lastLoaded>maxLoadedCount do
@@ -26,27 +46,6 @@ local function _tryReleaseSources()
end
end
end
local function _addFile(name,path)
if not SourceObjList[name]then
table.insert(nameList,name)
SourceObjList[name]={path=path,source=false}
end
end
function BGM.getList()return nameList end
function BGM.getCount()return #nameList end
function BGM.load(name,path)
if type(name)=='table'then
for k,v in next,name do
_addFile(k,v)
end
else
_addFile(name,path)
end
table.sort(nameList)
LOG(BGM.getCount().." BGM files added")
end
function BGM.setDefault(bgm)
BGM.default=bgm
end
@@ -73,10 +72,10 @@ end
local function task_fadeOut(src)
while true do
coroutine.yield()
local v=src:getVolume()-volume/40
local v=src:getVolume()-.025*volume
src:setVolume(v>0 and v or 0)
if v<=0 then
src:stop()
src:pause()
return true
end
end
@@ -85,7 +84,7 @@ local function task_fadeIn(src)
while true do
coroutine.yield()
local v=volume
v=math.min(v,src:getVolume()+v/40)
v=math.min(v,src:getVolume()+.025*v)
src:setVolume(v)
if v>=volume then
return true
@@ -144,6 +143,7 @@ function BGM.play(name,args)
end
SourceObjList[name].source:setLooping(not args:sArg('-noloop'))
BGM.lastPlayed=BGM.nowPlay
BGM.playing:seek(0)
BGM.playing:play()
BGM.onChange(name)
end

View File

@@ -639,9 +639,6 @@ local wsImg={}do
}
end
local debugInfos={
{"Cache",gcinfo},
}
function love.run()
local love=love
@@ -720,9 +717,9 @@ function love.run()
--Draw cursor
if mouseShow then drawCursor(time,mx,my)end
gc_replaceTransform(SCR.xOy_ul)
MES_draw()
gc_replaceTransform(SCR.origin)
MES_draw()
--Draw power info.
if showPowerInfo then
gc_setColor(1,1,1)
@@ -750,14 +747,11 @@ function love.run()
--Debug info.
if devMode then
--Debug infos at left-down
--Left-down infos
gc_setColor(devColor[devMode])
--Text infos
for i=1,#debugInfos do
gc_print(debugInfos[i][1],safeX+5,-20-20*i)
gc_print(debugInfos[i][2](),safeX+62.6,-20-20*i)
end
gc_print("MEM "..gcinfo(),safeX+5,-40)
gc_print("Tasks "..TASK.getCount(),safeX+5,-60)
gc_print("Voices "..VOC.getQueueCount(),safeX+5,-80)
--Update & draw frame time
table.insert(frameTimeList,1,dt)table.remove(frameTimeList,126)
@@ -857,29 +851,14 @@ function Z.setCursor(func)drawCursor=func end
--Change F1~F7 events of devmode (F8 mode)
function Z.setOnFnKeys(list)
assert(type(list)=='table',"Z.setOnFnKeys(list): list must be a table")
for i=1,7 do fnKey[i]=assert(type(list[i])=='function'and list[i])end
assert(type(list)=='table',"Z.setOnFnKeys(list): list must be a table.")
for i=1,7 do fnKey[i]=type(list[i])=='function'and list[i]or NULL end
end
function Z.setDebugInfo(list)
assert(type(list)=='table',"Z.setDebugInfo(list): list must be a table")
for i=1,#list do
assert(type(list[i][1])=='string',"Z.setDebugInfo(list): list[i][1] must be a string")
assert(type(list[i][2])=='function',"Z.setDebugInfo(list): list[i][2] must be a function")
end
debugInfos=list
end
function Z.setOnFocus(func)onFocus=assert(type(func)=='function'and func,"Z.setOnFocus(func): func must be a function")end
function Z.setOnFocus(func)
onFocus=assert(type(func)=='function'and func,"Z.setOnFocus(func): func must be a function")
end
function Z.setOnResize(func)onResize=assert(type(func)=='function'and func,"Z.setOnResize(func): func must be a function")end
function Z.setOnResize(func)
onResize=assert(type(func)=='function'and func,"Z.setOnResize(func): func must be a function")
end
function Z.setOnQuit(func)
onQuit=assert(type(func)=='function'and func,"Z.setOnQuit(func): func must be a function")
end
function Z.setOnQuit(func)onQuit=assert(type(func)=='function'and func,"Z.setOnQuit(func): func must be a function")end
return Z

View File

@@ -77,11 +77,11 @@ end
function STRING.time(t)
if t<60 then
return format("%.3f",t)
return format("%.3f\"",t)
elseif t<3600 then
return format("%d%05.2f",int(t/60),int(t%60*100)/100)
return format("%d'%05.2f\"",int(t/60),int(t%60*100)/100)
else
return format("%d:%.2d%05.2f",int(t/3600),int(t/60%60),int(t%60*100)/100)
return format("%d:%.2d'%05.2f\"",int(t/3600),int(t/60%60),int(t%60*100)/100)
end
end

View File

@@ -1,4 +1,3 @@
local rnd=math.random
local find=string.find
local rem=table.remove
local next,type=next,type
@@ -59,6 +58,7 @@ function TABLE.coverR(new,old)
end
end
--For all things in new if same type in old, push to old
function TABLE.update(new,old)
for k,v in next,new do
@@ -84,19 +84,6 @@ function TABLE.complete(new,old)
end
end
--------------------------
--Pop & return random [1~#] of table
function TABLE.popRandom(t)
local l=#t
if l>0 then
local r=rnd(l)
r,t[r]=t[r],t[l]
t[l]=nil
return r
end
end
--Remove [1~#] of table
function TABLE.cut(G)
for i=1,#G do
@@ -111,8 +98,6 @@ function TABLE.clear(G)
end
end
--------------------------
--Remove duplicated value of [1~#]
function TABLE.trimDuplicate(org)
local cache={}
@@ -137,7 +122,6 @@ function TABLE.remDuplicate(org)
end
end
--------------------------
--Reverse [1~#]
function TABLE.reverse(org)

View File

@@ -128,7 +128,7 @@ BOT= require'parts.bot'
RSlist= require'parts.RSlist'DSCP=RSlist.TRS.centerPos
PLY= require'parts.player'
NETPLY= require'parts.netPlayer'
MODES= require'parts.modes'
MODETREE= require'parts.modeTree'
setmetatable(TEXTURE,{__index=function(self,k)
MES.new('warn',"No texture called: "..k)
@@ -184,12 +184,6 @@ Z.setOnFnKeys({
function()for k,v in next,_G do print(k,v)end end,
function()if love['_openConsole']then love['_openConsole']()end end,
})
Z.setDebugInfo{
{"Cache",gcinfo},
{"Tasks",TASK.getCount},
{"Voices",VOC.getQueueCount},
{"Audios",love.audio.getSourceCount},
}
Z.setOnResize(function(w,_)
SHADER.warning:send('w',w*SCR.dpi)
end)
@@ -277,6 +271,7 @@ IMG.init{
speedLimit='media/image/mess/speedLimit.png',--Not used, for future C2-mode
pay1='media/image/mess/pay1.png',
pay2='media/image/mess/pay2.png',
drought='media/image/mess/drought.png',
miyaCH1='media/image/characters/miya1.png',
miyaCH2='media/image/characters/miya2.png',
@@ -372,8 +367,8 @@ LANG.init('zh',
es=require'parts.language.lang_es',
pt=require'parts.language.lang_pt',
id=require'parts.language.lang_id',
ja=require'parts.language.lang_ja',
zh_grass=require'parts.language.lang_zh_grass',
zh_yygq=require'parts.language.lang_yygq',
symbol=require'parts.language.lang_symbol',
--1. Add language file to LANG folder;
--2. Require it;
@@ -415,24 +410,6 @@ for _,v in next,fs.getDirectoryItems('parts/scenes')do
LANG.addScene(sceneName)
end
end
--Load mode files
for i=1,#MODES do
local m=MODES[i]--Mode template
if isSafeFile('parts/modes/'..m.name)then
TABLE.complete(require('parts.modes.'..m.name),MODES[i])
MODES[m.name],MODES[i]=MODES[i]
end
end
for _,v in next,fs.getDirectoryItems('parts/modes')do
if isSafeFile('parts/modes/'..v)and not MODES[v:sub(1,-5)]then
local M={name=v:sub(1,-5)}
local modeData=require('parts.modes.'..M.name)
if modeData.env then
TABLE.complete(modeData,M)
MODES[M.name]=M
end
end
end
table.insert(_LOADTIMELIST_,("Load Files: %.3fs"):format(TIME()-_LOADTIME_))
@@ -560,26 +537,8 @@ do
if type(name)=='number'or type(rank)~='number'then
RANKS[name]=nil
needSave=true
else
local M=MODES[name]
if M and M.unlock and rank>0 then
for _,unlockName in next,M.unlock do
if not RANKS[unlockName]then
RANKS[unlockName]=0
needSave=true
end
end
end
if not(M and M.x)then
RANKS[name]=nil
needSave=true
end
end
end
if not MODES[STAT.lastPlay]then
STAT.lastPlay='sprint_10l'
needSave=true
end
if needSave then
saveStats()

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

View File

@@ -28,7 +28,7 @@ return{
end
setFont(50)
mStr(P.modeData.drought,63,130)
mDraw(MODES.drought_l.icon,63,200,nil,.5)
mDraw(IMG.drought,63,200,nil,.5)
end
end,
task=function(P)

View File

@@ -28,7 +28,7 @@ return{
end
setFont(50)
mStr(P.modeData.drought,63,130)
mDraw(MODES.drought_l.icon,63,200,nil,.5)
mDraw(IMG.drought,63,200,nil,.5)
end
end,
task=function(P)

View File

@@ -28,7 +28,7 @@ return{
end
setFont(50)
mStr(P.modeData.drought,63,130)
mDraw(MODES.drought_l.icon,63,200,nil,.5)
mDraw(IMG.drought,63,200,nil,.5)
end
end,
task=function(P)

View File

@@ -95,7 +95,8 @@ do--function loadFile(name,args), function saveFile(data,name,args)
end
end
function isSafeFile(file,mes)
if love.filesystem.getRealDirectory(file)~=SAVEDIR then
local path=love.filesystem.getRealDirectory(file)
if path and path~=SAVEDIR then
return true
elseif mes then
MES.new('warn',mes)
@@ -497,12 +498,9 @@ end
function loadGame(mode,ifQuickPlay,ifNet)--Load a mode and go to game scene
freshDate()
if legalGameTime()then
if not MODES[mode]and love.filesystem.getRealDirectory('parts/modes/'..mode)~=SAVEDIR then
MODES[mode]=require('parts.modes.'..mode)
MODES[mode].name=mode
end
if MODES[mode].score then
STAT.lastPlay=mode
if not MODES[mode].available then
MES.new('error',"Unavailable mode: "..mode)
return
end
GAME.playing=true
GAME.init=true
@@ -543,29 +541,9 @@ function gameOver()--Save record
GAME.rank=R
end
if not GAME.replaying and M.score and scoreValid()then
if RANKS[M.name]then--Old rank exist
local needSave
if R>RANKS[M.name]then
RANKS[M.name]=R
needSave=true
end
if R>0 then
if M.unlock then
for i=1,#M.unlock do
local m=M.unlock[i]
local n=MODES[m].name
if not RANKS[n]then
if MODES[m].x then
RANKS[n]=0
end
needSave=true
end
end
end
end
if needSave then
saveProgress()
end
if not RANKS[M.name]or R>RANKS[M.name]then--Old rank exist
RANKS[M.name]=R
saveProgress()
end
local D=M.score(P)
local L=M.records
@@ -748,7 +726,7 @@ do--function resetGameData(args)
GAME.recording=false
GAME.replaying=true
else
GAME.frameStart=args:find'n'and 0 or 180-SETTING.reTime*60
GAME.frameStart=args:find'n'and 0 or 150-SETTING.reTime*15
GAME.seed=seed or math.random(1046101471,2662622626)
GAME.pauseTime=0
GAME.pauseCount=0

View File

@@ -13,6 +13,13 @@ BLOCK_COLORS={
COLOR.dH,COLOR.D,COLOR.lY,COLOR.H,COLOR.lH,COLOR.dV,COLOR.dR,COLOR.dG,
}
RANK_CHARS={'B','A','S','U','X'}for i=1,#RANK_CHARS do RANK_CHARS[i]=CHAR.icon['rank'..RANK_CHARS[i]]end
RANK_BASE_COLORS={
{.1,.2,.3},
{.3,.42,.32},
{.45,.44,.15},
{.42,.25,.2},
{.42,.15,.4},
}
RANK_COLORS={
{.8,.86,.9},
{.6,.9,.7},
@@ -724,3 +731,44 @@ do--Userdata tables
todayTime=0,
}
end
do--Mode data tables
MODES=setmetatable({},{__index=function(self,name)
local M
if love.filesystem.getInfo('parts/modes/'..name..'.lua')and love.filesystem.getRealDirectory('parts/modes/'..name..'.lua')~=SAVEDIR then
M=require('parts.modes.'..name)
M.available=true
M.name=name
do--Check if need slowmark
for k in next,M.env do
if
k=='mindas'or k=='minarr'or
k=='das'or k=='arr'or
k=='minsdarr'
then
M.slowMark=true
break
end
end
end
if M.score then
M.records=loadFile("record/"..name..".rec",'-luaon -canSkip')or{}
end
else
M={
available=false,
}
MES.new('error',"Failed to load mode file: "..name)
end
self[name]=M
return M
end})
MODEICON=setmetatable({},{__index=function(self,k)
if isSafeFile('media/image/modeicon/'..k..'.png')then
local img=love.graphics.newImage('media/image/modeicon/'..k..'.png')
self[k]=img
return img
else
return PAPER
end
end})
end

View File

@@ -8,7 +8,7 @@ return{
"https://github.com/26F-Studio/Techmino/blob/main/parts/language/dict_en.lua",
},
{"Official Website",
"homepage mainpage",
"official website homepage mainpage",
"help",
"The official website of Techmino!\nYou can modify your profile on it",
"http://home.techmino.org",
@@ -69,7 +69,7 @@ return{
"https://discord.gg/harddrop"
},
{"Mew",
"tieba forum reddit",
"mew tieba forum reddit",
"org",
"The Mew forum owned by Chinese Tetris Research Community, and was founded in the second half of 2021. Mew is a Chinese social media that can be thought of a combination of Discord and Reddit, with many channels in a big community. Users can chat in the channels or submit posts to the channel. Mew also has a function called \"Library\" which allows storing documentations systematically. The Tetris Mew forum is currently under construction and not too much contents are available (2/Nov/2021).",
"https://mew.fun/n/tetris",
@@ -100,13 +100,13 @@ return{
--Games
{"TTT",
"tetris trainer tres bien",
"ttt tetris trainer tres bien",
"game",
"Tetris Trainer Très-Bien. A hands-on tutorial of advanced techniques in modern Tetris.\nRecommended for players that can complete a 40-line Sprint with all Tetris line clears and no hold.\nCovered topics include T-Spin, finesse, SRS, and some battle setups.\nLink in Japanese.",
"http://taninkona.web.fc2.com/ttt/",
},
{"TTPC",
"tetris perfect clear challenge",
"ttpc tetris perfect clear challenge",
"game",
"Tetris Perfect Clear Challenge. The PC opener tutorial for SRS and 7-Bag.\nRecommended for players that have completed TTT. You need to know SRS to play this.\nIncludes only the basic PC opener.\nLink translated to Simplified Chinese; originally in Japanese.",
"http://teatube.ltd/ttpc",
@@ -142,7 +142,7 @@ return{
"https://tetralegends.app",
},
{"Ascension",
"asc ASC",
"asc ascension ASC",
"game",
"Browser Game | Singleplayer/Multiplayer\nOr ASC for short. It uses its own rotation system (also called ASC) and has many single-player modes. Battle modes are currently under beta testing (15/Dec/2021). The Stack mode in this game was also inspired by Ascension. ",
"https://asc.winternebs.com",
@@ -215,7 +215,7 @@ return{
},
{"TGM",
"tetrisgrandmaster tetristhegrandmaster",
"tgm tetrisgrandmaster tetristhegrandmaster",
"game",
"Arcade | Singleplayer/Local Multiplayer\nTetris The Grand Master, an arcade Tetris series. Titles like S13 and GM come from this series.\n\nTGM3 is the most well-known game in this series.",
},
@@ -299,7 +299,7 @@ return{
"iOS/Android | Singleplayer\nThe mobile Tetris game from N3TWORK Inc. It has a 3-minute ultra mode, a marathon mode and a 100-player Royale mode.\n[The UI is great but its controls are not so good.]",
},
{"Tetris Beat",
"n3twork rhythm",
"tetris beat n3twork rhythm",
"game",
"iOS | Singleplayer\nA mobile Tetris game from N3TWORK. It has a \"Beat\" mode besides the Marathon mode, but in this game you only have drop the blocks in rhythm with the BGM.\n[The effects are very heavy and the controls are not so good.]"
},
@@ -327,57 +327,57 @@ return{
"Translator's note on those per-minute and per-second values\n\nNot all of them are commonly used in the communities, and not all terms mean the same thing across all contexts. They mostly apply to Techmino."
},
{"LPM",
"linesperminute speed",
"lpm linesperminute speed",
"term",
"Lines per minute\n\tReflects playing speed of a player.\nDifferent games calculate LPM differently. For example, Tetris Online calculates its LPM using PPS (see below), where 1PPS=24LPM. This basically ignores clearing garbage lines and makes it different from its literal meaning. In Techmino, this converted LPM value is marked \"L'PM\".",
},
{"PPS",
"piecespersecond speed",
"pps piecespersecond speed",
"term",
"Pieces per second\n\tReflects playing speed of a player.",
},
{"BPM",
"blocksperminute piecesperminute speed",
"bpm blocksperminute piecesperminute speed",
"term",
"Blocks per minute\n\tReflects playing speed of a player.\nAlso called PPM (to avoid confusing with the musical term).",
},
{"KPM",
"keysperminute keypressesperminute",
"kpm keysperminute keypressesperminute",
"term",
"Keypresses per minute\n\tReflects how fast the player presses keys or buttons.",
},
{"KPP",
"keysperpiece keypressesperpiece",
"kpp keysperpiece keypressesperpiece",
"term",
"Keypresses per piece\n\tReflects how efficient the player is with the controls. Reduce this number by learning to finesse.",
},
{"APM",
"attackperminute",
"apm attackperminute",
"term",
"Attack per minute\n\tReflects offensive power of a player.\nIn Techmino, the concept of \"attack\" sometimes includes the fractional lines of an attack. Since sending garbage rounds down before sending, this value can be higher than your actual attack power.",
},
{"SPM",
"linessentperminute",
"spm linessentperminute",
"term",
"[lines] Sent per minute\n\tReflects *actual* offensive power of a player. (does not count lines used for cancelling garbage in buffer.)",
},
{"RPM",
"receive jieshou",
"rpm receive jieshou",
"term",
"[lines] Receive per Minute\n\tReflects pressure applied to a player.",
},
{"DPM",
"digperminute defendperminute",
"dpm digperminute defendperminute",
"term",
"Dig/Defend per minute\n\tSometimes can reflect how well a player can survive garbage.",
},
{"ADPM",
"attackdigperminute vs",
"adpm attackdigperminute vs",
"term",
"Attack&Dig per minute\n\tUsed to compare skill differences between the two players within one match; slightly more accurate than APM.\n\"vs\" in TETR.IO is Atk+Dig per 100s",
},
{"APL",
"attackperline efficiency",
"apl attackperline efficiency",
"term",
"Attack per line (cleared)\n\tAlso known as \"efficiency\"; reflects the per-line efficiency of attacks. For example, Tetrises and T-spins have higher efficiency than doubles and triples.",
},
@@ -413,7 +413,7 @@ return{
"Formerly known as Perfect Clear (PC). That is also still the term preferred by the communities and used in Techmino.\nClear all minoes on the field.",
},
{"HPC",
"hc clear halfperfectclear",
"hpc hc clear halfperfectclear",
"term",
"*Techmino-exclusive*\nHalf Perfect Clear\nExtension of an All Clear. Should a line clear resemble an All Clear when ignoring lines below the clear, the clear is a Half Perfect Clear, and sends a small extra amount of attack.",
},
@@ -439,27 +439,27 @@ return{
"A spin performed using the T Tetromino.\nIn modern official games, T-Spins are detected using the 3-corner rule, i.e. if at least three of the four cells diagonal to the rotation center is occupied by minoes, it is considered as a T-Spin. Some games have extra rules to determine a T-Spin as a Mini T-Spin instead, which has reduced attacks/scores.",
},
{"TSS",
"t1 tspinsingle",
"tss t1 tspinsingle",
"term",
"T-Spin Single\nClear 1 line with a T-Spin.",
},
{"TSD",
"t2 tspindouble",
"tsd t2 tspindouble",
"term",
"T-Spin Double\nClear 2 lines with a T-Spin.",
},
{"TST",
"t3 tspintriple",
"tst t3 tspintriple",
"term",
"T-Spin Triple\nClear 3 lines with a T-Spin.",
},
{"MTSS",
"minitspinsingle tsms tspinminisingle",
"mtss minitspinsingle tsms tspinminisingle",
"term",
"Mini T-Spin Single\nFormerly known as T-Spin Mini Single (TSMS).\nClear 1 line with a Mini T-Spin.\nDifferent games have different ways to determine whether a T-Spin is a Mini.",
},
{"MTSD",
"minitspindouble tsmd tspinminidouble",
"mtsd minitspindouble tsmd tspinminidouble",
"term",
"Mini T-Spin Double\nFormerly known as T-Spin Mini Double (TSMD).\nClear 2 lines with a Mini T-Spin.\nDifferent games have different ways to determine whether a T-Spin is a Mini.\nIn addition, different games have different behaviors when clearing a Mini T-Spin Double: some games credit this move correctly, and some games use a different displayed text because they never programmed this in.",
},
@@ -474,12 +474,12 @@ return{
"Systems that determine how the pieces rotate.\n\nIn modern Tetris games, tetrominoes can rotate on a specfic rotation center (but this may be absent in some games). If the minoes overlap with the walls or the field, the system would attempt to perform some offsets (a process known as \"wall-kicking\"). Wall kicks allow minoes to move into in specific-shaped holes.",
},
{"Orientation",
"direction 0r2l 02 20 rl lr",
"orientation direction 0r2l 02 20 rl lr",
"term",
"In SRS and SRS-like rotation systems, there are standard notations describing the orientations of the minoes:\n 0 for Original orientation; R for right, or 90° clockwise; L for left, or 90° counterclockwise; 2 for spin twice (180°). For example, 0→L means rotating counterclockwise from original orientation (0) to L; 0→R means rotating clockwise from original orientation (0) to R; 2→R means rotating counterclockwise from 2 (180°) to R.",
},
{"ARS",
"arikrotationsystem atarirotationsystem",
"ars arikrotationsystem atarirotationsystem",
"term",
"It can refer to two things:\nArika Rotation System, which is used in Tetris: The Grand Master games.\nAtari Rotation System, which aligns pieces to the top-left when rotating.",
},
@@ -489,12 +489,12 @@ return{
"Rotation system used in the Tetris clone Ascension. All pieces use the same two kick tables (one for CW, one for CCW), and the kick range is approximately ± 2 blocks on both axis.\n\nIn Techmino, ASC+ is a modified version of Ascension's rotation system, adding kicks for 180° spins.",
},
{"BRS",
"bulletproofsoftware",
"brs bulletproofsoftware",
"term",
"BPS rotation system, the rotation system used in Tetris games by Bullet-Proof Software.",
},
{"BiRS",
"biasrs biasrotationsystem",
"birs biasrs biasrotationsystem",
"term",
"*Techmino exclusive*\n\nBias Rotation System, Techmino's original rotation system based on XRS and SRS.\nIt sets an offset to the rotation if you hold left/right/soft drop when you rotate.\nIf rotation fails when downwards offset is applied, it tries again without the downwards offset.\nThen it tries without left/right offset.\nIf it fails, then the rotation will not occur.\n\nCompared to XRS, BiRS only uses a single kick table, making it easier to memorize; also keeps the climb-over-terrain feature of SRS.\n\nThe final kick offset's euclidean distance can't be larger than √5; if there is a horizontal offset, the final kick offset can't be in the opposite direction.",
},
@@ -504,22 +504,22 @@ return{
"Cultris II rotation system, a rotation system used in the Tetris clone Cultris II.\nAll rotations and all pieces share the same kick table (left, right, down, down-left, down-right, left 2, right 2), with left priortizing over right.\n\nIn Techmino, C2sym is a modification to this rotation system that chooses whether to check left or right first depending on the piece and rotation.",
},
{"DRS",
"dtetrotationsystem",
"drs dtetrotationsystem",
"term",
"DTET Rotation System\nThe rotation system used in DTET.",
},
{"NRS",
"nintendorotationsystem",
"nrs nintendorotationsystem",
"term",
"Nintendo Rotation System\nThe rotation system used in the Tetris games on the NES and Game Boy.\nIt has two mirrored versions; the left-handed version is used on Game Boy, and the right-handed version on the NES.",
},
{"SRS",
"superrotationsystem",
"srs superrotationsystem",
"term",
"Super Rotation System, the most widely used rotation system by modern Tetris games, and is the foundation of many self-made rotation systems. There are four orientations for each tetromino, and they can rotate clockwise or counterclockwise (But without 180° rotations). Should a Tetromino overlap with the wall, floor or other minoes on the field after rotation, a few offset positions will be checked, allowing pieces to kick off walls and floors. You can look up the details of the wall kick table on Tetris Wiki.",
},
{"TRS",
"techminorotationsystem",
"trs techminorotationsystem",
"term",
"*Techmino-exclusive*\nTechmino Rotation System\nThe rotation system used in Techmino, based on SRS.\nIt includes fixes on common cases where S/Z are locked from rotating and some extra useful kicks. Each pentomino also has a kick table roughly based on SRS logic.",
},
@@ -535,7 +535,7 @@ return{
"Clearing 2 or more technical line clears (Spins and Tetrises) in a row (without introducing ordinary line clears) gives extra attack power.\nUnlike combos, placing pieces that do not clear lines does not affect Back to Back.",
},
{"B2B2B",
"b3b",
"b2b2b b3b",
"term",
"*Techmino-exclusive*\nClearing many Back to Backs to fill the Back to Back gauge, and eventually you will be able to perform a Back to Back to Back, giving more bonus attack. A.k.a. B3B.",
},
@@ -560,17 +560,17 @@ return{
"Many modern Tetris games use the same color scheme for the tetrominoes. The colors are:\nZred, Sgreen, Jblue, Lorange, Tpurple, Oyellow, and Icyan.\n\nTechmino also uses this \"standard\" coloring for the tetrominoes.",
},
{"IRS",
"initialrotationsystem",
"irs initialrotationsystem",
"term",
"Initial Rotation System\nHolding a rotation key during spawn delay to spawn the piece pre-rotated. Sometimes prevents death.",
},
{"IHS",
"initialholdsystem",
"ihs initialholdsystem",
"term",
"Initial Hold System\nHolding the hold key during spawn delay to spawn the held piece (or Next piece in the Next queue if there is no held piece) instead of the current piece, and put the current piece in hold as if the player has performed the held before spawning. Sometimes prevents death.",
},
{"IMS",
"initialmovesystem",
"ims initialmovesystem",
"term",
"*Techmino-exclusive*\nInitial Movement System\nHolding a sideways movement key during spawn delay to spawn the piece one block off to the side. Sometimes prevents death.\nNote that DAS need to be full charged when new piece appear",
},
@@ -585,12 +585,12 @@ return{
"Save your current piece for later use, and take out a previously held piece (or next piece in the next queue, if no piece was held) to place instead. You can only perform this once per piece in most cases.\n\nTechmino Exclusive: Techmino has a \"In-place hold\" feature. When enabled, pieces that spawn from the Hold queue will spawn at where your currently-controlling piece is, instead of at the top of the matrix.",
},
{"Swap",
"hold",
"swap hold",
"term",
"Like *hold*, swap your current piece and the first piece of next queue. You can also only perform this once per piece in most cases.",
},
{"Deepdrop",
"shenjiang",
"deepdrop shenjiang",
"term",
"*Techmino exclusive*\n\nA special function that allows minoes to teleport through the wall to enter a hole. When the mino hits the bottom, pressing the soft drop button again will enable the deep drop. if there is a hole that fits the shape of the mino, it will teleport into this hole immediately/nThis mechanism is especially useful for AI because it allows AI to disregard the differences between different rotation systems.",
},
@@ -610,7 +610,7 @@ return{
"A sub-(number) time means the time is below a certain milestone. The unit of the time is often left out and inferred, for example, a \"sub-30\" time for a 40-line Sprint means below 30 seconds, and a \"sub-15\" time for a 1000-line Sprint means below 15 minutes.",
},
{"Donation",
"donate",
"donation donate",
"term",
"A method of \"plugging\" up the Tetris hole to send a T-Spin. After the T-Spin, the Tetris hole is opened up once again to allow the continuation of Tetris or downstacking.\n--Harddrop wiki",
},
@@ -680,7 +680,7 @@ return{
"The stacking method where you leave a 4-block-wide well in the middle.\nThe infamous combo setup that not only makes a lot of combos but also abuses the death conditions and won't die even if you receive some garbage. This technique is often disliked by players due to how unbalanced it is.",
},
{"Residual",
"c4w s4w",
"residual c4w s4w",
"term",
"Refers to how many blocks to leave in the well of a 4-wide combo setup. The most common are 3-residual and 6-residual.\n3-residual has fewer variations and is easier to learn, with a pretty good chance of success, and it's pretty useful in combat.\n6-residual has more variables and is harder, but can be more consistent if you do it well. It can also be used for special challenges like getting 100 combos in an infinite 4-wide challenge.",
},
@@ -690,7 +690,7 @@ return{
"A way of stacking where you have a 6-block-wide stack on the left, and a 3-block-wide stack on the right.\nFor a skilled player, this method of stacking might reduce the keypresses needed for stacking, and is a popular Sprint stacking method. The reason why it works has to do with the fact that pieces spawn with a bias to the left.",
},
{"Freestyle",
"ziyou",
"freestyle ziyou",
"term",
"This term is usually used in 20TSDs. Freestyle means finishing 20 TSDs without using static stacking modes. Freestyle 20TSDs is more difficult than static tsacking modes such as LST, and the performance can represent the T-spin skills a player has in battles.",
},
@@ -700,12 +700,12 @@ return{
"Modern Tetris games have three different conditions in which the player tops out:\n1. Block out: when a piece spawned overlaps with the existing blocks in the field;\n2. Lock out: when a piece locks entirely above the skyline;\n3. Top out: when the stack exceeds 40 lines in height (often due to incoming garbage).\nTechmino does not check for locking out and topping out.",
},
{"Buffer zone",
"above super invisible disappear",
"buffer zone above super invisible disappear",
"term",
"Refers to 21st-40th lines above the visible field. Because the blocks in the field could go over the visible field (this usually happens when multiple garbage lines come in) so the buffer zone was created so those blocks could go back to the field when garbage lines are cleared. Also, the buffer zone is usually located at 21st-40th lines because this is sufficient for most cases. Refer to \"Vanish Zone\" to learn more.",
},
{"Vanish zone",
"disappear gone cut die",
"vanish zone disappear gone cut die",
"term",
"Refers to the area located above the 40th line. This is usually realised by combining c4w and multiple garbage lines. In many games, when any block reaches the vanish zone, the game is terminated immediately.\nHowever, this area can have different behaviours in different games. Some games are flawed because the game could crash when the blocks enter the vanish zone (e.g. Tetris Online). Wierd behaviours could also happen when the blocks enter the vanish zone (you can refer to this video, click on the globe icon to open the link).\n\nFurthermore, the vanish zone in Jstris is located above the 22nd line, and any blocks locked above the 21st line will disappear. ",
"https://youtu.be/z4WtWISkrdU",
@@ -716,7 +716,7 @@ return{
"Falling speed is often described in terms of \"G\", i.e. how many lines the blocks fall in one frame (usually assuming 60 fps).\nG is a relatively large unit. The speed of Lv 1 in a regular Marathon (one second per line) is 1/60 G, and 1G is about Lv 13 speed. The highest speed of modern Tetris is 20G because the field height is 20 lines. In fact, the real meaning of 20G is \"Infinite falling speed\", and even when the field height is more than 20 lines, 20G modes force all the blocks to fall down to the bottom instantly. You can learn more about 20G at the \"20G\" entry.",
},
{"20G",
"gravity instant",
"20g gravity instant",
"term",
"The fastest falling speed of modern Tetris. In 20G modes, pieces appear instantly on the bottom of the field without the actual process of \"falling down\". This sometimes also limits a piece's sideways movements, as it is not always possible to make a piece climb over a bump or out of a well in 20G. You can learn more at the unit \"G\" at the \"falling speed\" entry. ",
},
@@ -726,17 +726,17 @@ return{
"The delay between block touching the ground and locking down (i.e. can no longer be controlled, and the next piece spawns).\nModern Tetris games often have forgiving lockdown delay mechanics where you can reset this delay by moving or rotating (up to 15 times), and you can sometimes stall for time by doing this. Classic Tetris games often have a far less forgiving lockdown delay.",
},
{"ARE",
"spawn appearance delay",
"are spawn appearance delay",
"term",
"Sometimes called the Entry Delay. ARE refers to the delay between the lockdown of one piece and the spawn of another piece.",
},
{"Line ARE",
"appearance delay",
"line are appearance delay",
"term",
"The delay between the start of a line clear animation to the spawn of the next piece.",
},
{"Death ARE",
"die delay",
"death are die delay",
"term",
"(Techmino exclusive) When the spawn location of the next piece is blocked by an existing block in the field, a delay will be added in addition to the spawn ARE, and this delay is referred to as the death ARE. This mechanism can be used along with IHS and IRS to prevent death. \nOriginal idea by NOT_A_ROBOT",
},
@@ -781,7 +781,7 @@ return{
"Techmino exclusive: this feature is designed to prevent mis-harddropping from pressing hard drop key shortly after the previous piece is naturally locked down.\nHard drop key can be disabled for a few frames (depending on the settings) after a natural lockdown.\n\nOther games may have a similar feature but may function differently.",
},
{"SDF",
"softdropfactor",
"sdf softdropfactor",
"term",
"Soft Drop Factor\n\nA way to define soft drop speed as a multiple of natural falling speed. In guideline games, the soft drop is usually 20x the speed of natural falling, i.e. it has an SDF of 20. Techmino does not use SDF to define soft drop speed.",
},
@@ -821,7 +821,7 @@ return{
"Another method of fast-tapping in high-gravity (around 1G) modes (with slow DAS/ARR setting).\nWhen you perform rolling, you fix the position of one hand and the controller, and then tap the back of the controller with fingers on your other hand repeatedly. This method allows even faster moving speeds than hypertapping (see \"Hypertapping\" for more)and requires much less effort.\nThis method was first discovered by Cheez-fish and he has once achieved a tapping speed of more than 20 Hz.",
},
{"Passthrough",
"pingthrough",
"passthrough pingthrough",
"term",
"",--TODO
},
@@ -896,7 +896,7 @@ return{
"A Tetris bot. Originally built for Puyo Puyo Tetris, thus can be less powerful on Techmino.",
},
{"ZZZbot",
"ai bot",
"zzzbot ai bot",
"term",
"A Tetris bot. Built by the Chinese Tetris player 奏之章 (Zou Zhi Zhang) and has decent performance in many games",
},
@@ -914,7 +914,7 @@ return{
HDsearch.."dt",
},
{"DTPC",
"dtcannon doubletriplecannon",
"dtpc dtcannon doubletriplecannon",
"setup",
"A follow-up of the DT Cannon that ends with an All Clear"..HDwiki,
HDsearch.."dt",
@@ -926,7 +926,7 @@ return{
HDsearch.."bt_cannon",
},
{"BTPC",
"btcannon betacannon",
"btpc btcannon betacannon",
"setup",
"A follow-up of the BT Cannon that ends with an All Clear."..HDwiki,
HDsearch.."bt_cannon",
@@ -1020,8 +1020,8 @@ return{
{"LST stacking",
"lst",
"pattern",
"An infinite T-Spin Double setup",
"https://four.lol/stacking/lst",
"An infinite T-Spin Double setup"..HDwiki,
HDsearch.."st_stacking",
},
{"Hamburger",
"hamburger",
@@ -1058,7 +1058,7 @@ return{
--Savedata managing
{"Console",
"cmd commamd minglinghang kongzhitai terminal",
"console cmd commamd minglinghang kongzhitai terminal",
"command",
"Techmino has a console that enables debugging/advanced features.\nTo access the console, repeatedly tap (or click) the Techmino logo or press the C key on the keyboard on the main menu.\n\nCareless actions in the console may result in corrupting or losing saved data. Proceed at your own risk.",
},
@@ -1100,12 +1100,12 @@ return{
--English
{"SFX",
"soundeffects",
"sfx soundeffects",
"english",
"Acronym for \"Sound Effects\".",
},
{"BGM",
"backgroundmusic",
"bgm backgroundmusic",
"english",
"Acronym for \"Background Music\".",
},
@@ -1122,7 +1122,7 @@ return{
--Famous
{"Hebomai",
"hbm",
"hebomai hbm",
"name",
"One of the top players.\nOnce Beat Wu Songhao (a Chinese player) on TV.",
},
@@ -1132,52 +1132,52 @@ return{
"(あめみや たいよう)\n\nOne of the top players.\nWon champion on a game in Puyo Puyo Tetris's Swap mode.",
},
{"Ajanba",
"ajb",
"ajanba ajb",
"name",
"One of the top players.\nWon champion of JsCup.",
},
{"Blink",
"",
"blink",
"name",
"One of the top players.\nRuns the Tetris community, Hard Drop.",
},
{"Doremy",
"123",
"doremy 123",
"name",
"One of the top players.\nAmemiya once said he was the second-best player in the world.",
},
{"Firestorm",
"fst",
"firestorm fst",
"name",
"One of the top players.\nWon champion of JsCup.",
},
{"Furea",
"flare fuleiya jk",
"furea fuleiya jk",
"name",
"(ふれあ)\n\nOne of the top players.\nWorld record holder of Puyo Puyo Tetris's Ultra mode.",
},
{"Iljain",
"yijianlian",
"iljain yijianlian",
"name",
"One of the top players.\nAchieved Rank 1 in Cultris II.",
},
{"Jonas",
"",
"jonas",
"name",
"(1981-2021) One of the top players in Classic Tetris.\nFour-times-in-a-row champion of CTWC.",
},
{"Joseph",
"",
"joseph",
"name",
"One of the top players in Classic Tetris.\nTwice-in-a-row champion of CTWC. Also holds many world records of Tetris (NES, Nintendo).",
},
{"Kazu",
"mdking",
"kazu mdking",
"name",
"One of the top players.\nFamous for how he can turn misdrops into donation setups.\nA.k.a. \"GAMEOVER\", \"GAMAOVER\", \"GAME_OVER_RETRY\"",
},
{"Microblizz",
"",
"microblizz",
"name",
"One of the top players.\nFormer world record holder for Sprint.",
},
@@ -1192,7 +1192,7 @@ return{
"One of the top players.\nFamously fond of using Center 4-Wide setups, thus having a bad reputation. However, he is undeniably skilled in other techniques as well.",
},
{"Yakine",
"",
"yakine heshui",
"name",
"One of the top players.\nFamous for fancy T-Spins. When in combat but not in danger, he could often pull off some fancy donations very high on the field. Third place on the speed leaderboards of Jstris's 20TSD mode, and didn't use setups (the first and second place both used LST setup).",
},
@@ -1202,7 +1202,7 @@ return{
"Starting from here, all but one term are China-specific (the not-China term is Diao) and are less relevant for the global community.\n\"Virtual content creator\" refers to people who produce content online under a fictional persona, and appear as a motion-controlled animated character on screens. Basically \"Virtual YouTuber\" but not platform-specific."
},
{"TetroDictionary",
"zictionary littlez",
"zictionary tetrodictionary littlez",
"name",
"(or Zictionary for short) The name of this dictionary!\nIt includes brief introductions on many common terms in Tetris.\nIt used to be a chatbot in our QQ group, which was used to answer new player's FAQs. The entries in the Tetrodictionary were also inherited from the database in the chatbot.\nThe contents in the TetroDictionary was adapted from a variety of sources such as Tetris Wiki and Hard Drop Wiki.",
},
@@ -1214,25 +1214,25 @@ return{
},
{"Circu1ation",
"",
"circu1ation",
"name",
"One of the top players. First one to achieve sub-20 40L Sprint in China, X rank on TETR.IO.",
"https://space.bilibili.com/557547205",
},
{"Farter",
"",
"farteryhr",
"name",
"Tetris Research community member.\nPersonal bests: Sprint 26.193 seconds\nOne of the prestigious players in the Chinese Tetris community. Author of T-ex and Tetr.js Farter's Dig Mod.",
"https://space.bilibili.com/132966",
},
{"Teatube",
"ttb chaguan chanaiye sifangchaye 022",
"teatube ttb chaguan chanaiye sifangchaye 022",
"name",
"Administrator of the Tetris Research community, Operator of the Tetris Online Study private server, chief editor of the Huiji wiki.\nPersonal bests: Sprint 33 seconds.",
"https://space.bilibili.com/834903",
},
{"Sniraite",
"",
"sniraite",
"name",
"Tetris Research community member.\nPersonal bests: Sprint 23 seconds\nOne of the top players in China. Should be the fastest player in Mainland China.",
"https://space.bilibili.com/561589",
@@ -1243,7 +1243,7 @@ return{
"Tetris Research community member.\nMain organizer for competitions in the community.",
},
{"Flyz",
"fxg",
"flyz fxg",
"name",
"Tetris Research community member.\nA technical player.",
"https://space.bilibili.com/787096",
@@ -1260,12 +1260,12 @@ return{
"(Yùn Kōng Zhī Líng)Tetris Research community member.\nPersonal bests: Sprint 33 seconds.\nDecent efficiency. Can't eat spicy food. Often uses TKI 3, Albatross and PC opener.",
"https://space.bilibili.com/9964553",
},
-- {"Mono",
-- "dongxi",
-- "name",
-- "Tetris Research community member.\nWe seem to have lost some information about this individual, but you should still be able to find her in one of the voice packs in Techmino.",
-- "https://space.bilibili.com/1048531896",
-- },
{"Mono",
"mono dongxi",
"name",
"Tetris Research community member.\nWe seem to have lost some information about this individual, but you should still be able to find her in one of the voice packs in Techmino.",
"https://space.bilibili.com/1048531896",
},
{"奏之章",
"zzz zouzhizhang",
"name",
@@ -1291,31 +1291,31 @@ return{
"https://space.bilibili.com/1471400",
},
{"Mifu",
"swl",
"mifu swl nanmaomao",
"name",
"Originally known as swl.\nPersonal bests: Sprint 28.445 seconds, Tetris Research community member.\nMiya's Tetris coach. Miya made an animated character art for him called Mifu, meaning \"Miya's Shifu\".",
"https://space.bilibili.com/109356367",
},
{"ZXC",
"thtsod flag ctf",
"zxc thtsod flag ctf",
"name",
"Also known as ThTsOd.\nTetris Research community member.\nA technical player.",
"https://space.bilibili.com/4610502",
},
{"Tinko",
"",
"tinko",
"name",
"Tetris Research community member.\nA technical player.",
"https://tinko.moe",
},
{"T0722",
"",
{"T722",
"722",
"name",
"Tetris Research community member.\nMusic Composer.",
"Tetris Research community member.\nMusician.",
"https://space.bilibili.com/30452985",
},
{"Diao",
"",
"diao",
"name",
"Tetris Research community member.\nOne of the top battle players. Won second place in JsCup, champion in TTT, champion in HDO XII.\nHas many former nicknames including nmdtql, diao, nanami.",
"https://space.bilibili.com/471341780",
@@ -1327,7 +1327,7 @@ return{
"https://space.bilibili.com/403250559",
},
{"Particle_G",
"pg",
"particleg pg",
"name",
"Tetris Research community member.\nSprint 59.4 seconds\nThe developer of Techmino backend",
"https://space.bilibili.com/3306106",
@@ -1339,13 +1339,13 @@ return{
"https://space.bilibili.com/263909369",
},
{"子心Koishi",
"",
"koishi",
"name",
"(Zǐ Xīn Koishi)\n\nTetris Research community member, Virtual content creator.\nA top Tetris 99 players known for his strategies.",
"https://space.bilibili.com/147529",
},
{"ditoly",
"icrem kuimei jk",
"ditoly icrem kuimei jk",
"name",
"Tetris Research community member. The developer of Nanamino.",
"https://space.bilibili.com/13014410",
@@ -1356,7 +1356,7 @@ return{
"(Lán Lǜ)\n\nTetris Research community member.\nParticipant of $1",--Techmino backend
},
{"喵田弥夜Miya",
"miaotianmiye",
"miya miaotianmiye",
"name",
"(Miāo Tián Mí Yè Miya)\n\nTetris Research community member, Virtual content creator.\nPractically the mascot of the community. Voice actress of Techmino.",
"https://space.bilibili.com/846180",

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,6 @@ return{
loadSample="Loading instrument samples",
loadVoice="Loading voice packs",
loadFont="Loading fonts",
loadModeIcon="Loading mode icons",
loadMode="Loading modes",
loadOther="Loading other assets",
finish="Press any key to start!",
@@ -138,7 +137,8 @@ return{
chatStart="------Beginning of log------",
chatHistory="------New messages below------",
keySettingInstruction="Press to bind key\nescape: cancel\nbackspace: delete",
searchModeHelp="Type to search",
keySettingHelp="Press to bind key\nescape: cancel\nbackspace: delete",
customBGhelp="Drop image file here to apply custom background",
customBGloadFailed="Unsupport image format for custom background",
@@ -210,99 +210,19 @@ return{
FNNS and"/"or"Check Zictionary for more",
},
staff={
"ORIGINALLY BY MrZ",
"E-mail: 1046101471@qq.com",
"Author: MrZ Email: 1046101471@qq.com",
"Powered by LÖVE",
"",
"Programmed, Developed, And Designed By",
"MrZ",
"Program: MrZ, Particle_G, [scdhh, FinnTenzor]",
"Art: MrZ, Gnyar, C₂₉H₂₅N₃O₅, ScF, [旋律星萤, T0722]",
"Music: MrZ, 柒栎流星, ERM, Trebor, C₂₉H₂₅N₃O₅, [T0722, Aether]",
"Voice & Sound: Miya, Xiaoya, Mono, MrZ, Trebor",
"Performance: 模电, HBM",
"Translations: User670, MattMayuga, Mizu, Mr.Faq, ScF, C₂₉H₂₅N₃O₅, NOT_A_ROBOT",
"",
"Music Made Using",
"Beepbox",
"FL Studio",
"FL Mobile",
"Logic Pro X",
"",
"[POWERED BY LÖVE]",
"",
"Programming",
"MrZ",
"ParticleG",
"Gompyn",
"Trebor",
"(scdhh)",
"(FinnTenzor)",
"(NOT_A_ROBOT)",
"(user670)",
"",
"GitHub CI, Packaging & Backend",
"ParticleG",
"Trebor",
"LawrenceLiu",
"Gompyn",
"flaribbit",
"scdhh",
"",
"Visual Designs, UI & UX",
"MrZ",
"Gnyar",
"C₂₉H₂₅N₃O₅",
"ScF",
"(旋律星萤)",
"(T0722)",
"",
"Musical Designs",
"MrZ",
"柒栎流星",
"ERM",
"Trebor",
"C₂₉H₂₅N₃O₅",
"(T0722)",
"(Aether)",
"(Hailey)",
"",
"Sound Effects & Voice Packs",
"Miya",
"Xiaoya",
"Mono",
"MrZ",
"Trebor",
"",
"Translations & Localizations",
"User670",
"MattMayuga",
"Mizu",
"Mr.Faq",
"ScF",
"C₂₉H₂₅N₃O₅",
"NOT_A_ROBOT",
"sakurw",
"",
"Performances",
"Electric283",
"Hebomai",
"",
"Special Thanks to",
"Flyz",
"Big_True",
"NOT_A_ROBOT",
"思竣",
"yuhao7370",
"Farter",
"Teatube",
"蕴空之灵",
"T9972",
"No-Usernam8",
"andrew4043",
"smdbs-smdbs",
"paoho",
"Allustrate",
"Haoran SUN",
"Tianling Lyu",
"huaji2369",
"Lexitik",
"Tourahi Anime",
"[All other test staff]",
"…And You!",
"Special Thanks:",
"Flyz, Big_True, NOT_A_ROBOT, 思竣, yuhao7370",
"Farter, Teatube, 蕴空之灵, T9972, [All test staff]",
},
used=[[
Tools used:
@@ -332,9 +252,8 @@ return{
sprint="Sprint",
marathon="Marathon",
},
mode={
modeExplorer={
mod="Mods (F1)",
start="Start",
},
mod={
title="Mods",

View File

@@ -127,7 +127,8 @@ return{
chatStart="------Comienzo del historial------",
chatHistory="------Nuevos mensajes------",
keySettingInstruction="Pulsa la tecla a mapear\nEsc.: Cancelar\nBackspace: Borrar",
-- searchModeHelp="Type to search",
keySettingHelp="Pulsa la tecla a mapear\nEsc.: Cancelar\nBackspace: Borrar",
customBGhelp="Suelta una imagen aquí para aplicarla de fondo",
customBGloadFailed="Formato de imagen no soportado",
@@ -175,7 +176,21 @@ return{
FNNS and"/"or"Por favor descarga las últimas versiones desde los sitios oficiales. El juego es gratuito",
FNNS and"/"or"Ve el Zictionary (en inglés) para más info",
},
staff={
"Autor:MrZ Email: 1046101471@qq.com",
"Creado con LÖVE",
"",
"Programación: MrZ, Particle_G, [scdhh, FinnTenzor]",
"Artistas: MrZ, Gnyar, C₂₉H₂₅N₃O₅, ScF, [旋律星萤, T0722]",
"Música: MrZ, 柒栎流星, ERM, Trebor, C₂₉H₂₅N₃O₅, [T0722, Aether]",
"Voces/Sonidos: Miya, Xiaoya, Mono, MrZ, Trebor",
"Performance: 模电, HBM",
"Traducción: User670, MattMayuga, Mizu, Mr.Faq, ScF, C₂₉H₂₅N₃O₅, NOT_A_ROBOT",
"",
"Agradecimientos:",
"Flyz, Big_True, NOT_A_ROBOT, 思竣, yuhao7370",
"Farter, Teatube, 蕴空之灵, T9972, [Todo el Staff de Testeo]",
},
used=[[
Herramientas utilizadas:
Beepbox
@@ -204,9 +219,8 @@ return{
sprint="Sprint",
marathon="Maratón",
},
mode={
modeExplorer={
mod="Mods (F1)",
start="Empezar",
},
mod={
title="Mods",

View File

@@ -128,7 +128,8 @@ return{
chatStart="--------Début des logs--------",
chatHistory="-Nouveaux messages en dessous-",
-- keySettingInstruction="Press to bind key\nescape: cancel\nbackspace: delete",
-- searchModeHelp="Type to search",
-- keySettingHelp="Press to bind key\nescape: cancel\nbackspace: delete",
-- customBGhelp="Drop image file here to apply custom background",
-- customBGloadFailed="Unsupport image format for custom background",
@@ -176,99 +177,19 @@ return{
-- FNNS and"/"or"Check Zictionary for more",
},
staff={
"À L'ORIGINE PAR MrZ",
"E-mail: 1046101471@qq.com",
"Author: MrZ E-mail: 1046101471@qq.com",
"Powered by LÖVE",
"",
"Programmé, Développé et Conçu Par",
"MrZ",
"Programme : MrZ, Particle_G, [scdhh, FinnTenzor]",
"Art : MrZ, Gnyar, C₂₉H₂₅N₃O₅, ScF, [旋律星萤, T0722]",
"Musique : MrZ, 柒栎流星, ERM, Trebor, C₂₉H₂₅N₃O₅, [T0722, Aether]",
"Voix & Sons: Miya, Xiaoya, Mono, MrZ, Trebor",
"Performance: 模电, HBM",
"Traduction: User670, MattMayuga, Mizu, Mr.Faq, ScF, C₂₉H₂₅N₃O₅, NOT_A_ROBOT",
"",
"Musique Réalisée à L'aide de",
"Beepbox",
"FL Studio",
"FL Mobile",
"Logic Pro X",
"",
"[POWERED BY LÖVE]",
"",
"Programme",
"MrZ",
"ParticleG",
"Gompyn",
"Trebor",
"(scdhh)",
"(FinnTenzor)",
"(NOT_A_ROBOT)",
"(user670)",
"",
"GitHub CI, Emballage & back-end",
"ParticleG",
"Trebor",
"LawrenceLiu",
"Gompyn",
"flaribbit",
"scdhh",
"",
"Conceptions Visuelles, UI & UX",
"MrZ",
"Gnyar",
"C₂₉H₂₅N₃O₅",
"ScF",
"(旋律星萤)",
"(T0722)",
"",
"Conceptions Musicales",
"MrZ",
"柒栎流星",
"ERM",
"Trebor",
"C₂₉H₂₅N₃O₅",
"(T0722)",
"(Aether)",
"(Hailey)",
"",
"Effets Sonores & Packs Vocaux",
"Miya",
"Xiaoya",
"Mono",
"MrZ",
"Trebor",
"",
"Traductions & Localisations",
"User670",
"MattMayuga",
"Mizu",
"Mr.Faq",
"ScF",
"C₂₉H₂₅N₃O₅",
"NOT_A_ROBOT",
"sakurw",
"",
"Performance",
"Electric283",
"Hebomai",
"",
"Merci à",
"Flyz",
"Big_True",
"NOT_A_ROBOT",
"思竣",
"yuhao7370",
"Farter",
"Teatube",
"蕴空之灵",
"T9972",
"No-Usernam8",
"andrew4043",
"smdbs-smdbs",
"paoho",
"Allustrate",
"Haoran SUN",
"Tianling Lyu",
"huaji2369",
"Lexitik",
"Tourahi Anime",
"[All other test staff]",
"…And You!",
"Merci à:",
"Flyz, Big_True, NOT_A_ROBOT, 思竣, yuhao7370",
"Farter, Teatube, 蕴空之灵, T9972, [All test staff]",
},
used=[[
Outils utilisés:
@@ -294,9 +215,8 @@ return{
dict="Zictionary",
-- replays="Replays",
},
mode={
modeExplorer={
mod="Mods (F1)",
start="Démarrer",
},
mod={
title="Mods",

View File

@@ -6,7 +6,6 @@ return{
loadSample="Memuat sampel-sampel instrumen",
loadVoice="Memuat kumpulan suara",
loadFont="Memuat fon",
loadModeIcon="Memuat ikon-ikon mode",
loadMode="Memuat mode-mode",
loadOther="Memuat aset-aset yang lain",
finish="Tekan tombol apapun untuk memulai!",
@@ -139,7 +138,8 @@ return{
chatStart="------Awal percakapan------",
chatHistory="------Pesan-pesan baru di bawah ini------",
keySettingInstruction="Tekan untuk menghubung tombol ke aksi tertentu\nescape: batal\nbackspace: hapus",
-- searchModeHelp="Type to search",
keySettingHelp="Tekan untuk menghubung tombol ke aksi tertentu\nescape: batal\nbackspace: hapus",
customBGhelp="Seret file gambar di sini untuk memasangkan background",
customBGloadFailed="Format file gambar tidak didukung untuk background",
@@ -211,99 +211,19 @@ return{
-- FNNS and"/"or"Check Zictionary for more",
},
staff={
"ASLI OLEH MrZ",
"E-mail: 1046101471@qq.com",
"Pencipta: MrZ Email: 1046101471@qq.com",
"Dipersembahkan oleh kerangka permainan LÖVE",
"",
"Diprogram, Dikembangkan, Dan Dirancang Oleh",
"MrZ",
"Program: MrZ, Particle_G, [scdhh, FinnTenzor]",
"Penggambar: MrZ, Gnyar, C₂₉H₂₅N₃O₅, ScF, [旋律星萤, T0722]",
"Musik: MrZ, 柒栎流星, ERM, Trebor, C₂₉H₂₅N₃O₅, [T0722, Aether]",
"Suara: Miya, Xiaoya, Mono, MrZ, Trebor",
"Pertunjukan: 模电, HBM",
"Translasi: User670, MattMayuga, Mizu, Mr.Faq, ScF, C₂₉H₂₅N₃O₅, NOT_A_ROBOT",
"",
"Musik Dibuat Menggunakan",
"Beepbox",
"FL Studio",
"FL Mobile",
"Logic Pro X",
"",
"[POWERED BY LÖVE]",
"",
"Pemrograman",
"MrZ",
"ParticleG",
"Gompyn",
"Trebor",
"(scdhh)",
"(FinnTenzor)",
"(NOT_A_ROBOT)",
"(user670)",
"",
"GitHub CI, Pengemasan & Backend",
"ParticleG",
"Trebor",
"LawrenceLiu",
"Gompyn",
"flaribbit",
"scdhh",
"",
"Desain Visual, UI & UX",
"MrZ",
"Gnyar",
"C₂₉H₂₅N₃O₅",
"ScF",
"(旋律星萤)",
"(T0722)",
"",
"Desain Musik",
"MrZ",
"柒栎流星",
"ERM",
"Trebor",
"C₂₉H₂₅N₃O₅",
"(T0722)",
"(Aether)",
"(Hailey)",
"",
"Efek Suara & Pak Suara",
"Miya",
"Xiaoya",
"Mono",
"MrZ",
"Trebor",
"",
"Terjemahan & Lokalisasi",
"User670",
"MattMayuga",
"Mizu",
"Mr.Faq",
"ScF",
"C₂₉H₂₅N₃O₅",
"NOT_A_ROBOT",
"sakurw",
"",
"Pertunjukan",
"Electric283",
"Hebomai",
"",
"Terima Kasih Khusus",
"Flyz",
"Big_True",
"NOT_A_ROBOT",
"思竣",
"yuhao7370",
"Farter",
"Teatube",
"蕴空之灵",
"T9972",
"No-Usernam8",
"andrew4043",
"smdbs-smdbs",
"paoho",
"Allustrate",
"Haoran SUN",
"Tianling Lyu",
"huaji2369",
"Lexitik",
"Tourahi Anime",
"[All other test staff]",
"…And You!",
"Terima Kasih Khusus:",
"Flyz, Big_True, NOT_A_ROBOT, 思竣, yuhao7370",
"Farter, Teatube, 蕴空之灵, T9972, [All test staff]",
},
used=[[
Alat-alat yang digunakan:
@@ -333,9 +253,8 @@ return{
sprint="Balapan",
marathon="Maraton",
},
mode={
modeExplorer={
mod="Mod (F1)",
start="Mulai",
},
mod={
title="Mod",

View File

@@ -1,987 +0,0 @@
local C=COLOR
return{
fallback='en',
loadText={
loadSFX="Loading Sound Effects",
loadSample="Loading Instrument Samples",
loadVoice="Loading Voice Packs",
loadFont="Loading Fonts",
loadModeIcon="Loading Mode Icons",
loadMode="Loading Modes",
loadOther="Loading Other Assets",
finish="Press Any Key to Start!",
},
sureQuit="終了するにはもう一度押してください",
sureReset="リセットするにはもう一度押してください",
sureDelete="削除するにはもう一度押してください",
newDay="新しい1日、新しい始まりです!",
playedLong="長時間プレイしています、適度に休憩を",
playedTooMuch="かなり長くプレイしています! Techminoは楽しいですが、休憩を忘れずに!",
settingWarn="注意: 通常ではない設定に変更しました!",
atkModeName={"ランダム","バッジ狙い","ととめうち","カウンター"},
royale_remain="残り $1 人",
powerUp={[0]="+000%","+025%","+050%","+075%","+100%"},
cmb={nil,"1 REN","2 REN","3 REN","4 REN","5 REN","6 REN","7 REN","8 REN","9 REN","10 REN!","11 REN!","12 REN!","13 REN!","14 REN!!","15 REN!!","16 REN!!","17 REN!!!","18 REN!!!","19 REN!!!","MEGAREN"},
spin="-spin",
clear={"Single","Double","Triple","Techrash","Pentacrash","Hexacrash","Heptacrash","Octacrash","Nonacrash","Decacrash","Undecacrash","Dodecacrash","Tridecacrash","Tetradecacrash","Pentadecacrash","Hexadecacrash","Heptadecacrash","Octadecacrash","Nonadecacrash","Ultracrash","Impossicrash"},
cleared="$1 Lines",
mini="Mini",b2b="B2B ",b3b="B2B2B ",
PC="Perfect Clear",HPC="Hemi-Perfect Clear",
replaying="[Replay]",
tasUsing="[TAS]",
stage="Stage $1 Cleared!",
great="Great!",
awesome="Awesome!",
almost="Almost There!",
continue="Keep Going!",
maxspeed="MAX SPEED!",
speedup="Speed Up!",
missionFailed="Wrong Clear",
speedLV="Speed Level",
piece="Piece",line="Lines",atk="火力",eff="効率",
rpm="RPM",tsd="TSD",
grade="Grade",techrash="Techrash",
wave="Wave",nextWave="Next",
combo="REN",maxcmb="Max REN",
pc="Perfect Clear",ko="KOs",
win="Win!",
lose="Lose",
finish="Finished",
gamewin="You Won",
gameover="Game Over",
pause="Pause",
pauseCount="Pause回数",
finesse_ap="All Perfect",
finesse_fc="Full Combo",
page="Page:",
cc_fixed="CCは、固定されたミ順には非対応です",
cc_swap="ホールドがSwapの時、CCは非対応です",
ai_prebag="AIはテトロミではないものを含み、カスタムされたミ順には非対応です",
ai_mission="AIは、カスタムミッションに非対応です",
switchSpawnSFX="ブロック出現時のSFXをONにしてください!",
needRestart="すべての変更を適用するために再起動してください",
loadError_errorMode="'$1'の読み込みに失敗: ロードモード'$2'が存在しません",
loadError_read="'$1'の読み込みに失敗: 読み込みに失敗しました",
loadError_noFile="'$1'の読み込みに失敗: ファイルが存在しません",
loadError_other="'$1'の読み込みに失敗: $2",
loadError_unknown="'$1'の読み込みに失敗: 理由不明",
saveError_duplicate="'$1'の保存に失敗: 既に同じ名前のファイルがあります",
saveError_encode="'$1'の保存に失敗: エンコードエラー",
saveError_other="'$1'の保存に失敗: $2",
saveError_unknown="'$1'の読み込みに失敗: 理由不明",
copyDone="コピーしました!",
saveDone="データを保存しました!",
exportSuccess="出力成功!",
importSuccess="入力成功!",
dataCorrupted="データが破損してます",
pasteWrongPlace="貼り付ける位置が間違ってませんか?",
noFile="ファイルがないです",
nowPlaying="Now playing:",
VKTchW="タッチ感度",
VKOrgW="オリジナル感度",
VKCurW="現在の配置",
noScore="No scores",
modeLocked="Locked",
unlockHint="Rank B以上を取得すると解放されます",
highScore="High Scores",
newRecord="New Record!",
replayBroken="リプレイが読み込めません",
dictNote="==TetroDictionaryからコピーしました==",
getNoticeFail="お知らせ情報が取得できませんでした",
oldVersion="Version $1が取得できます",
needUpdate="最新のVersionを取得してください!",
versionNotMatch="Versionsが一致しません!",
notFinished="工事中!",
jsonError="JSON Error",
noUsername="ユーザーネームを入力してください",
wrongEmail="メールアドレスが無効です",
noPassword="パスワードを入力してください",
diffPassword="パスワードが一致しません",
registerRequestSent="Sign Upリクエストを送信しました",
registerSuccessed="Sign Up成功!",
loginSuccessed="ログインしています!",
accessSuccessed="アクセス権限を取得しました",
wsConnecting="Websocket connecting…",
wsFailed="WebSocket Connection Failed",
wsClose="WebSocket Closed:",
netTimeout="接続がタイムアウトしました",
onlinePlayerCount="Online",
createRoomSuccessed="部屋を建てました",
started="Playing",
joinRoom="が入室しました",
leaveRoom="が退出しました",
ready="Ready",
connStream="接続中……",
waitStream="待機中……",
spectating="Spectating",
chatRemain="Online",
chatStart="------チャットの先頭------",
chatHistory="------新しいメッセージ------",
keySettingInstruction="選択してキーを入力\nEscape: キャンセル\nBackspace: キーを削除",
customBGhelp="カスタム背景にする画像ファイルをドロップ",
customBGloadFailed="サポートされていないフォーマットのファイルです",
errorMsg="問題が発生しました、エラーログを開発者に送り、再起動してください",
tryAnotherBuild="[Invalid UTF-8]使用しているOSがMicrosoft WindowsであればTechmino-win32かTechmino-win64をダウンロードしてください (現在使用しているものは違うものです)",
modInstruction="Modを選択してください!\nModはゲームの中身を変えます\nしかしゲームが破損することもあります\nModを使用した場合スコアは保存されません",
modInfo={
next="NEXT\nNEXTの個数を変更します",
hold="HOLD\nHOLDの個数を変更します",
hideNext="Hidden NEXT\n指定した数だけNEXTを隠します",
infHold="InfiniHold\nHOLDできる回数を無限にします",
hideBlock="Hide Current Piece:\n現在出現しているピースを隠します",
hideGhost="No Ghost\nゴーストを消します",
hidden="Hide Locked Pieces.\n設置されたピースが時間内に見えなくなります",
hideBoard="Hide Board\n盤面の一部もしくは、全体を隠します",
flipBoard="Flip Board\n盤面が回転もしくは滑ります",
dropDelay="Gravity\n落下速度をフレーム単位で変更します",
lockDelay="Lock Delay\n設置猶予をフレーム単位で変更します",
waitDelay="Spawn Delay\nブロックの出現猶予をフレーム単位で変更します",
fallDelay="Line Clear Delay\nLine消去時間をフレーム単位で変更します",
life="Life\n残機数を変更します",
forceB2B="B2B Only\nB2Bが途切れるとゲームオーバーです",
forceFinesse="Finesse Only\n最適化を失敗するとゲームオーバーです",
tele="Teleport\nDAS: 0, ARR: 0になります",
noRotation="No Rotation\n回転出来なくなります",
noMove="No Movement\n左右移動が出来なくなります",
customSeq="Randomizer\nミノの出現法則を変更します",
pushSpeed="Garbage Speed\n下穴がせり上がるまでに置けるブロック数を変更します (ブロック数/フレーム)",
boneBlock="[ ]\n[ ]ブロックで遊ぼう",
},
pauseStat={
"Time:",
"入力/回転/Hold:",
"Pieces:",
"Row/Dig:",
"Attack/DigAtk:",
"Received:",
"Line消去数:",
"Spins:",
"B2B/B3B/PC/HPC:",
"最適化:",
},
radar={"DEF","OFF","ATK","SEND","SPD","DIG"},
radarData={"DPM","ADPM","APM","SPM","LPM","DPM"},
stat={
"起動回数:",
"プレイ回数:",
"プレイ時間:",
"入力/回転/Hold:",
"Block/Row/Atk.:",
"Recv./Res./Asc.:",
"Dig/Dig Atk:",
"Eff/Dig Eff:",
"B2B/B3B:",
"PC/HPC:",
"最適化ミス/Rate:",
},
aboutTexts={
"これは“ただの”落ちものパズルゲームです。本当ですよ",
"Inspired by C2/IO/JS/WWC/KOS etc.",
"",
"Powered by LÖVE",
"ご意見、ご感想、バグ報告など大歓迎です!",
"ゲームは、必ず公式から入手してください",
"他から入手した場合は、安全性を保証しません",
"同時に作者は、責任を負いません",
FNNS and"/"or"ゲーム自体は、無料ですが寄付をお願いします",
FNNS and"/"or"詳しくはZictionaryをご覧ください",
},
staff={
"ORIGINALLY BY MrZ",
"E-Mail: 1046101471@qq.com",
"",
"プログラム、開発、デザイン",
"MrZ",
"",
"楽曲作成ツール",
"Beepbox",
"FL Studio",
"FL Mobile",
"Logic Pro X",
"",
"[POWERED BY LÖVE]",
"",
"プログラミング",
"MrZ",
"ParticleG",
"Gompyn",
"Trebor",
"(scdhh)",
"(FinnTenzor)",
"(NOT_A_ROBOT)",
"(user670)",
"",
"GitHub CI、パッケージングとバックエンド",
"ParticleG",
"Trebor",
"LawrenceLiu",
"Gompyn",
"flaribbit",
"scdhh",
"",
"ビジュアルデザイン、UIとUX",
"MrZ",
"Gnyar",
"C₂₉H₂₅N₃O₅",
"ScF",
"(旋律星萤)",
"(T0722)",
"",
"ミュージカルデザイン",
"MrZ",
"柒栎流星",
"ERM",
"Trebor",
"C₂₉H₂₅N₃O₅",
"(T0722)",
"(Aether)",
"(Hailey)",
"",
"SFXとボイスパック",
"Miya",
"Xiaoya",
"Mono",
"MrZ",
"Trebor",
"",
"翻訳とローカリゼーション",
"User670",
"MattMayuga",
"Mizu",
"Mr.Faq",
"ScF",
"C₂₉H₂₅N₃O₅",
"NOT_A_ROBOT",
"",
"パフォーマンス",
"Electric283",
"Hebomai",
"",
"Special Thanks",
"Flyz",
"Big_True",
"NOT_A_ROBOT",
"思竣",
"yuhao7370",
"Farter",
"Teatube",
"蕴空之灵",
"T9972",
"No-Usernam8",
"andrew4043",
"smdbs-smdbs",
"paoho",
"Allustrate",
"Haoran SUN",
"Tianling Lyu",
"huaji2369",
"Lexitik",
"Tourahi Anime",
"[All other test staff]",
"…And You!",
},
used=[[
Tools used:
BeepBox
GoldWave
GFIE
FL Mobile
Libs used:
Cold_Clear [MinusKelvin]
json.lua [rxi]
profile.lua [itraykov]
simple-love-lights [dylhunn]
]],
support="Support the Author",
WidgetText={
main={
offline="ソロプレイ",
qplay="続きから",
online="マルチプレイ",
custom="カスタムプレイ",
setting="設定",
stat="統計",
dict="Zictionary",
replays="リプレイ",
},
main_simple={
sprint="Sprint",
marathon="Marathon",
},
mode={
mod="Mods (F1)",
start="Start",
},
mod={
title="Mods",
reset="リセット (tab)",
unranked="Unranked",
},
pause={
setting="設定 (S)",
replay="リプレイ (P)",
save="保存 (O)",
resume="再開 (esc)",
restart="リスタート (R)",
quit="終了 (Q)",
tas="TAS (T)",
},
net_menu={
league="リーグ",
ffa="FFA",
rooms="クラブ",
logout="Log Out",
},
net_league={
match="対戦相手を探す",
},
net_rooms={
password="パスワード",
refreshing="探索中",
noRoom="部屋が存在しません",
refresh="更新",
new="部屋を建てる",
join="参加",
},
net_newRoom={
title="部屋設定",
roomName="部屋名 (デフォルト: \"[username]'s room\")",
password="パスワード",
description="部屋説明",
life="残機数",
pushSpeed="せり上がり速度",
garbageSpeed="せり上がり猶予",
visible="設置ミノの視認性",
freshLimit="設置時間のリセット回数",
fieldH="盤面の高さ",
bufferLimit="ダメージの保持上限",
heightLimit="致死Lineの高さ",
drop="自然落下時間",
lock="設置時間",
wait="操作硬直時間",
fall="Line消去時間",
hang="死後硬直時間",
hurry="AREキャンセル時間",
capacity="試合人数",
create="作成",
ospin="O-spin",
fineKill="最適化のみ",
b2bKill="B2B継続",
lockout="盤面内でのみ設置",
easyFresh="通常の設置時間リセット",
deepDrop="ディープドロップ",
bone="骨ブロック",
eventSet="ルール設定",
holdMode="Hold設定",
nextCount="Next",
holdCount="Hold",
infHold="Infinite Hold",
phyHold="In-place Hold",
},
net_game={
ready="Ready",
spectate="Spectate",
cancel="Cancel ready",
},
setting_game={
title="Game設定",
graphic="←Video",
sound="Audio→",
style="スタイル",
ctrl="チューニング",
key="キーコンフィグ",
touch="タッチ設定",
showVK="入力キーの可視化",
reTime="開始カウント",
RS="回転法則",
menuPos="メニューの位置",
sysCursor="システムカーソル",
autoPause="ゲーム中断時のオートポーズ",
autoSave="オートセーブ",
autoLogin="オートログイン",
simpMode="シンプルなホーム画面",
},
setting_video={
title="Video設定",
sound="←Audio",
game="Game→",
block="操作ブロックの描画",
smooth="滑らかな自然落下",
upEdge="3D Block",
bagLine="7-Bagの境界線",
ghostType="ゴーストタイプ",
ghost="ゴースト",
center="ブロック中心の透明度",
grid="グリッド",
lineNum="行番号",
lockFX="設置演出",
dropFX="落下演出",
moveFX="左右移動演出",
clearFX="Line消去演出",
splashFX="消去時の弾ける演出",
shakeFX="盤面移動演出",
atkFX="攻撃演出",
frame="レンダリングフレームレート(%)",
FTlock="フレームスキップ",
text="Line消去ポップ",
score="スコアポップ",
bufferWarn="ダメージアラート",
showSpike="スパイクカウンター",
nextPos="出現位置のプレビュー",
highCam="画面のスクロール",
warn="警告演出",
clickFX="クリック演出",
power="バッテリー",
clean="素早い描画",
fullscreen="フルスクリーン",
bg_on="通常背景",
bg_off="背景なし",
bg_custom="カスタム背景",
blockSatur="ブロックデザイン",
fieldSatur="設置ブロックデザイン",
},
setting_sound={
title="Audio設定",
game="←Game",
graphic="Video→",
mainVol="主音量",
bgm="BGM",
sfx="SFX",
stereo="ステレオ",
spawn="ブロックの出現音",
warn="警告音",
vib="振動",
voc="ボイス",
autoMute="ゲーム中断時のオートミュート",
fine="最適化失敗音",
sfxPack="SFXパック",
vocPack="ボイスパック",
apply="適用",
},
setting_control={
title="チューニング設定",
preview="preview",
das="DAS",arr="ARR",
dascut="DAS cut",
dropcut="Auto-lock cut",
sddas="Soft Drop DAS",sdarr="Soft Drop ARR",
ihs="Initial Hold",
irs="Initial Rotation",
ims="Initial Movement",
reset="リセット",
},
setting_key={
a1="Move Left",
a2="Move Right",
a3="Rotate Right",
a4="Rotate Left",
a5="Rotate 180°",
a6="Hard Drop",
a7="Soft Drop",
a8="Hold",
a9="Function 1",
a10="Function 2",
a11="Instant Left",
a12="Instant Right",
a13="Sonic Drop",
a14="Down 1",
a15="Down 4",
a16="Down 10",
a17="Left Drop",
a18="Right Drop",
a19="Left Zangi",
a20="Right Zangi",
restart="Retry",
},
setting_skin={
skinSet="ブロックスキン",
title="スタイル設定",
skinR="色をリセット",
faceR="方向をリセット",
},
setting_touch={
default="デフォルト",
snap="グリッドにスナップ",
size="サイズ",
shape="シャープ",
},
setting_touchSwitch={
b1= "Move Left:", b2="Move Right:", b3="Rotate Right:", b4="Rotate Left:",
b5= "Rotate 180°:", b6="Hard Drop:", b7="Soft Drop:", b8="Hold:",
b9= "Function 1:", b10="Function 2:", b11="Instant Left:", b12="Instant Right:",
b13="Sonic Drop:", b14="Down 1:", b15="Down 4:", b16="Down 10:",
b17="Left Drop:", b18="Right Drop:",b19="Left Zangi:", b20="Right Zangi:",
norm="Normal",
pro="Advanced",
icon="アイコン",
sfx="SFX",
vib="VIB",
alpha="Alpha",
track="オートトラック",
dodge="オートドッチ",
},
customGame={
title="カスタムプレイ",
defSeq="デフォルトのミノ順",
noMsn="ミッションなし",
drop="自然落下時間",
lock="設置時間",
wait="操作硬直時間",
fall="Line消去時間",
hang="死後硬直時間",
hurry="AREキャンセル時間",
bg="背景",
bgm="音楽",
copy="盤面+ミノ順+ミッションをコピー",
paste="盤面+ミノ順+ミッションを貼り付け",
play_clear="スタート",
play_puzzle="パズルをスタート",
reset="リセット (del)",
advance="More (A)",
mod="Mods (F1)",
field="盤面編集 (F)",
sequence="ミノ順編集 (S)",
mission="ミッション編集 (M)",
eventSet="ルール設定",
holdMode="Hold設定",
nextCount="Next",
holdCount="Hold",
infHold="Infinite Hold",
phyHold="In-place Hold",
fieldH="盤面の高さ",
visible="設置ミノの視認性",
freshLimit="設置時間のリセット回数",
opponent="相手",
life="残機数",
pushSpeed="せり上がり速度",
garbageSpeed="せり上がり猶予",
bufferLimit="ダメージの保持上限",
heightLimit="致死Lineの高さ",
ospin="O-Spin",
fineKill="最適化のみ",
b2bKill="B2B継続",
lockout="Fail on Lock Out",
easyFresh="通常の設置時間リセット",
deepDrop="Deep Drop",
bone="骨ブロック",
},
custom_field={
title="カスタムプレイ",
subTitle="盤面",
any="消しゴム",
smart="自動着色",
push="せり上がり (K)",
del="Line消去 (L)",
demo="×を非表示",
newPg="ページ追加 (N)",
delPg="ページ削除 (M)",
prevPg="",
nextPg="",
},
custom_sequence={
title="カスタムプレイ",
subTitle="ミノ順",
sequence="巡法則",
},
custom_mission={
title="カスタムプレイ",
subTitle="ミッション",
_1="1",_2="2",_3="3",_4="4",
any1="any1",any2="any2",any3="any3",any4="any4",
PC="PC",
Z1="Z1",S1="S1",J1="J1",L1="L1",T1="T1",O1="O1",I1="I1",
Z2="Z2",S2="S2",J2="J2",L2="L2",T2="T2",O2="O2",I2="I2",
Z3="Z3",S3="S3",J3="J3",L3="L3",T3="T3",O3="O3",I3="I3",
O4="O4",I4="I4",
mission="強制ミッション",
},
about={
staff="staff",
his="History",
legals="Legals",
},
dict={
title="TetroDictionary",
},
stat={
path="データフォルダ読み込み",
save="データ管理",
},
music={
title="music room",
arrow="",
now="Now Playing:",
bgm="BGM",
sound="SFXs",
},
launchpad={
title="SFX Room",
bgm="BGM",
sfx="SFX",
voc="VOC",
music="BGM",
label="ラベル",
},
login={
title="Sign In",
register="Sign Up",
email="Email Address",
password="Password",
keepPW="Remember me",
login="Log In",
},
register={
title="Sign Up",
login="Sign In",
username="ユーザーネーム",
email="メールアドレス",
password="パスワード",
password2="パスワード",
register="Sign Up",
registering="応答待機中...",
},
account={
title="アカウント",
},
app_15p={
color="Color",
invis="Invis",
slide="Slide",
pathVis="Show Path",
revKB="Reverse",
},
app_schulteG={
rank="Size",
invis="Invis",
disappear="Hide",
tapFX="Tap FX",
},
app_AtoZ={
level="Level",
keyboard="Keyboard",
},
app_2048={
invis="Invis",
tapControl="Tap controls",
skip="Skip Round",
},
app_ten={
next="Next",
invis="Invis",
fast="Fast",
},
app_dtw={
color="Color",
mode="Mode",
bgm="BGM",
arcade="Arcade",
},
app_link={
invis="Invis",
},
savedata={
export="クリップボードにコピー",
import="クリップボードからインポート",
unlock="進捗",
data="統計",
setting="設定",
vk="仮想キーレイアウト",
couldSave="クラウドに保存 (注意:テスト段階)",
notLogin="[クラウドにアクセス中]",
upload="アップロード",
download="ダウンロード",
},
},
modes={
['sprint_10l']= {"Sprint", "10L", "10 Line消去!"},
['sprint_20l']= {"Sprint", "20L", "20 Line消去!"},
['sprint_40l']= {"Sprint", "40L", "40 Line消去!"},
['sprint_100l']= {"Sprint", "100L", "100 Line消去!"},
['sprint_400l']= {"Sprint", "400L", "400 Line消去!"},
['sprint_1000l']= {"Sprint", "1,000L", "1,000 Line消去!"},
['sprintPenta']= {"Sprint", "PENTOMINO", "ペントミで40 Line消去!"},
['sprintMPH']= {"Sprint", "MPH", "ミノ順なし\nNextなし\nHoldなし"},
['dig_10l']= {"Dig", "10L", "10 Line下穴を消去"},
['dig_40l']= {"Dig", "40L", "40 Line下穴を消去"},
['dig_100l']= {"Dig", "100L", "100 Line下穴を消去"},
['dig_400l']= {"Dig", "400L", "400 Line下穴を消去"},
['drought_n']= {"Drought", "100L", "Iミノなし"},
['drought_l']= {"Drought+", "100L", " "},
['marathon_n']= {"Marathon", "NORMAL", "速くなる中200 Lineのマラソン"},
['marathon_h']= {"Marathon", "HARD", "速い中200 Lineのマラソン"},
['solo_e']= {"Battle", "EASY", "AI討伐!"},
['solo_n']= {"Battle", "NORMAL", "AI討伐!"},
['solo_h']= {"Battle", "HARD", "AI討伐!"},
['solo_l']= {"Battle", "LUNATIC", "AI討伐!"},
['solo_u']= {"Battle", "ULTIMATE", "AI討伐!"},
['techmino49_e']= {"Tech 49", "EASY", "49人で勝負\n最後の1人になれ!"},
['techmino49_h']= {"Tech 49", "HARD", "49人で勝負\n最後の1人になれ!"},
['techmino49_u']= {"Tech 49", "ULTIMATE", "49人で勝負\n最後の1人になれ!"},
['techmino99_e']= {"Tech 99", "EASY", "99人で勝負\n最後の1人になれ!"},
['techmino99_h']= {"Tech 99", "HARD", "99人で勝負\n最後の1人になれ!"},
['techmino99_u']= {"Tech 99", "ULTIMATE", "99人で勝負\n最後の1人になれ!"},
['round_e']= {"Turn-Based", "EASY", "ターン制のAIと勝負!"},
['round_n']= {"Turn-Based", "NORMAL", "ターン制のAIと勝負!"},
['round_h']= {"Turn-Based", "HARD", "ターン制のAIと勝負!"},
['round_l']= {"Turn-Based", "LUNATIC", "ターン制のAIと勝負!"},
['round_u']= {"Turn-Based", "ULTIMATE", "ターン制のAIと勝負!"},
['master_n']= {"Master", "NORMAL", "20G 初心者方へ"},
['master_h']= {"Master", "HARD", "20G プロの方へ"},
['master_m']= {"Master", "M21", "20G マスターの方へ"},
['master_final']= {"Master", "FINAL", "20G その先へ"},
['master_ph']= {"Master", "PHANTASM", "???"},
['master_ex']= {"GrandMaster", "EXTRA", "刹那よりも短い永遠"},
['master_instinct']={"Master", "INSTINCT", "もしミノが見えなくなったら?"},
['strategy_e']= {"Strategy", "EASY", "20Gでの素早い判断"},
['strategy_h']= {"Strategy", "HARD", "20Gでの素早い判断"},
['strategy_u']= {"Strategy", "ULTIMATE", "20Gでの素早い判断"},
['strategy_e_plus']={"Strategy", "EASY+", "20Gでの素早い判断"},
['strategy_h_plus']={"Strategy", "HARD+", "20Gでの素早い判断"},
['strategy_u_plus']={"Strategy", "ULTIMATE+", "20Gでの素早い判断"},
['blind_e']= {"Invisible", "HALF", "初心者用"},
['blind_n']= {"Invisible", "ALL", "中級者用"},
['blind_h']= {"Invisible", "SUDDEN", "上級者用"},
['blind_l']= {"Invisible", "SUDDEN+", "プロフェッショナル用"},
['blind_u']= {"Invisible", "?", "覚悟はいいかい?"},
['blind_wtf']= {"Invisible", "WTF", "まだ覚悟が足りない"},
['classic_e']= {"Classic", "EASY", "80年代を超低速で体験"},
['classic_h']= {"Classic", "HARD", "80年代を通常速度で体験"},
['classic_u']= {"Classic", "ULTIMATE", "80年代を超高速で体験"},
['survivor_e']= {"Survival", "EASY", "どれだけ生き残れる?"},
['survivor_n']= {"Survival", "NORMAL", "どれだけ生き残れる?"},
['survivor_h']= {"Survival", "HARD", "どれだけ生き残れる?"},
['survivor_l']= {"Survival", "LUNATIC", "どれだけ生き残れる?"},
['survivor_u']= {"Survival", "ULTIMATE", "どれだけ生き残れる?"},
['attacker_h']= {"Attacker", "HARD", "攻撃力を磨け!"},
['attacker_u']= {"Attacker", "ULTIMATE", "攻撃力を磨け!"},
['defender_n']= {"Defender", "NORMAL", "防御力を磨け!"},
['defender_l']= {"Defender", "LUNATIC", "防御力を磨け!"},
['dig_h']= {"Driller", "HARD", "回復力を磨け!"},
['dig_u']= {"Driller", "ULTIMATE", "回復力を磨け!"},
['clearRush']= {"Clear Rush", "NORMAL", "All-Spinチュートリアル!\n[開発中]"},
['c4wtrain_n']= {"C4W Training", "NORMAL", "無限コンボ"},
['c4wtrain_l']= {"C4W Training", "LUNATIC", "無限コンボ"},
['pctrain_n']= {"PC Training", "NORMAL", "パフェ練習"},
['pctrain_l']= {"PC Training", "LUNATIC", "もっと難しいパフェ練習"},
['pc_n']= {"PC Challenge", "NORMAL", "100 Line以内にパフェをたくさん!"},
['pc_h']= {"PC Challenge", "HARD", "100 Line以内にパフェをたくさん!"},
['pc_l']= {"PC Challenge", "LUNATIC", "100 Line以内にパフェをたくさん!"},
['pc_inf']= {"Inf. PC Challenge", "", "できる限りたくさんのパフェを"},
['tech_n']= {"Tech", "NORMAL", "B2Bを繋げ続けよう!"},
['tech_n_plus']= {"Tech", "NORMAL+", "回転入れとパフェだけ"},
['tech_h']= {"Tech", "HARD", "B2Bを続けよう!"},
['tech_h_plus']= {"Tech", "HARD+", "回転入れとパフェだけ"},
['tech_l']= {"Tech", "LUNATIC", "回転入れとパフェだけ"},
['tech_l_plus']= {"Tech", "LUNATIC+", "回転入れとパフェだけ"},
['tech_finesse']= {"Tech", "FINESSE", "最適化!"},
['tech_finesse_f']= {"Tech", "FINESSE+", "最適化はそのまま、普通のLine消去禁止!"},
['tsd_e']= {"TSD Challenge", "EASY", "TSDだけ!"},
['tsd_h']= {"TSD Challenge", "HARD", "TSDだけ!"},
['tsd_u']= {"TSD Challenge", "ULTIMATE", "TSDだけ!"},
['backfire_n']= {"Backfire", "NORMAL", "撃った火力が戻ってくる"},
['backfire_h']= {"Backfire", "HARD", "撃った火力が戻ってくる"},
['backfire_l']= {"Backfire", "LUNATIC", "撃った火力が戻ってくる"},
['backfire_u']= {"Backfire", "ULTIMATE", "撃った火力が戻ってくる"},
['sprintAtk']= {"Sprint", "100 Attack", "100 Line送れ!"},
['sprintEff']= {"Sprint", "Efficiency", "40 Lineの間にできるだけ火力を出せ!"},
['zen']= {'Zen', "200", "時間制限なしで200 Line消去"},
['ultra']= {'Ultra', "EXTRA", "2分間のスコアアタック"},
['infinite']= {"Infinite", "", "ただのサンドボックス"},
['infinite_dig']= {"Infinite: Dig", "", "掘れ掘れ掘れ"},
['marathon_inf']= {"Marathon", "INFINITE", "マラソン"},
['custom_clear']= {"Custom", "NORMAL"},
['custom_puzzle']= {"Custom", "PUZZLE"},
},
getTip={refuseCopy=true,
":pog:",
"(RUR'U')R'FR2U'R'U'(RUR'F')",
"“Techmino.app”は、開発元を検証できないためあけません。",
"“Techmino.app”を開くとコンピュータが破損します。ゴミ箱に入れる必要があります。",
"\"TechminOS\"",
"\\jezevec/\\jezevec/\\jezevec/",
"\\osk/\\osk/\\osk/",
"↑↑↓↓←→←→BA",
"$include<studio.h>",
"0next 0hold.",
"100Line以内に23PC?",
"1next 0hold",
"1next 1hold!",
"1next 6hold!",
"20Gは全く新しい種類のゲームルールです!",
"20PCって何?",
"26TSDって何?",
"2つの回転を使ってみよう、3つ使うとさらにいいです",
"40-line Sprint WR: 14.915s by Reset_",
"6next 1hold!",
"6next 6hold?!",
"低音を響かせろ!",
"低いフレームレートはあなたの快適さを奪います",
"複数のHoldを使ってみよう!",
"回転がブロックにどう作用しているか気づいたかい?",
"回転なしで40 Lineを完走できる?",
"今、B2B2Bを見なかったかい?",
"今日も全力で頑張ってください!",
"警告: プログラマーアート",
"君もGrand Masterだ!",
"良いプレイには時間がかかります!",
"全部で18種類のペントミがあります",
"全部で7種類のテトリミがあります",
"設定でキーコンフィグを変えられます!",
"設定を確認しましょう!",
"世界中の友達や敵ともうすぐ対戦できます",
"私の心の中には確かにM@STERPIECEがあります",
"素晴らしい! しかし次はもっと良くなる……",
"統計からセーブフォルダを開くことができます",
"偉大なるシステムが間もなく来ます!",
"現代的で親しみやすいこの積みを使いこなせるかい?",
"小さな不具合で一日を無駄にしないように!",
"一人用モードを遊ぼう!",
"音楽が煩わしい? 無音にすることができます",
"英語のアプデ情報はDiscordで見られます",
"左右移動なしで40 Lineを完走できる?",
"ALL SPIN!",
"Am G F G",
"B2B2B???",
"B2B2B2Bなんて存在するの?",
"B2B2B2Bは存在しません",
"B2B2B2Bは可能?",
"Back-to-Back Techrash, 10 REN, PC!",
"BGMやSFXの制作に協力いただける方は大歓迎です!",
"Bridge Clearが間もなく実装されます!",
"Color Clearが間もなく実装されます!",
"DASとARRを低くすると、速くなるけど操作が難しくなる",
"Hello World!",
"I[R/H/M]Sは君を救うだろう",
"I3とL3の2つだけはユニークなトリミ",
"l-=-1",
"LrL RlR LLr RRl RRR LLL FFF RfR RRf rFF",
"Lua No.1",
"Mix Clearは間もなく実装されます!",
"Nspire-CXのTechmino: 存在はしますが同じゲームではありません",
"O-Spin Triple!",
"OHHHHHHHHHHHHHH",
"Powered by LÖVE",
"Powered by Un…LÖVE",
"Rank Xの条件は、上級者でも難しくなるように設定されています",
"Split Clearが間もなく実装されます!",
"sudo rm -rf /*",
"Techmino rotation system(TRS)を楽しんで!",
"Techmino楽しい!",
"TechminoのDiscord鯖に入りましょう!",
"Techminoは\"Technique\"\"Tetromino\"を掛け合わせ造語です",
"Techminoプレイヤーの未来はあなた達のものです",
"TetroDictionary is now available in English.",
"while(false)",
"ZS JL T O I",
"ゲーム内にはモード選択マップからじゃ入れない隠しモードがいくつかあります",
"このゲームでは全てのSpinに火力補正があります",
"このゲームのほとんどの楽曲はBeepboxを用いて作曲されました",
"サーバーが不規則にダウンします",
"スタッフロールの背景に流れている名前はスポンサーの名前です",
"タブレットやスマホでもキーボードを接続できます(iOSにはそんな機能ないと思うけど)",
"なにかアイデアがありますか? Discordで提案してください!",
"なんだこの安っぽいUIと音楽は、呆れた",
"バグを見つけた?GitHubのIssueに報告しよう!",
"バグを直接見ないで!",
"バトルロワイアルモード実装! 無料で遊べる落ちものパズルゲーム!",
"ピースごとに出現する方向を変えられます",
"フレームレートを上げればより快適に",
"ヘッドフォンを付ければより快適に",
"ほとんどのメニューアイコンはUnicode PUAにある自作Glyphsを用いて作られています",
"マルチプレイで遊ぼう! あなたの常識が壊されるでしょう",
"メニューをシンプルモードにした場合、イースターエッグがなくなります",
"ローディング中! シーンチェンジの間だけじゃないです!",
"Z推奨[01]東方プロジェクトをやってみよう!",
"Z推奨[02]Minecraftをやってみよう!",
"Z推奨[03]Osu!をやってみよう!",
"Z推奨[04]Quatrackをやってみよう!",
"Z推奨[05]Terrariaをやってみよう!",
"Z推奨[06]Celesteをやってみよう!",
"Z推奨[07]World of Gooをやってみよう!",
"Z推奨[08]Orzmicをやってみよう!",
"Z推奨[09]Puyo Puyoをやってみよう!",
"Z推奨[10]Phigrosをやってみよう!",
"Z推奨[11]VVVVVVをやってみよう!",
"Z推奨[12]Ballanceをやってみよう!",
"Z推奨[13]Zumaをやってみよう!",
"Z推奨[14]ルービックキューブをやってみよう!",
"Z推奨[15]15puzzleをやってみよう!",
"Z推奨[16]Minesweeperをやってみよう!",
{C.H,"REGRET!!"},
{C.lP,"Secret Number: 626"},
{C.lR,"Z ",C.lG,"S ",C.lS,"J ",C.lO,"L ",C.lP,"T ",C.lY,"O ",C.lC,"I"},
{C.lY,"COOL!!"},
{C.N,"Lua",C.Z," No.1"},
{C.P,"T-spin!"},
{C.R,"\"知的財産権関連法\""},
{C.R,"\"DMCA濫用\""},
{C.R,"DD",C.Z," Cannon=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"D",C.Z," Cannon"},
{C.R,"DT",C.Z," Cannon=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"T",C.Z," Cannon"},
{C.R,"LrL ",C.G,"RlR ",C.B,"LLr ",C.O,"RRl ",C.P,"RRR ",C.P,"LLL ",C.C,"FFF ",C.Y,"RfR ",C.Y,"RRf ",C.Y,"rFF"},
{C.Y,"O-Spin Triple!"},
{C.Z,"What? ",C.lC,"X-Spin?"},
}
}

View File

@@ -126,7 +126,8 @@ return{
chatStart="------Começo do log------",
chatHistory="------Novas mensagens abaixo------",
-- keySettingInstruction="Press to bind key\nescape: cancel\nbackspace: delete",
-- searchModeHelp="Type to search",
-- keySettingHelp="Press to bind key\nescape: cancel\nbackspace: delete",
-- customBGhelp="Drop image file here to apply custom background",
-- customBGloadFailed="Unsupport image format for custom background",
@@ -198,99 +199,19 @@ return{
-- FNNS and"/"or"Check Zictionary for more",
},
staff={
"ORIGINALMENTE POR MrZ",
"E-mail: 1046101471@qq.com",
"Author: MrZ E-mail: 1046101471@qq.com",
"Powered by LÖVE",
"",
"Programado, desenvolvido e projetado por",
"MrZ",
"Programa: MrZ, Particle_G, [scdhh, FinnTenzor]",
"Art: MrZ, Gnyar, C₂₉H₂₅N₃O₅, ScF, [旋律星萤, T0722]",
"Music: MrZ, 柒栎流星, ERM, Trebor, C₂₉H₂₅N₃O₅, [T0722, Aether]",
"Voice & Sound: Miya, Xiaoya, Mono, MrZ, Trebor",
"Performance: 模电, HBM",
"Traduzir: User670, MattMayuga, Mizu, Mr.Faq, ScF, C₂₉H₂₅N₃O₅, NOT_A_ROBOT",
"",
"Música feita com o",
"Beepbox",
"FL Studio",
"FL Mobile",
"Logic Pro X",
"",
"[POWERED BY LÖVE]",
"",
"Programa",
"MrZ",
"ParticleG",
"Gompyn",
"Trebor",
"(scdhh)",
"(FinnTenzor)",
"(NOT_A_ROBOT)",
"(user670)",
"",
"GitHub CI, embalagem & back-end",
"ParticleG",
"Trebor",
"LawrenceLiu",
"Gompyn",
"flaribbit",
"scdhh",
"",
"Projetos visuais, IU & UX",
"MrZ",
"Gnyar",
"C₂₉H₂₅N₃O₅",
"ScF",
"(旋律星萤)",
"(T0722)",
"",
"Desenhos Musicais",
"MrZ",
"柒栎流星",
"ERM",
"Trebor",
"C₂₉H₂₅N₃O₅",
"(T0722)",
"(Aether)",
"(Hailey)",
"",
"Efeitos sonoros & pacotes de voz",
"Miya",
"Xiaoya",
"Mono",
"MrZ",
"Trebor",
"",
"Traduções & localizações",
"User670",
"MattMayuga",
"Mizu",
"Mr.Faq",
"ScF",
"C₂₉H₂₅N₃O₅",
"NOT_A_ROBOT",
"sakurw",
"",
"Performance",
"Electric283",
"Hebomai",
"",
"Agradecimentos especiais",
"Flyz",
"Big_True",
"NOT_A_ROBOT",
"思竣",
"yuhao7370",
"Farter",
"Teatube",
"蕴空之灵",
"T9972",
"No-Usernam8",
"andrew4043",
"smdbs-smdbs",
"paoho",
"Allustrate",
"Haoran SUN",
"Tianling Lyu",
"huaji2369",
"Lexitik",
"Tourahi Anime",
"[All other test staff]",
"…And You!",
"Special Thanks:",
"Flyz, Big_True, NOT_A_ROBOT, 思竣, yuhao7370",
"Farter, Teatube, 蕴空之灵, T9972, [All test staff]",
},
used=[[
Ferramentas usadas:
@@ -320,9 +241,8 @@ return{
sprint="Sprint",
marathon="Maratona",
},
mode={
modeExplorer={
mod="Mods (F1)",
start="Começar",
},
mod={
title="Mods",

View File

@@ -6,7 +6,6 @@ return{
loadSample="#~#",
loadVoice="#<()==)#",
loadFont="#Aa#",
loadModeIcon="#[ ]#",
loadMode="#[…]#",
loadOther="#…#",
finish="&",
@@ -143,9 +142,8 @@ return{
dict="z",
replays="=~~~",
},
mode={
modeExplorer={
mod="?!?!?!(F1)",
start="!!!",
},
mod={
title="?!?!?!",

View File

@@ -0,0 +1,292 @@
return{fallback='zh',
loadText={
loadSFX="音效",
loadSample="乐器",
loadVoice="语音",
loadFont="字体",
loadMode="模式",
loadOther="其他",
finish="走你",
},
playedLong="玩很久了, 给我注意点",
playedTooMuch="特么再敢玩眼睛瞎掉, 爬!",
settingWarn="别乱动,小心点",
royale_remain="剩 $1 人",
cmb={nil,"1连","2连","3连","4连","5连","6连","7连","8连","9连","10连!","11连!","12连!","13连!","14连!","15连!","16连!","17连!","18连!","19连!","Very 连"},
spin="",
clear={"消一","消二","消三","消四","消五","消六","消七","消八","消九","消十","消十一","消十二","消十三","消十四","消十五","消十六","消十七","消十八","消十九","消二十","消超二十"},
cleared="",
mini="",b2b="牛逼",b3b="很牛逼",
PC="消干净了",HPC="消了半截",
great="不错的",
awesome="您很强",
almost="太舒服了",
continue="您继续",
maxspeed="速度封顶",
missionFailed="任务不会看?",
speedLV="速度等级",
piece="块数",line="行数",atk="",eff="",
rpm="收每分",tsd="T2",
grade="段位",techrash="消四",
wave="波数",nextWave="下一波",
combo="连击",maxcmb="最大连",
pc="消干净了",ko="淘汰",
win="好了",
lose="挂了",
finish="好厉害呀 真帅气呢",
gamewin="成了",
gameover="没了",
pause="歇会",
pauseCount="歇多久了",
finesse_ap="",
finesse_fc="全连",
switchSpawnSFX="不开音效玩个锤子",
noScore="没分",
modeLocked="没解锁",
unlockHint="B都打不到还想玩?",
noUsername="别闹。",
wrongEmail="别乱输。",
noPassword="注册会不会?",
diffPassword="字不认识?",
createRoomSuccessed="创好了",
started="开了",
spectating="看戏中",
errorMsg="Techmino不想运行, 并丢下了一个蓝屏。\n我们已收集了一堆奇怪信息,你可以随时和作者对线。",
tryAnotherBuild="自己电脑是32位还是64位都不知道?",
stat={
"开了几次:",
"玩了几把:",
"玩了多久:",
"按键/旋转/暂存:",
"方块/消行/攻击:",
"接收/抵消/上涨:",
"挖掘/挖掘攻击:",
"效率/挖掘效率:",
"牛逼/很牛逼:",
"消光/消半截:",
"多余操作/极简率:",
},
support="打钱",
WidgetText={
setting_game={
title="改游戏",
graphic="←改画面",
sound="改声音→",
ctrl="改控制",
key="改键位",
touch="改触屏",
},
setting_video={
title="改画面",
sound="←改声音",
game="改游戏→",
block="方块可见",
ghost="阴影",
center="中心",
lineNum="行号",
text="招式名",
score="跳分",
warn="要死",
highCam="拉镜",
},
setting_sound={
title="改声音",
game="←改游戏",
graphic="改画面→",
mainVol="",
bgm="",
spawn="出块",
warn="警告",
vib="嗡嗡",
sfxPack="",
vocPack="",
},
setting_control={
title="改控制",
reset="重设",
},
setting_skin={
skinSet="皮肤",
title="改外观",
},
setting_touchSwitch={
basic="阳间",
pro="阴间",
},
about={
staff="游戏谁写的",
his="黑历史",
legals="正经人谁看啊",
},
register={
password2="你懂的",
registering="",
},
app_15p={
reset="打乱",
color="",
invis="",
slide="滑动",
pathVis="路径显示",
revKB="键盘反向",
},
app_schulteG={
rank="尺寸",
invis="",
disappear="消失",
tapFX="动画",
},
app_2048={
invis="",
tapControl="",
skip="跳过",
},
app_ten={
next="预览",
invis="",
fast="",
},
app_dtw={
color="",
bgm="",
arcade="街机",
},
app_link={
invis="",
},
savedata={
export="复制走",
import="粘贴到",
unlock="地图",
data="统计",
setting="设置",
vk="虚拟按键",
couldSave="云存档(测试,炸了别怪我)",
notLogin="[不登录存个锤子]",
upload="上传",
download="下载",
},
},
modes={
['sprint_10l']= {"竞速", "10L", "消10行"},
['sprint_20l']= {"竞速", "20L", "消20行"},
['sprint_40l']= {"竞速", "40L", "消40行"},
['sprint_100l']= {"竞速", "100L", "消100行"},
['sprint_400l']= {"竞速", "400L", "消400行"},
['sprint_1000l']= {"竞速", "1000L", "消1000行"},
['sprintPenta']= {"竞速", "五连块", "离谱"},
['sprintMPH']= {"竞速", "纯净", "听说你反应很快?"},
['dig_10l']= {"挖掘", "10L", "挖10行"},
['dig_40l']= {"挖掘", "40L", "挖40行"},
['dig_100l']= {"挖掘", "100L", "挖100行"},
['dig_400l']= {"挖掘", "400L", "挖400行"},
['drought_n']= {"干旱", "100L", "放轻松,简单得很"},
['drought_l']= {"干旱+", "100L", "有趣的要来了"},
['marathon_n']= {"马拉松", "普通", "休闲模式"},
['marathon_h']= {"马拉松", "困难", "休闲模式"},
['solo_e']= {"单挑", "简单", "鲨AI"},
['solo_n']= {"单挑", "普通", "鲨AI"},
['solo_h']= {"单挑", "困难", "鲨AI"},
['solo_l']= {"单挑", "疯狂", "鲨AI"},
['solo_u']= {"单挑", "极限", "鲨AI"},
['techmino49_e']= {"49人混战", "简单", "这我岂不是乱鲨"},
['techmino49_h']= {"49人混战", "困难", "这我岂不是乱鲨"},
['techmino49_u']= {"49人混战", "极限", "你吃鸡率多少?"},
['techmino99_e']= {"99人混战", "简单", "这我岂不是乱鲨"},
['techmino99_h']= {"99人混战", "困难", "这我岂不是乱鲨"},
['techmino99_u']= {"99人混战", "极限", "你吃鸡率多少?"},
['round_e']= {"回合制", "简单", "下棋"},
['round_n']= {"回合制", "普通", "下棋"},
['round_h']= {"回合制", "困难", "下棋"},
['round_l']= {"回合制", "疯狂", "下棋"},
['round_u']= {"回合制", "极限", "下棋"},
['master_n']= {"大师", "普通", "无脑20G"},
['master_h']= {"大师", "困难", "简单20G"},
['master_m']= {"大师", "M21", "一般20G"},
['master_final']= {"大师", "终点", "真正的20G"},
['master_ph']= {"大师", "虚幻", "好玩的20G"},
['master_ex']= {"宗师", "EX", "考试20G"},
['strategy_e']= {"策略堆叠", "简单", "有区别吗"},
['strategy_h']= {"策略堆叠", "困难", "没区别吧"},
['strategy_u']= {"策略堆叠", "极限", "没区别"},
['strategy_e_plus']={"策略堆叠", "简单+", "有区别吗"},
['strategy_h_plus']={"策略堆叠", "困难+", "没区别吧"},
['strategy_u_plus']={"策略堆叠", "极限+", "没区别"},
['blind_e']= {"隐形", "半隐", "谁都能玩"},
['blind_n']= {"隐形", "全隐", "稍加练习即可"},
['blind_h']= {"隐形", "瞬隐", "和上一个一样"},
['blind_l']= {"隐形", "瞬隐+", "这个确实挺难的"},
['blind_u']= {"隐形", "啊这", "你准备好了吗"},
['blind_wtf']= {"隐形", "不会吧", "还没准备好"},
['classic_e']= {"高速经典", "简单", "就这?简单"},
['classic_h']= {"高速经典", "困难", "就这?一般"},
['classic_u']= {"高速经典", "极限", "就这…算了"},
['survivor_e']= {"生存", "简单", "这都玩不下去?不会吧"},
['survivor_n']= {"生存", "普通", "呵,这都玩不过?"},
['survivor_h']= {"生存", "困难", "所以呢?"},
['survivor_l']= {"生存", "疯狂", "然后呢?"},
['survivor_u']= {"生存", "极限", "舒服了"},
['attacker_h']= {"进攻", "困难", "进攻练习"},
['attacker_u']= {"进攻", "极限", "进攻练习"},
['defender_n']= {"防守", "普通", "防守练习"},
['defender_l']= {"防守", "疯狂", "防守练习"},
['dig_h']= {"挖掘", "困难", "挖掘练习"},
['dig_u']= {"挖掘", "极限", "挖掘练习"},
['clearRush']= {"清版竞速", "普通", "舒服"},
['c4wtrain_n']= {"C4W练习", "普通", "无 限 连 击"},
['c4wtrain_l']= {"C4W练习", "疯狂", "无 限 连 击"},
['pctrain_n']= {"全清训练", "普通", "随便打打"},
['pctrain_l']= {"全清训练", "疯狂", "建议不打"},
['pc_n']= {"全清挑战", "普通", "100行内刷PC"},
['pc_h']= {"全清挑战", "困难", "100行内刷PC"},
['pc_l']= {"全清挑战", "疯狂", "100行内刷PC"},
['pc_inf']= {"无尽全清挑战", "", "你这水平还是先别玩了"},
['tech_n']= {"科研", "普通", "禁止断B2B"},
['tech_n_plus']= {"科研", "普通+", "仅允许spin与PC"},
['tech_h']= {"科研", "困难", "禁止断B2B"},
['tech_h_plus']= {"科研", "困难+", "仅允许spin与PC"},
['tech_l']= {"科研", "疯狂", "禁止断B2B"},
['tech_l_plus']= {"科研", "疯狂+", "仅允许spin与PC"},
['tech_finesse']= {"科研", "极简", "强制最简操作"},
['tech_finesse_f']= {"科研", "极简+", "禁止普通消除,强制最简操作"},
['tsd_e']= {"TSD挑战", "简单", "刷T2"},
['tsd_h']= {"TSD挑战", "困难", "刷T2"},
['tsd_u']= {"TSD挑战", "极限", "刷T2"},
['backfire_n']= {"自攻自受", "普通", "100攻击很少的,冲冲冲"},
['backfire_h']= {"自攻自受", "困难", "你在害怕什么"},
['backfire_l']= {"自攻自受", "疯狂", "别怂啊,打攻击呀"},
['backfire_u']= {"自攻自受", "极限", "怎么可能会把自己玩死"},
['sprintAtk']= {"竞速", "100攻击", "送100行"},
['sprintEff']= {"竞速", "效率", "会打就多打点"},
['zen']= {"", "200", "不限时200行"},
['ultra']= {"限时打分", "挑战", "2分钟刷分"},
['infinite']= {"无尽", "", "真的有人会玩这个?"},
['infinite_dig']= {"无尽:挖掘", "", "闲得慌就来挖"},
['marathon_inf']= {"马拉松", "无尽", "无尽马拉松"},
['custom_clear']= {"自定义", "普通"},
['custom_puzzle']= {"自定义", "拼图"},
},
}

View File

@@ -5,7 +5,6 @@ return{
loadSample="加载乐器采样",
loadVoice="加载语音资源",
loadFont="缓存字体资源",
loadModeIcon="加载模式图标",
loadMode="加载模式",
loadOther="加载杂项",
finish="按任意键继续",
@@ -138,7 +137,8 @@ return{
chatStart="------消息的开头------",
chatHistory="------以上是历史消息------",
keySettingInstruction="点击添加键位绑定\nesc取消选中\n退格键清空选中",
searchModeHelp="直接输入关键词搜索",
keySettingHelp="点击添加键位绑定\nesc取消选中\n退格键清空选中",
customBGhelp="把图片文件拖到这个窗口里使用自定义背景",
customBGloadFailed="自定义背景的图片文件格式不支持",
@@ -210,98 +210,19 @@ return{
FNNS and"/"or"更多信息见小z词典",
},
staff={
"作者 MrZ",
"邮箱: 1046101471@qq.com",
"作者:MrZ 邮箱:1046101471@qq.com",
"使用LÖVE引擎",
"",
"程序, 开发和设计",
"MrZ",
"程序: MrZParticle_G[scdhhFinnTenzor]",
"美术: MrZGnyarC₂₉H₂₅N₃O₅ScF[旋律星萤T0722]",
"音乐: MrZ柒栎流星ERMTreborC₂₉H₂₅N₃O₅[T0722Aether]",
"音效/语音: MiyaXiaoyaMonoMrZTrebor",
"演出: 模电HBM",
"翻译: User670MattMayugaMizuMr.FaqScFC₂₉H₂₅N₃O₅NOT_A_ROBOT",
"",
"音乐制作使用",
"Beepbox",
"FL Studio",
"FL Mobile",
"Logic Pro X",
"",
"[POWERED BY LÖVE]",
"",
"程序",
"MrZ",
"ParticleG",
"Gompyn",
"Trebor",
"(scdhh)",
"(FinnTenzor)",
"(NOT_A_ROBOT)",
"(user670)",
"",
"GitHub CI、封装和后端",
"ParticleG",
"Trebor",
"LawrenceLiu",
"Gompyn",
"flaribbit",
"schh",
"",
"视觉设计、UI和UX",
"MrZ",
"Gnyar",
"C₂₉H₂₅N₃O₅",
"ScF",
"(旋律星萤)",
"(T0722)",
"",
"音乐设计",
"MrZ",
"柒栎流星",
"ERM",
"Trebor",
"C₂₉H₂₅N₃O₅",
"(T0722)",
"(Aether)",
"(Hailey)",
"",
"音效和语音包",
"Miya",
"Xiaoya",
"Mono",
"MrZ",
"Trebor",
"",
"翻译和本地化",
"User670",
"MattMayuga",
"Mizu",
"Mr.Faq",
"ScF",
"C₂₉H₂₅N₃O₅",
"NOT_A_ROBOT",
"",
"Performances",
"Electric283",
"Hebomai",
"",
"特别感谢",
"Flyz",
"Big_True",
"NOT_A_ROBOT",
"思竣",
"yuhao7370",
"Farter",
"Teatube",
"蕴空之灵",
"T9972",
"No-Usernam8",
"andrew4043",
"smdbs-smdbs",
"paoho",
"Allustrate",
"Haoran SUN",
"Tianling Lyu",
"huaji2369",
"Lexitik",
"Tourahi Anime",
"[All other test staff]",
"…And You!",
"特别感谢:",
"FlyzBig_TrueNOT_A_ROBOT思竣yuhao7370",
"FarterTeatube蕴空之灵T9972[All test staff]",
},
used=[[
使用工具:
@@ -331,9 +252,8 @@ return{
sprint="40行",
marathon="马拉松",
},
mode={
modeExplorer={
mod="Mods (F1)",
start="开始",
},
mod={
title="Mods",
@@ -886,8 +806,8 @@ return{
"车万方块是一家(暴论",
"吃键?真的吗?建议回放看看到底按没按到,按了多久",
"凑数tip什么时候能站起来",
"块多是一件美事啊",
"打铁.mp4",
"铁.png",
"打铁",
"大概还是有人会看tip的",
"大家认为的俄罗斯方块很可能不是你以为的俄罗斯方块,场合合适的时候可以适当提醒一下哦",
"大满贯10连击消四全清",
@@ -1123,7 +1043,7 @@ return{
"豆知识[078]为了保护玩家们的健康,本游戏有一个临时的简易防沉迷系统!(不过估计你也触发不了/笑)",
"豆知识[079]为什么关卡那么少因为前一模式成绩连B都没达到再加把劲吧~",
"豆知识[080]为数不多走向世界的国产方块游戏",
"豆知识[081]向其他人询问练习方法请说明自己的水平,最好录些视频,不然很难给出合适的建议",
"豆知识[081]向其他人询问练习方法最好提供自己的详细水平,最好录些视频,不然很难给出合适的建议",
"豆知识[082]小心腱鞘炎",
"豆知识[083]玄学研究显示,更换方块皮肤也许能帮助提升成绩",
"豆知识[084]旋转不是变形!请尽量灵活利用顺逆时针两个旋转键",
@@ -1155,7 +1075,6 @@ return{
"健康小贴士[05]长期睡眠不足会引起不可逆的脑损伤(变傻)",
"群友名言[001]“玩了Techmino之后发现打字速度变快了”",
"群友名言[002]“我要陪伴着tech一步步成长然后就可以疯狂的享受他”",
"群友名言[003]“太super啦不愧是guideline”",
"Frt评[01]“成天被夸赞‘好玩’的”",
"Frt评[02]“可以形成方块圈子小中心话题,同作者一起衍生一些概念与梗的”",
"Frt评[03]“论方块的软工意义(就算这么小个范围内,各种取舍蒙混翻车现象都总会以很易懂的方式出现(”",
@@ -1210,19 +1129,18 @@ return{
"Z推[01]东方Project好玩",
"Z推[02]Minecraft好玩",
"Z推[03]Osu!好玩!",
"Z推[04]Quatrack好玩!",
"Z推[05]Terraria好玩!",
"Z推[06]Celeste好玩!",
"Z推[07]World of goo好玩!",
"Z推[08]Orzmic好玩!",
"Z推[09]噗哟噗哟好玩!",
"Z推[10]Phigros好玩!",
"Z推[11]VVVVVV好玩!",
"Z推[12]Ballance好玩!",
"Z推[13]Zuma好玩!",
"Z推[14]魔方好玩!",
"Z推[15]15puzzle好玩!",
"Z推[16]扫雷好玩!",
"Z推[04]Terraria好玩!",
"Z推[05]Celeste好玩!",
"Z推[06]World of goo好玩!",
"Z推[07]Orzmic好玩!",
"Z推[08]噗哟噗哟好玩!",
"Z推[09]Phigros好玩!",
"Z推[10]VVVVVV好玩!",
"Z推[11]Ballance好玩!",
"Z推[12]Zuma好玩!",
"Z推[13]魔方好玩!",
"Z推[14]15puzzle好玩!",
"Z推[15]扫雷好玩!",
{C.C,"<PURE ",C.P,"MEMORY>"},
{C.H,"暂定段位:9"},
{C.H,"REGRET!!"},

View File

@@ -50,7 +50,7 @@ return{
radar={"","","","","",""},
radarData={"防/分","守/分","攻/分","送/分","行/分","挖/分"},
WidgetText={
mode={
modeExplorer={
mod="模组(F1)",
},
mod={

View File

@@ -5,7 +5,6 @@ return{
loadSample="装载仪器样品",
loadVoice="加载语音包",
loadFont="加载字体",
loadModeIcon="加载模式图标",
loadMode="加载方式",
loadOther="加载其他资产",
finish="按任意按钮开始!",
@@ -136,7 +135,8 @@ return{
chatStart="------日志开始------",
chatHistory="------下面是新消息------",
keySettingInstruction="按绑定键\n退出:取消\n退格:删除",
searchModeHelp="键入要搜索的内容",
keySettingHelp="按绑定键\n退出:取消\n退格:删除",
customBGhelp="将图像文件拖放到此处以应用自定义背景",
customBGloadFailed="不支持自定义背景的图像格式",
@@ -208,98 +208,19 @@ return{
FNNS and"/"or"查看Zictionary以了解更多信息",
},
staff={
"最初由Z先生",
"电子邮件: 1046101471@qq.com",
"作者:Z先生 邮箱:1046101471@qq.com",
"使用LÖVE引擎",
"",
"编程、开发和设计的",
"Z先生",
"程序: Z先生粒子G[呵呵,芬恩·坦佐]",
"美术: Z先生尼亚尔氟化钪蛋白激酶G抑制剂[旋律星萤T0722]",
"音乐: Z先生柒栎流星ERM特雷伯尔蛋白激酶G抑制剂[T0722以太]",
"音效/语音: 米娅小亚东西Z先生特雷伯尔",
"演出: 模电HBM",
"翻译: 用户670马特·马尤加法克先生氟化钪蛋白激酶G抑制剂不是机器人",
"",
"使用了音乐",
"蜂鸣器",
"FL工作室",
"FL移动",
"逻辑专业X",
"",
"[POWERED BY LÖVE]",
"",
"程序",
"Z先生",
"粒子G",
"皮恩",
"特雷伯尔",
"(呵呵)",
"(芬恩·坦佐)",
"(不是机器人)",
"(用户670)",
"",
"集线器CI外包装及后端",
"粒子G",
"特雷伯尔",
"劳伦斯刘",
"尼亚尔",
"废话",
"呵呵",
"",
"视觉设计,用户界面及用户体验",
"Z先生",
"尼亚尔",
"蛋白激酶G抑制剂",
"氟化钪",
"(旋律星萤)",
"(T0722)",
"",
"音乐设计",
"Z先生",
"柒栎流星",
"ERM",
"特雷伯尔",
"蛋白激酶G抑制剂",
"(T0722)",
"(以太)",
"(黑利)",
"",
"音效和语音包",
"米娅",
"小亚",
"东西",
"Z先生",
"特雷伯尔",
"",
"翻译和本土化",
"用户670",
"马特·马尤加",
"",
"法克先生",
"氟化钪",
"蛋白激酶G抑制剂",
"不是机器人",
"",
"性能",
"电动283",
"河北麦",
"",
"特别鸣谢",
"飞天",
"大真",
"不是机器人",
"思竣",
"余浩7370",
"放屁者",
"茶管",
"蕴空之灵",
"T9972",
"无用户名8",
"安德鲁4043",
"中小型银行-中小型银行",
"泡霍",
"暗示",
"浩然太阳",
"天灵刘",
"滑稽2369",
"伊提克",
"拉希动漫",
"[所有其他的测试人员]",
"…和你!",
"特别感谢:",
"飞天大真不是机器人思竣yuhao7370",
"放屁者茶管蕴空之灵T9972[所有测试人员]",
},
used=[[
使用工具:
@@ -329,9 +250,9 @@ return{
sprint="冲刺",
marathon="马拉松赛跑",
},
mode={
modeExplorer={
mod="多重器官衰竭(F1)",
start="开始",
sel="选择",
},
mod={
title="多重器官衰竭",

View File

@@ -5,7 +5,6 @@ return{
loadSample="加載樂器取樣",
loadVoice="加載語音資源",
loadFont="加載字體資源",
loadModeIcon="加載模式圖標",
loadMode="加載模式",
loadOther="加載雜項",
finish="按任意鍵繼續!",
@@ -138,7 +137,8 @@ return{
chatStart="------訊息開始------",
chatHistory="------以上為歷史訊息------",
keySettingInstruction="點擊來設置鍵位\n按esc來取消選中\n按退格鍵來清除選中",
searchModeHelp="直接輸入關鍵字搜索",
keySettingHelp="點擊來設置鍵位\n按esc來取消選中\n按退格鍵來清除選中",
customBGhelp="把圖片檔案拖到這個視窗裏使用自定義背景",
customBGloadFailed="自定義背景的圖片檔案格式不支持",
@@ -210,99 +210,19 @@ return{
FNNS and"/"or"更多資訊見小z詞典"
},
staff={
"作者 MrZ",
"電郵: 1046101471@qq.com",
"作者:MrZ 電郵:1046101471@qq.com",
"使用LÖVE引擎",
"",
"程序, 開發和設計",
"MrZ",
"程序: MrZParticle_G[scdhhFinnTenzor]",
"美術: MrZGnyarC₂₉H₂₅N₃O₅ScF[旋律星萤T0722]",
"音樂: MrZ柒栎流星ERMTreborC₂₉H₂₅N₃O₅[T0722Aether]",
"音效/語音: MiyaXiaoyaMonoMrZTrebor",
"演出: 模电HBM",
"翻譯: User670MattMayugaMizuMr.FaqScFC₂₉H₂₅N₃O₅, NOT_A_ROBOT",
"",
"音樂製作使用",
"Beepbox",
"FL Studio",
"FL Mobile",
"Logic Pro X",
"",
"[POWERED BY LÖVE]",
"",
"程序",
"MrZ",
"ParticleG",
"Gompyn",
"Trebor",
"(scdhh)",
"(FinnTenzor)",
"(NOT_A_ROBOT)",
"(user670)",
"",
"GitHub CI、包裝和後端",
"ParticleG",
"Trebor",
"LawrenceLiu",
"Gompyn",
"flaribbit",
"scdhh",
"",
"視覺設計、UI和UX",
"MrZ",
"Gnyar",
"C₂₉H₂₅N₃O₅",
"ScF",
"(旋律星萤)",
"(T0722)",
"",
"音樂設計",
"MrZ",
"柒栎流星",
"ERM",
"Trebor",
"C₂₉H₂₅N₃O₅",
"(T0722)",
"(Aether)",
"(Hailey)",
"",
"音效和語音包",
"Miya",
"Xiaoya",
"Mono",
"MrZ",
"Trebor",
"",
"翻譯和本地化",
"User670",
"MattMayuga",
"Mizu",
"Mr.Faq",
"ScF",
"C₂₉H₂₅N₃O₅",
"NOT_A_ROBOT",
"sakurw",
"",
"Performances",
"Electric283",
"Hebomai",
"",
"特別感謝",
"Flyz",
"Big_True",
"NOT_A_ROBOT",
"思竣",
"yuhao7370",
"Farter",
"Teatube",
"蕴空之灵",
"T9972",
"No-Usernam8",
"andrew4043",
"smdbs-smdbs",
"paoho",
"Allustrate",
"Haoran SUN",
"Tianling Lyu",
"huaji2369",
"Lexitik",
"Tourahi Anime",
"[All other test staff]",
"…And You!",
"特別感謝:",
"FlyzBig_TrueNOT_A_ROBOT思竣yuhao7370",
"FarterTeatube蕴空之灵T9972[All test staff]",
},
used=[[
使用工具:
@@ -332,9 +252,8 @@ return{
sprint="40行",
marathon="馬拉松",
},
mode={
modeExplorer={
mod="Mods (F1)",
start="開始",
},
mod={
title="Mods",

Some files were not shown because too many files have changed in this diff Show More