Compare commits

..

20 Commits

Author SHA1 Message Date
MrZ626
054a52a445 版本推进 2021-12-15 14:28:44 +08:00
MrZ626
85242d808b 修复语言文件小问题 2021-12-15 14:28:05 +08:00
MrZ626
57241677a9 修复混战 2021-12-15 14:26:40 +08:00
MrZ626
6ccdee2a53 bgm模块新增瞬间开/关功能
字符串扩展模块不再直接修改全局的string,需要外部自己补充
2021-12-15 11:28:25 +08:00
MrFaq2018
a3d2b7b7f3 Update lang_es.lua (#552) 2021-12-14 12:41:45 +08:00
MrZ626
b7b28b4ae3 修复经典模式h和u难度没有干旱计数器 close #546 2021-12-13 03:52:19 +08:00
MrZ626
30748200dd 修复自定义场地界面按超过第三个的鼠标键会报错 2021-12-11 19:38:24 +08:00
MrZ626
5c7082e886 修复不能deepdrop 2021-12-10 12:50:57 +08:00
MrZ626
9a3c889a9d 修改词典和tip 2021-12-10 09:31:07 +08:00
MrZ626
b432fdf90a 部分语言的模式说明添加换行 2021-12-09 19:43:36 +08:00
MrZ626
df089a2f04 框架新增1*1空白画布变量PAPER 2021-12-09 17:26:02 +08:00
user670
6600713f4b Update lang_en.lua (#540) 2021-12-09 16:04:24 +08:00
NOT_A_ROBOT
96dad762b2 Update lang_en.lua (#544)
BiRS now allows you to spin the O1 piece.
2021-12-09 16:03:57 +08:00
MrZ626
fa64c868b9 调整一些tip 2021-12-09 15:21:51 +08:00
MrZ626
97e7b019dd TRS的N/H块补充一个踢墙 2021-12-09 03:21:28 +08:00
MrZ626
1826ca6f2f fix 2021-12-09 01:03:27 +08:00
MrZ626
db490a6c6c FILE.load新增-lua方式(直接运行,无环境限制) 2021-12-09 01:01:24 +08:00
MrZ626
421fdef4f9 调整两个群友词条的关键词 2021-12-09 01:00:40 +08:00
MrZ626
d717ce842d 调整tip 2021-12-08 09:19:58 +08:00
MrZ626
f13c9792af 调整把按键添加到录像的时机
修复触发了自动保存的最后一个按键本身不会保存到录像里
2021-12-08 08:40:24 +08:00
23 changed files with 230 additions and 180 deletions

View File

@@ -107,8 +107,9 @@ function BGM.init(list)
LOG("No BGM: "..name,5)
end
end
function BGM.play(name)
function BGM.play(name,args)
name=name or BGM.default
args=args or""
if not _tryLoad(name)then return end
if volume==0 then
BGM.nowPlay=name
@@ -118,14 +119,24 @@ function BGM.init(list)
if name and SourceObjList[name].source then
if BGM.nowPlay~=name then
if BGM.nowPlay then
TASK.new(task_fadeOut,BGM.playing)
if not STRING.sArg(args,'-so')then
TASK.new(task_fadeOut,BGM.playing)
else
BGM.playing:pause()
end
end
TASK.removeTask_iterate(check_curFadeOut,task_fadeOut,SourceObjList[name].source)
TASK.removeTask_code(task_fadeIn)
TASK.new(task_fadeIn,SourceObjList[name].source)
BGM.nowPlay=name
BGM.playing=SourceObjList[name].source
if not STRING.sArg(args,'-si')then
BGM.playing:setVolume(0)
TASK.new(task_fadeIn,BGM.playing)
else
BGM.playing:setVolume(volume)
BGM.playing:play()
end
BGM.lastPlayed=BGM.nowPlay
BGM.playing:seek(0)
BGM.playing:play()
@@ -148,10 +159,15 @@ function BGM.init(list)
BGM.playing:play()
end
end
function BGM.stop()
function BGM.stop(args)
args=args or""
TASK.removeTask_code(task_fadeIn)
if BGM.nowPlay then
TASK.new(task_fadeOut,BGM.playing)
if not STRING.sArg(args,'-s')then
if BGM.nowPlay then
TASK.new(task_fadeOut,BGM.playing)
end
else
BGM.playing:pause()
end
BGM.nowPlay,BGM.playing=nil
end

View File

@@ -7,20 +7,29 @@ function FILE.load(name,args)
assert(F:open'r','open error')
local s=F:read()F:close()
local mode=
args:sArg'-luaon'and'luaon'or
args:sArg'-json'and'json'or
args:sArg'-string'and'string'or
STRING.sArg(args,'-luaon')and'luaon'or
STRING.sArg(args,'-lua')and'lua'or
STRING.sArg(args,'-json')and'json'or
STRING.sArg(args,'-string')and'string'or
s:sub(1,6)=='return{'and'luaon'or
(s:sub(1,1)=='['and s:sub(-1)==']'or s:sub(1,1)=='{'and s:sub(-1)=='}')and'json'or
'string'
if mode=='luaon'then
local func=loadstring(s)
local func,err_mes=loadstring(s)
if func then
setfenv(func,{})
local res=func()
return assert(res,'decode error')
else
error('decode error')
error('decode error: '..err_mes)
end
elseif mode=='lua'then
local func,err_mes=loadstring(s)
if func then
local res=func()
return assert(res,'run error')
else
error('compile error: '..err_mes)
end
elseif mode=='json'then
local res=JSON.decode(s)
@@ -39,12 +48,12 @@ function FILE.load(name,args)
end
function FILE.save(data,name,args)
if not args then args=''end
if args:sArg'-d'and fs.getInfo(name)then
if STRING.sArg(args,'-d')and fs.getInfo(name)then
error('duplicate')
end
if type(data)=='table'then
if args:sArg'-luaon'then
if STRING.sArg(args,'-luaon')then
data=TABLE.dump(data)
if not data then
error('encode error')

View File

@@ -18,7 +18,7 @@ function FONT.rawset(s)
end
function FONT.load(fonts)
for name,path in next,fonts do
assert(love.filesystem.getInfo(path),("Font file $1($2) not exist!"):repD(name,path))
assert(love.filesystem.getInfo(path),STRING.repD("Font file $1($2) not exist!",name,path))
fontFiles[name]=love.filesystem.newFile(path)
fontCache[name]={}
end

View File

@@ -2,7 +2,6 @@ local IMG={}
function IMG.init(list)
IMG.init=nil
local null=love.graphics.newCanvas(1,1)
setmetatable(IMG,{__index=function(self,name)
if type(list[name])=='table'then
self[name]={}
@@ -13,7 +12,7 @@ function IMG.init(list)
self[name]=love.graphics.newImage(list[name])
else
LOG("No IMG: "..name)
self[name]=null
self[name]=PAPER
end
return self[name]
end})

View File

@@ -1,4 +1,4 @@
NONE={}function NULL()end
NONE={}function NULL()end PAPER=love.graphics.newCanvas(1,1)
EDITING=""
LOADED=false

View File

@@ -6,7 +6,7 @@ local find,sub,gsub,upper=string.find,string.sub,string.gsub,string.upper
local char,byte=string.char,string.byte
--"Replace dollars", replace all $n with ...
function string.repD(str,...)
function STRING.repD(str,...)
local l={...}
for i=#l,1,-1 do
str=gsub(str,'$'..i,l[i])
@@ -15,7 +15,7 @@ function string.repD(str,...)
end
--"Scan arg", scan if str has the arg (format of str is like "-json -q", arg is like "-q")
function string.sArg(str,switch)
function STRING.sArg(str,switch)
if find(str.." ",switch.." ")then
return true
end

View File

@@ -71,6 +71,8 @@ mStr=GC.mStr
mText=GC.simpX
mDraw=GC.draw
Snd=SFX.playSample
string.repD=STRING.repD
string.sArg=STRING.sArg
--Delete all naked files (from too old version)
FILE.clear('')
@@ -116,7 +118,7 @@ MODES= require'parts.modes'
setmetatable(TEXTURE,{__index=function(self,k)
MES.new('warn',"No texture called: "..k)
self[k]=love.graphics.newCanvas(1,1)
self[k]=PAPER
return self[k]
end})

View File

@@ -376,8 +376,8 @@ do
},--R
false,--Y
{
[01]={'+0+0','-1+0','-1+1','+0+1','+1+0','-1+2','-2+0','+0-2'},
[10]={'+0+0','+1+0','-1+0','+0-1','+1-1','+1-2','+2+0','+0+2'},
[01]={'+0+0','-1+0','-1+1','+0+1','+1+0','+1+1','-1+2','-2+0','+0-2'},
[10]={'+0+0','+1+0','-1+0','+0-1','-1-1','+1-1','+1-2','+2+0','+0+2'},
[03]={'+0+0','-1+0','+1-1','+0-2','+0-3','+1+0','+1-2','+1-3','+0+1','-1+1'},
[30]={'+0+0','-1+0','+1-1','+1-2','+1+0','+0-2','+1-3','-1+2','+0+3','-1+3'},
[12]={'+0+0','-1+0','+1-1','-1-1','+1-2','+1+0','+0-2','+1-3','-1+2','+0+3','-1+3'},

View File

@@ -36,6 +36,7 @@ return{
end,
hook_drop=function(P)
local D=P.modeData
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
if P.stat.row>=D.target then
if D.target==110 then
P.gameEnv.drop,P.gameEnv.lock=2,2

View File

@@ -36,6 +36,7 @@ return{
end,
hook_drop=function(P)
local D=P.modeData
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
if P.stat.row>=D.target then
if D.target==100 then
P:win('finish')

View File

@@ -771,7 +771,7 @@ do--function resetGameData(args)
BGM.play(type(bgm)=='string'and bgm or type(bgm)=='table'and bgm[math.random(#bgm)])
TEXT.clear()
if GAME.modeEnv.eventset=='royale'then
if GAME.modeEnv.eventSet=='royale'then
for i=1,#PLAYERS do
PLAYERS[i]:changeAtk(randomTarget(PLAYERS[i]))
end

View File

@@ -89,13 +89,13 @@ return{
"support afdian",
"org",
"Afdian",
FNNS and"https://www.bilibili.com/video/BV1GJ411x7h7"or"https://afdian.net/@MrZ_26",
FNNS and"https://www.bilibili.com/video/BV1uT4y1P7CX"or"https://afdian.net/@MrZ_26",
},
{"Support 3",
"support p\97\116\114\101\111\110",
"org",
"P\97\116\114\101\111\110",
FNNS and"https://www.bilibili.com/video/BV1GJ411x7h7"or"https://www.p\97\116\114\101\111\110.com/techmino",
FNNS and"https://www.bilibili.com/video/BV1uT4y1P7CX"or"https://www.p\97\116\114\101\111\110.com/techmino",
},
--Games
{"TTT",
@@ -799,6 +799,11 @@ return{
"term",
"Vibrate your finger on the controller to achieve faster sideways movement speed than holding it.\nIt is most commonly used on classic Tetris where DAS is rather slow. In most cases, you do not need to hypertap in modern Tetris games, because their DAS is often fast enough.",
},
{"Rolling",
"rolling",
"term",
"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",
"passthrough pingthrough",
"term",
@@ -1276,7 +1281,7 @@ return{
"https://space.bilibili.com/109356367",
},
{"ZXC",
"zxc thtsod",
"zxc thtsod flag ctf",
"name",
"Also known as ThTsOd.\nTetris Research community member.\nA technical player.",
"https://space.bilibili.com/4610502",
@@ -1300,7 +1305,7 @@ return{
"https://space.bilibili.com/471341780",
},
{"思竣",
"sijun",
"sijun acm oi",
"name",
"(Sī Jùn)\n\nTetris Research community member.\nLots of mental computation power.",
"https://space.bilibili.com/403250559",

View File

@@ -82,13 +82,13 @@ return{
"赞助 support aifadian afdian zanzhu daqian qia",
"org",
"Afdian",
FNNS and"https://www.bilibili.com/video/BV1GJ411x7h7"or"https://afdian.net/@MrZ_26",
FNNS and"https://www.bilibili.com/video/BV1uT4y1P7CX"or"https://afdian.net/@MrZ_26",
},
{"赞助3",
"赞助 support zanzhu daqian qia",
"org",
"P\97\116\114\101\111\110",
FNNS and"https://www.bilibili.com/video/BV1GJ411x7h7"or"https://www.p\97\116\114\101\111\110.com/techmino",
FNNS and"https://www.bilibili.com/video/BV1uT4y1P7CX"or"https://www.p\97\116\114\101\111\110.com/techmino",
},
--游戏(题库)
@@ -820,6 +820,11 @@ return{
"term",
"快速震动手指,实现比长按更快速+灵活的高速单点移动主要在经典块的高难度下因为das不可调而且特别慢高速下很容易md导致失败此时手动连点就比自动移动更快或者受特殊情况限制不适合用自动移动时使用。会使用这个技术的人称为“Hypertapper”。",
},
{"轮指 Rolling",
"轮指 rolling lunzhi liandian",
"term",
"另一种快速连点方法用于das/arr设置非常慢时的高重力(1G左右)模式。\n先把手柄键盘……可能也行吧悬空摆好比如架在腿上要连点某个键的时候一只手虚按按键另外一只手的几根手指轮流敲打手柄背面“反向按键”实现连点。这种控制方法可以让玩家更轻松地获得比直接抖动手指的hypertap(详见超连点词条)更快的控制速度。\n此方法最先由Cheez-fish发明他本人则使用rolling达到过超过20Hz的点击频率。",
},
{"穿透 Passthrough",
"穿透 passthrough pingthrough chuantou",
"term",
@@ -1304,7 +1309,7 @@ return{
"https://space.bilibili.com/109356367",
},
{"ZXC",
"zxc thtsod flag t655",
"zxc thtsod flag ctf t655",
"name",
"【研究群】「T655」\n高技术力",
"https://space.bilibili.com/4610502",
@@ -1328,7 +1333,7 @@ return{
"https://space.bilibili.com/471341780",
},
{"思竣",
"思竣 sijun t942",
"思竣 sijun t942 acm oi",
"name",
"【研究群】「T942」\n算力极强的思维型选手",
"https://space.bilibili.com/403250559",

View File

@@ -850,9 +850,9 @@ return{
"Soon you'll be able to play against friends and foes all over the world.",
"Split clear coming soon!",
"sudo rm -rf /*",
"Techmino is a combination of Technique and Tetromino.",
"Techmino has a Nspire-CX edition!",
"Techmino is a portmanteau of \"technique\" and \"tetromino\".",
"Techmino is so fun!",
"Techmino on Nspire-CX: yes it exists, no it's not the same game.",
"TetroDictionary is now available in English.",
"Most of the music tracks in this game are made using Beepbox.",
"The names that appeared in the background of the Staff page is a list of our sponsors.",
@@ -874,7 +874,7 @@ return{
"You can connect a keyboard to your phone or tablet (not functional on iOS though).",
"You can customize the key mappings in settings!",
"You can open the save directory from the Stats page.",
"You can perform a spin with 28 of the 29 minoes in this game; the exception being O1.",
"You can perform a spin with all of the minoes in this game.",
"You can set the spawning orientation for each piece.",
"ZS JL T O I",
{C.C,"Also try 15puzzle!"},

View File

@@ -1,25 +1,25 @@
return{
fallback='en',
sureQuit="Pulsa de nuevo para salir",
-- sureReset="Press again to reset",
-- sureDelete="Press again to delete",
sureReset="Pulsa de nuevo para reiniciar",
sureDelete="Pulsa de nuevo para borrar",
newDay="[Anti-adicción] ¡Nuevo día, nuevo comienzo!",
playedLong="[Anti-adicción] Estuviste jugando un buen rato hoy. Recuerda descansar de vez en cuando.",
playedTooMuch="[Anti-adicción] ¡Has jugado mucho por hoy! No puedes jugar más.",
-- settingWarn="Modifing uncommon setting, be careful!",
settingWarn="¡Ten cuidado con modificar esto!",
atkModeName={"Al azar","Medallas","KOs","Atacantes"},
royale_remain="$1 Jugadores Restantes",
cmb={nil,"Combo de 1","Combo de 2","Combo de 3","Combo de 4","Combo de 5","Combo de 6","Combo de 7","Combo de 8","Combo de 9","¡Combo de 10!","¡Combo de 11!","¡Combo de 12!","¡Combo de 13!","¡Combo de 14!","¡Combo de 15!","¡Combo de 16!","¡Combo de 17!","¡Combo de 18!","¡Combo de 19!","MEGACOMBO"},
spin="-spin",
clear={"Single","Doble","Triple","Techrash","Pentacrash","Hexacrash","Heptacrash","Octacrash","Nonacrash","Decacrash","Undecacrash","Dodecacrash","Tridecacrash","Tetradecacrash","Pentadecacrash","Hexadecacrash","Heptadecacrash","Octadecacrash","Nonadecacrash","Ultracrash","Impossicrash"},
-- cleared="$1 lines",
cleared="$1 líneas",
mini="Mini",b2b="B2B ",b3b="B2B2B ",
PC="Perfect Clear",HPC="Half Clear",
replaying="[Repetición]",
tasUsing="[TAS]",
-- stage="Stage $1 completed",
stage="Fase $1 Completada",
great="¡Genial!",
awesome="¡Fantástico!",
almost="¡Casi!",
@@ -28,7 +28,7 @@ return{
speedup="¡Más rápido!",
missionFailed="Misión Fallida",
speedLV="Vel. de juego",
speedLV="Veloc. de juego",
piece="Piezas",line="Líneas",atk="Ataque",eff="Eficiencia",
rpm="RPM",tsd="TSD",
grade="Grado",techrash="Techrash",
@@ -50,25 +50,25 @@ return{
page="Página:",
-- cc_fixed="CC is incompatible with fixed sequences",
-- cc_swap="CC is incompatible with swap holdmode",
cc_fixed="CC no es compatible con piezas prefijadas",
cc_swap="CC no es compatible con Swap Hold",
ai_prebag="La IA no es compatible con piezas que no sean Tetrominos.",
ai_mission="La IA no es compatible con misiones personalizadas.",
switchSpawnSFX="Habilita los sonidos de aparición de las piezas ;)",
needRestart="Reinicia Techmino para que los cambios tengan efecto.",
-- loadError_errorMode="'$1' loading failed: no load mode '$2'",
-- loadError_read="'$1' loading failed: read failed",
-- loadError_noFile="'$1' loading failed no file:",
-- loadError_other="'$1' loading failed: $2",
-- loadError_unknown="'$1' loading failed: unknown reason",
loadError_errorMode="'$1' Error al cargar: no hay modo '$2'",
loadError_read="'$1' Error al cargar: error de lectura",
loadError_noFile="'$1' Error al cargar, no existe el archivo:",
loadError_other="'$1' Error al cargar: $2",
loadError_unknown="'$1' Error al cargar: desconocido",
-- saveError_duplicate="'$1' saving failed: duplicated filename",
-- saveError_encode="'$1' saving failed: encode failed",
-- saveError_other="'$1' saving failed: $2",
-- saveError_unknown="'$1' saving failed: unknown reason",
saveError_duplicate="'$1' Error al guardar: archivo duplicado",
saveError_encode="'$1' Error al guardar: error de encoding",
saveError_other="'$1' Error al guardar: $2",
saveError_unknown="'$1' Error al guardar: desconocido",
-- copyDone="Copied!",
copyDone="¡Copiado con éxito!",
saveDone="Datos guardados",
exportSuccess="Exportado con éxito",
importSuccess="Importado con éxito",
@@ -90,7 +90,7 @@ return{
replayBroken="No se puede cargar la repetición",
-- dictNote="==Copied from TetroDictionary==",
dictNote="==Copia de TetroDictionary==",
getNoticeFail="Error al buscar novedades.",
oldVersion="¡Está disponible la nueva versión $1!",
@@ -127,12 +127,12 @@ return{
chatStart="------Comienzo del historial------",
chatHistory="------Nuevos mensajes------",
-- keySettingInstruction="Press to bind key\nescape: cancel\nbackspace: delete",
-- customBGhelp="Drop image file here to apply custom background",
-- customBGloadFailed="Unsupport image format for custom background",
keySettingInstruction="Pulsa la tecla a mapear\nEsc.: Cancelar\nBackspace: Borrar",
customBGhelp="Suelta una imagen aquí para aplicarla de fondo",
customBGloadFailed="Formato de imagen no soportado",
errorMsg="Ha ocurrido un error y Techmino necesita reiniciarse.\nSe creó un registro de error, puedes enviarlo al autor.",
-- tryAnotherBuild="[Invalid UTF-8] If you are on Windows, try downloading Techmino-win32 or Techmino-win64 (different from what you are using now).",
tryAnotherBuild="[UTF-8 Inválido] Si estás usando Windows, intenta descargar Techmino-win32 o Techmino-win64 (el que no estés usando ahora).",
-- modInstruction="",
-- modInfo={},--See lang_en.lua
@@ -173,7 +173,7 @@ return{
"Descargas desde otros sitios pueden contener malware/viruses, y en smartphones sólo requiere permisos de internet y vibración.",
"El autor no se responabiliza por daños ocasionados debido a modificaciones del juego.",
FNNS and"/"or"Por favor descarga las últimas versiones desde los sitios oficiales. El juego es gratuito",
-- FNNS and"/"or"Check Zictionary for more",
FNNS and"/"or"Ve el Zictionary (en inglés) para más info",
},
staff={
"Autor:MrZ Email: 1046101471@qq.com",
@@ -273,8 +273,8 @@ return{
lock="Retraso de Bloqueo",
wait="Retraso de Spawneo",
fall="Retraso de Línea",
-- hang="Death Delay",
-- hurry="ARE Interruption",
hang="Retraso de Muerte",
hurry="Interrupc. de ARE",
capacity="Capacidad",
create="Crear",
@@ -282,14 +282,14 @@ return{
ospin="O-Spin",
fineKill="100% Finesse",
b2bKill="No Romper B2B ",
-- lockout="Fail when lock out",
lockout="Derrota al ocurrir Lock Out",
easyFresh="Reinicio de Bloqueo Normal",
deepDrop="Deep Drop",
bone="Bone Block",
-- eventSet="Rule Set",
eventSet="Ruleset",
-- holdMode="Hold Mode",
holdMode="Modo de Reserva",
nextCount="Siguiente",
holdCount="Reserva",
infHold="Reserva Inft.",
@@ -298,13 +298,13 @@ return{
net_game={
ready="Estoy Listo",
spectate="Espectear",
-- cancel="Cancel ready",
cancel="Esperar",
},
setting_game={
title="Ajustes del Juego",
graphic="←Video",
sound="Sonido→",
-- style="Style",
style="Estilo",
ctrl="Sensibilidad",
key="Teclas",
@@ -313,10 +313,10 @@ return{
reTime="Retraso de Inicio",
RS="Sistema de Rotación",
menuPos="Pos. del Botón de Menú",
-- sysCursor="Use system cursor",
sysCursor="Usar cursor del sistema",
autoPause="Pausar cuando la ventana no está enfocada",
autoSave="Autograbar Récords",
-- autoLogin="Auto Login on Start",
autoLogin="Autologueo al Iniciar",
simpMode="Modo Sencillo",
},
setting_video={
@@ -344,13 +344,13 @@ return{
atkFX="FX Vis. de Ataque",
frame="Ratio de FPSs(%)",
-- FTlock="Frame-Time Lock",
FTlock="Bloqueo por frames",
text="Texto de Acciones",
score="Puntaje en Pantalla",
bufferWarn="Alerta de Búfer",
showSpike="Contador de Spike",
-- nextPos="Spawn Preview",
nextPos="Prever Spawn de Pzas.",
highCam="Cám. Vista Aérea",
warn="Alerta de Peligro",
@@ -359,9 +359,9 @@ return{
clean="Fast Draw",
fullscreen="Pant. Completa",
-- bg_on="Normal B.G.",
-- bg_on="No B.G.",
-- bg_custom="Use Custom B.G.",
bg_on="Fondo Normal",
bg_off="Sin Fondo",
bg_custom="Fondo Personalizado",
blockSatur="Saturac. de los Bloques",
fieldSatur="Saturac. del Tablero",
@@ -371,7 +371,7 @@ return{
game="←Juego",
graphic="Video→",
-- mainVol="Main Volume",
mainVol="Vol. Principal",
bgm="BGM",
sfx="SFX",
stereo="Estéreo",
@@ -380,9 +380,9 @@ return{
vib="Vibración",
voc="Voces",
-- autoMute="Mute while unfocused",
autoMute="Silenciar cuando la ventana no está enfocada",
fine="Sonido de Error de Finesse",
-- sfxPack="SFX Pack",
sfxPack="Pack de SFX",
vocPack="Pack de Voces",
apply="Aplicar",
},
@@ -460,8 +460,8 @@ return{
lock="Retraso de Bloqueo",
wait="Retraso de Spawneo",
fall="Retraso de Línea",
-- hang="Death Delay",
-- hurry="ARE Interruption",
hang="Retraso de Muerte",
hurry="Interrupc. de ARE",
bg="Fondo",
bgm="Música",
@@ -478,9 +478,9 @@ return{
sequence="Editar Secuencia (S)",
mission="Editar Misiones (M)",
-- eventSet="Rule Set",
eventSet="Ruleset",
-- holdMode="Hold Mode",
holdMode="Modo de Reserva",
nextCount="Siguiente",
holdCount="Reserva",
infHold="Reserva Inft.",
@@ -499,7 +499,7 @@ return{
ospin="O-Spin",
fineKill="100% Finesse",
b2bKill="No Romper B2B ",
-- lockout="Fail when lock out",
lockout="Derrota al ocurrir Lock Out",
easyFresh="Reinicio de Bloqueo Normal",
deepDrop="Deep Drop",
bone="Bone Block",
@@ -534,7 +534,7 @@ return{
about={
staff="Staff",
his="Hist. de Acts.",
-- legals="Legals",
legals="Legalidades",
},
dict={
title="TetroDictionary",
@@ -558,7 +558,7 @@ return{
sfx="SFX",
voc="Voces",
music="BGMs",
-- label="label",
label="Etiq.",
},
login={
title="Entrar",
@@ -645,7 +645,7 @@ return{
['dig_100l']= {"Queso", "100L", "Limpia 100 líneas de queso."},
['dig_400l']= {"Queso", "400L", "Limpia 400 líneas de queso."},
['drought_n']= {"Sequía", "100L", "¡Sin piezas I!"},
['drought_l']= {"Sequía+", "100L", "Guat de foc..."},
['drought_l']= {"Sequía+", "100L", "Qué es esto..."},
['marathon_n']= {"Maratón", "Normal", "Maratón de 200 líneas con velocidad en aumento."},
['marathon_h']= {"Maratón", "Difícil", "Maratón de 200 líneas a velocidad máxima."},
['solo_e']= {"VS.", "Fácil", "¡Derrota a la CPU!"},
@@ -653,12 +653,12 @@ return{
['solo_h']= {"VS.", "Difícil", "¡Derrota a la CPU!"},
['solo_l']= {"VS.", "Lunático", "¡Derrota a la CPU!"},
['solo_u']= {"VS.", "Supremo", "¡Derrota a la CPU!"},
['techmino49_e']= {"Tech 49", "Fácil", "Batalla de 49 jugadores. ¡El último en pie gana!"},
['techmino49_h']= {"Tech 49", "Difícil", "Batalla de 49 jugadores. ¡El último en pie gana!"},
['techmino49_u']= {"Tech 49", "Supremo", "Batalla de 49 jugadores. ¡El último en pie gana!"},
['techmino99_e']= {"Tech 99", "Fácil", "Batalla de 99 jugadores. ¡El último en pie gana!"},
['techmino99_h']= {"Tech 99", "Difícil", "Batalla de 99 jugadores. ¡El último en pie gana!"},
['techmino99_u']= {"Tech 99", "Supremo", "Batalla de 99 jugadores. ¡El último en pie gana!"},
['techmino49_e']= {"Tech 49", "Fácil", "Batalla de 49 jugadores.\n¡El último en pie gana!"},
['techmino49_h']= {"Tech 49", "Difícil", "Batalla de 49 jugadores.\n¡El último en pie gana!"},
['techmino49_u']= {"Tech 49", "Supremo", "Batalla de 49 jugadores.\n¡El último en pie gana!"},
['techmino99_e']= {"Tech 99", "Fácil", "Batalla de 99 jugadores.\n¡El último en pie gana!"},
['techmino99_h']= {"Tech 99", "Difícil", "Batalla de 99 jugadores.\n¡El último en pie gana!"},
['techmino99_u']= {"Tech 99", "Supremo", "Batalla de 99 jugadores.\n¡El último en pie gana!"},
['round_e']= {"Por Turnos", "Fácil", "Modo ajedrez."},
['round_n']= {"Por Turnos", "Normal", "Modo ajedrez."},
['round_h']= {"Por Turnos", "Difícil", "Modo ajedrez."},
@@ -666,15 +666,15 @@ return{
['round_u']= {"Por Turnos", "Supremo", "Modo ajedrez."},
['master_n']= {"Master", "Normal", "Para principiantes en 20G"},
['master_h']= {"Master", "Difícil", "¡Desafío profesional de 20G!"},
-- ['master_m']= {"Master", "M21", "For 20G Masters."},
['master_final']= {"Master", "FINAL", "El verdadero 20G Supremo: el final es inalcanzable."},
['master_ex']= {"GrandMaster", "EXTRA", "Para ser un gran maestro, acepta este desafío"},
['strategy_e']= {"Strategy", "EASY", "Fast 20G decision"},
['strategy_h']= {"Strategy", "HARD", "Fast 20G decision"},
['strategy_u']= {"Strategy", "ULTIMATE", "Fast 20G decision"},
-- ['strategy_e_plus']={"Strategi", "MUDAH+", "Keputusan 20G cepat"},
-- ['strategy_h_plus']={"Strategi", "SULIT+", "Keputusan 20G cepat"},
-- ['strategy_u_plus']={"Strategi", "TERAKHIR+", "Keputusan 20G cepat"},
['master_m']= {"Master", "M21", "Para Maestros del 20G."},
['master_final']= {"Master", "FINAL", "El verdadero 20G Supremo:\nel final es inalcanzable."},
['master_ex']= {"GrandMaster", "EXTRA", "Para ser un gran maestro,\nacepta este desafío"},
['strategy_e']= {"Strategy", "EASY", "Decisiones rápidas en 20G."},
['strategy_h']= {"Strategy", "HARD", "Decisiones rápidas en 20G."},
['strategy_u']= {"Strategy", "ULTIMATE", "Decisiones rápidas en 20G."},
['strategy_e_plus']={"Strategi", "MUDAH+", "Decisiones rápidas en 20G."},
['strategy_h_plus']={"Strategi", "SULIT+", "Decisiones rápidas en 20G."},
['strategy_u_plus']={"Strategi", "TERAKHIR+", "Decisiones rápidas en 20G."},
['blind_e']= {"A Ciegas", "Parcial", "Para novatos."},
['blind_n']= {"A Ciegas", "Total", "Para jugadores intermedios."},
['blind_h']= {"A Ciegas", "Inmediato", "Para jugadores experimentados"},
@@ -695,7 +695,7 @@ return{
['defender_l']= {"Defensor", "Lunático", "¡Practica la defensa!"},
['dig_h']= {"Downstack", "Difícil", "¡Practica el downstackeo!"},
['dig_u']= {"Downstack", "Supremo", "¡Practica el downstackeo!"},
-- ['clearRush']= {"Clear Rush", "NORMAL", "All-spin tutorial!\n[Under construction]"},
['clearRush']= {"Clear Rush", "NORMAL", "¡Tutorial de Allspins!\n[En construcción]"},
['c4wtrain_n']= {"Entrenar C4W", "Normal", "Combos infinitos."},
['c4wtrain_l']= {"Entrenar C4W", "Lunático", "Combos infinitos."},
['pctrain_n']= {"Entrenar PC", "Normal", "Modo sencillo para practicar Perfect Clears."},
@@ -711,7 +711,7 @@ return{
['tech_l']= {"Tech", "Lunático", "¡Mantén el B2B!"},
['tech_l_plus']= {"Tech", "Lunático+", "¡Sólo se permiten Spins y PCs!"},
['tech_finesse']= {"Tech", "Finesse", "¡No cometas errores de Finesse!"},
['tech_finesse_f']= {"Tech", "Finesse+", "Sin errores de finesse, ¡pero tampoco clears normales!"},
['tech_finesse_f']= {"Tech", "Finesse+", "Sin errores de finesse,\n¡pero tampoco clears normales!"},
['tsd_e']= {"Desafío de TSD", "Fácil", "¡Sólo se permiten T-Spin Dobles!"},
['tsd_h']= {"Desafío de TSD", "Difícil", "¡Sólo se permiten T-Spin Dobles!"},
['tsd_u']= {"Desafío de TSD", "Supremo", "¡Sólo se permiten T-Spin Dobles!"},
@@ -720,7 +720,7 @@ return{
['backfire_l']= {"Retorno", "Lunático", "Lidia con tus propias líneas basura."},
['backfire_u']= {"Retorno", "Supremo", "Lidia con tus propias líneas basura."},
['sprintAtk']= {"Sprint", "100L - Ataque", "¡Envía 100 líneas de ataque!"},
-- ['sprintEff']= {"Sprint", "Efficiency", "Send more attack in 40lines!"},
['sprintEff']= {"Sprint", "Efficiency", "¡Envía ataque eficiente en 40neas!"},
['zen']= {'Zen', "200L", "200 líneas sin límite de tiempo."},
['ultra']= {'Ultra', "Extra", "¡Consigue el mayor puntaje posible en 2 minutos!"},
['infinite']= {"Infinito", "", "Modo Sandbox."},

View File

@@ -357,7 +357,7 @@ return{
fullscreen="Plein écran",
-- bg_on="Normal B.G.",
-- bg_on="No B.G.",
-- bg_off="No B.G.",
-- bg_custom="Use Custom B.G.",
-- blockSatur="Block Saturation",
@@ -714,7 +714,7 @@ return{
['tech_l']= {"Tech", "LUNATIQUE", "Gardez le B2B !"},
['tech_l_plus']= {"Tech", "LUNATIQUE+", "Spin & PC uniquement"},
['tech_finesse']= {"Tech", "FINESSE", "Pas d'erreurs de finesse !"},
['tech_finesse_f']={"Tech", "FINESSE+", "Pas de nettoyages normaux, Pas d'erreurs de finesse !"},
['tech_finesse_f']={"Tech", "FINESSE+", "Pas de nettoyages normaux,\nPas d'erreurs de finesse !"},
['tsd_e']= {"TSD Challenge", "FACILE", "T-spin doubles uniquement !"},
['tsd_h']= {"TSD Challenge", "DIFFICILE", "T-spin doubles uniquement !"},
['tsd_u']= {"TSD Challenge", "ULTIME", "T-spin doubles uniquement !"},

View File

@@ -382,7 +382,7 @@ return{
fullscreen="Tela cheia",
-- bg_on="Normal B.G.",
-- bg_on="No B.G.",
-- bg_off="No B.G.",
-- bg_custom="Use Custom B.G.",
-- blockSatur="Block Saturation",
@@ -745,7 +745,7 @@ return{
['tech_l']= {"Tech", "LUNÁTICO", "Não quebre o B2B!"},
['tech_l_plus']= {"Tech", "LUNÁTICO+", "Apenas spins e PC"},
['tech_finesse']= {"Tech", "FINESSE", "Não erre a destreza!"},
['tech_finesse_f']= {"Tech", "FINESSE+", "Sem limpas normais, não erre a destreza!"},
['tech_finesse_f']= {"Tech", "FINESSE+", "Sem limpas normais,\nnão erre a destreza!"},
['tsd_e']= {"Desafio TSD", "FÁCIL", "Apenas T-spin-doubles!"},
['tsd_h']= {"Desafio TSD", "DIFÍCIL", "Apenas T-spin-doubles!"},
['tsd_u']= {"Desafio TSD", "ULTIMATE", "Apenas T-spin-doubles!"},

View File

@@ -796,6 +796,7 @@ return{
"报时机器人:新的一天开始了",
"本游戏还在测试中,出各种问题都是有可能的哦",
"本游戏使用精简版字体,可能有些特殊字符不能正确显示",
"别催了,在做了!",
"不要大力拍打或滑动哦",
"不要卖弱不要卖弱不要卖弱",
"不知道有多少人玩游戏的时候会关心游戏是谁做的",
@@ -803,9 +804,7 @@ return{
"彩色消除即将到来!",
"草(日本语)",
"车万方块是一家(暴论",
"成就系统在做了!",
"吃键?真的吗?建议回放看看到底按没按到,按了多久",
"触摸板打osu也很好",
"凑数tip什么时候能站起来",
"打铁.png",
"打铁",
@@ -836,7 +835,6 @@ return{
"混合消除即将到来!",
"架空消除即将到来!",
"建议使用双手游玩",
"据某个群友描述玩了Techmino之后打字速度变快了",
"绝大多数按钮上的图标是调用Unicode私用区里的自制字符实现的",
"科技骨牌 你的创新式块堆栈业务技术管理器",
"块东V共荣",
@@ -854,8 +852,9 @@ return{
"你今天的人品值是(满分100):"..math.random(100),
"你们考虑过Z酱的感受吗没有你们只考虑你自己。",
"你有一个好",
"你这场地是金子的还是是金子做的",
"你这是金子的还是垃圾行是金子做的",
"你准备好了吗?",
"配乐是有考虑到模式氛围的哦",
"请谨慎向没有方块经验的玩家推荐,会对本游戏的生存环境造成影响,感谢配合。",
"请勿大力敲打设备敲坏了就没有Techmino玩了",
"请勿使用三只手游玩",
@@ -882,7 +881,6 @@ return{
"物理hold了解一下",
"希望极简率没事",
"希望你们都能喜欢Z……哦不是喜欢Techmino",
"喜欢本游戏的话可以到应用商店下载",
"享受Tech的特色旋转系统",
"写不出那种很酷的音乐(哭",
"要盯着bug不放",
@@ -898,7 +896,7 @@ return{
"中文方块百科全书tetris.huijiwiki.com",
"众所周知俄罗斯方块是经典编程练手游戏(",
"众所周知mac不能拿来玩游戏",
"作业没做完别玩手机",
"作业没做完别玩手机",
"作者40行sub26了",
"作者电脑上装了11个方块",
"作者浏览器收藏夹里有6个方块",
@@ -945,6 +943,26 @@ return{
"Z酱是谁",
"Z酱只是个写代码的懂什么方块",
"Z块等身抱枕来一个(x",
"时间碎片[000] 2021/11/21加入这个版块",
"时间碎片[001] V0.0.091726加入TRS旋转系统",
"时间碎片[002] V0.7.9加入O-spin",
"时间碎片[003] V0.7.19加入语音系统",
"时间碎片[004] V0.7.22加入平滑下落",
"时间碎片[005] V0.8.5加入模式地图",
"时间碎片[006] V0.8.19加入五连块",
"时间碎片[007] V0.9.0加入自定义序列和模式",
"时间碎片[008] V0.10.0加入录像回放",
"时间碎片[009] V0.11.1加入小z词典",
"时间碎片[010] V0.12.2加入mod系统",
"时间碎片[011] V0.13.0联网对战测试",
"时间碎片[012] V0.13.2加入任意场地高度",
"时间碎片[013] V0.13.3加入控制台",
"时间碎片[014] V0.14.4加入第一首非Beepbox制作的BGM",
"时间碎片[015] V0.14.5加入第一首社区玩家自制BGM",
"时间碎片[016] V0.15.5加入录像回放菜单",
"时间碎片[017] V0.16.0加入BIRS",
"时间碎片[018] V0.16.2加入打击垫样式的音效室",
"时间碎片[019] V0.17.0加入手柄的摇杆和扳机支持",
"豆知识[001]总共有400多条tip哦",
"豆知识[002]背景影响游玩?可以去设置关闭",
"豆知识[003]方块默认出现的方向都是重心在下哦(如果你没乱动设置",
@@ -1047,18 +1065,16 @@ return{
"豆知识[100]Techmino生日不太清楚那就定在2019.6.26吧",
"豆知识[101]Techmino有一个简单的节日主题系统",
"豆知识[102]Techmino有一个Nspire-CX原型版本",
"豆知识[103]请在有一定基础之后再学Tspin不然副作用非常大",
"豆知识[104]新人请千万记住,打好基础,不要太早学那些花里胡哨的。",
"豆知识[105]长时间游戏状态会越来越差!玩久了记得放松一下~",
"健康小贴士[01]玩游戏多眨眼,不然会干眼病",
"健康小贴士[02]少玩点游戏,多注意眨眼和休息",
"健康小贴士[03]戴耳机(尤其是半入耳式)时音量千万别拉满,不然真的会影响听力(虽然很慢)",
"健康小贴士[04]不要熬夜,真的会猝死",
"健康小贴士[05]长期睡眠不足会引起不可逆的脑损伤(变傻)",
"Z思辨[01]《教育的力量》",
"Z思辨[02]《学习的意义》",
"Z思辨[03]《练习的力量》",
"Z思辨[04]《知识的力量》",
"Z思辨[05]《梦想的价值》",
"Z思辨[06]《天赋的力量》",
"Z思辨[07]《游戏的意义》",
"群友名言[001]“玩了Techmino之后发现打字速度变快了”",
"群友名言[002]“我要陪伴着tech一步步成长然后就可以疯狂的享受他”",
"Frt评[01]“成天被夸赞‘好玩’的”",
"Frt评[02]“可以形成方块圈子小中心话题,同作者一起衍生一些概念与梗的”",
"Frt评[03]“论方块的软工意义(就算这么小个范围内,各种取舍蒙混翻车现象都总会以很易懂的方式出现(”",
@@ -1086,26 +1102,6 @@ return{
"今日数学[13]sin²α-cos²β=-C(α+β)C(α-β)",
"今日数学[14]sin²α-sin²β=S(α+β)S(α-β)",
"今日数学[15]sin2α=2SαCα",
"时间碎片[000] 2021/11/21加入这个版块",
"时间碎片[001] V0.0.091726加入TRS旋转系统",
"时间碎片[002] V0.7.9加入O-spin",
"时间碎片[003] V0.7.19加入语音系统",
"时间碎片[004] V0.7.22加入平滑下落",
"时间碎片[005] V0.8.5加入模式地图",
"时间碎片[006] V0.8.19加入五连块",
"时间碎片[007] V0.9.0加入自定义序列和模式",
"时间碎片[008] V0.10.0加入录像回放",
"时间碎片[009] V0.11.1加入小z词典",
"时间碎片[010] V0.12.2加入mod系统",
"时间碎片[011] V0.13.0联网对战测试",
"时间碎片[012] V0.13.2加入任意场地高度",
"时间碎片[013] V0.13.3加入控制台",
"时间碎片[014] V0.14.4加入第一首非Beepbox制作的BGM",
"时间碎片[015] V0.14.5加入第一首社区玩家自制BGM",
"时间碎片[016] V0.15.5加入录像回放菜单",
"时间碎片[017] V0.16.0加入BIRS",
"时间碎片[018] V0.16.2加入打击垫样式的音效室",
"时间碎片[019] V0.17.0加入手柄的摇杆和扳机支持",
"Z哲[01]方块教会我们,合群了就会消失,……",
"Z哲[02]假如生活欺骗了你,不要悲伤,不要心急,还有块陪着你",
"Z哲[03]……合群了就会消失不合群世界毁灭指game over",
@@ -1120,22 +1116,32 @@ return{
"Z哲[12]学习能力很重要,只要你以变强为目的,无论玩游戏学知识都可以很难",
"Z哲[13]游戏确实可以是一种艺术形式,而不一定是纯“玩具”",
"Z哲[14]不希望激烈的零和竞争充斥整个游戏",
"Z哲[15]尝试手动控制圈子规模扩大速度,希望能对维持社区氛围有帮助",
"Z哲[16]圈子大了真的会……吗?我们可以试着做些什么,起码让这个过程慢一点",
"Z思辨[01]《教育的力量》",
"Z思辨[02]《学习的意义》",
"Z思辨[03]《练习的力量》",
"Z思辨[04]《知识的力量》",
"Z思辨[05]《梦想的价值》",
"Z思辨[06]《天赋的力量》",
"Z思辨[07]《游戏的意义》",
"Z思辨[08]《自强与竞争》",
"Z推[01]东方Project好玩",
"Z推[02]Minecraft好玩",
"Z推[03]Osu!好玩!",
"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.C,"z推[01]东方Project好玩"},
{C.C,"z推[02]Minecraft好玩"},
{C.C,"z推[03]Osu!好玩!"},
{C.C,"z推[04]Terraria好玩"},
{C.C,"z推[05]Celeste好玩"},
{C.C,"z推[06]World of goo好玩"},
{C.C,"z推[07]Orzmic好玩"},
{C.C,"z推[08]噗哟噗哟好玩!"},
{C.C,"z推[09]Phigros好玩"},
{C.C,"z推[10]VVVVVV好玩"},
{C.C,"z推[11]Ballance好玩"},
{C.C,"z推[12]Zuma好玩"},
{C.C,"z推[13]魔方好玩!"},
{C.C,"z推[14]15puzzle好玩"},
{C.C,"z推[15]扫雷好玩!"},
{C.H,"暂定段位:9"},
{C.H,"REGRET!!"},
{C.lC,"Xspin",C.Z,"是啥"},
@@ -1149,12 +1155,8 @@ return{
{C.R,"《滥用DMCA》"},
{C.R,"《知识产权法》"},
{C.R,"本游戏难度上限很高,做好心理准备。"},
{C.R,"不要向不感兴趣的路人推荐!!!!!!!!"},
{C.R,"请在有一定游戏基础之后再学Tspin不然副作用非常大"},
{C.R,"上班时间不许摸鱼打块!"},
{C.R,"上课时间不许摸鱼打块!"},
{C.R,"新人请千万记住,打好基础,不要太早学那些花里胡哨的。"},
{C.R,"长时间游戏状态会越来越差!玩久了记得放松一下~"},
{C.R,"DD",C.Z,"炮=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"D",C.Z,""},
{C.R,"DT",C.Z,"炮=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"T",C.Z,""},
{C.R,"LrL ",C.G,"RlR ",C.B,"LLr ",C.O,"RRl ",C.P,"RRR LLL ",C.C,"FFF ",C.Y,"RfR RRf rFF"},
@@ -1168,9 +1170,11 @@ return{
{C.Y,"暂定段位:MO"},
{C.Y,"暂定段位:MV"},
{C.Y,"Miya",C.Z," 可爱!"},
{C.Y,"O-spin Triple"},
{C.Y,"O-spin"},
{C.Z,"12",C.C,"",C.Z,""},
{C.Z,"效率药水",C.H," 效率提升 (8:00)"},
{C.Z,"堆叠药水",C.H," 堆叠提升 (3:00)"},
{C.Z,"挖掘药水",C.H," 挖掘提升 (8:00)"},
{C.Z,"效率药水",C.H," 效率提升 (3:00)"},
{C.Z,"协调药水",C.H," MD减少 II(1:30)"},
-- "Z酱 可爱!",
}

View File

@@ -318,8 +318,8 @@ function Player:act_softDrop()
self:act_down1()
end
self:checkTouchSound()
elseif self.gameEnv.deepdrop then
self:_deepdrop()
elseif self.gameEnv.deepDrop then
self:_deepDrop()
end
end
end
@@ -408,8 +408,8 @@ function Player:act_down1()
self.curY=self.curY-1
self:freshBlock('fresh')
self.spinLast=false
elseif self.gameEnv.deepdrop then
self:_deepdrop()
elseif self.gameEnv.deepDrop then
self:_deepDrop()
end
end
end
@@ -422,8 +422,8 @@ function Player:act_down4()
self.curY,self.ghoY=self.ghoY,ghoY0
self:freshBlock('fresh')
self.spinLast=false
elseif self.gameEnv.deepdrop then
self:_deepdrop()
elseif self.gameEnv.deepDrop then
self:_deepDrop()
end
end
end
@@ -436,8 +436,8 @@ function Player:act_down10()
self.curY,self.ghoY=self.ghoY,ghoY0
self:freshBlock('fresh')
self.spinLast=false
elseif self.gameEnv.deepdrop then
self:_deepdrop()
elseif self.gameEnv.deepDrop then
self:_deepDrop()
end
end
end
@@ -494,6 +494,15 @@ local playerActions={
Player.act_zangiLeft, --19
Player.act_zangiRight,--20
}function Player:pressKey(keyID)
if self.id==1 then
if GAME.recording then
local L=GAME.rep
ins(L,self.frameRun)
ins(L,keyID)
elseif self.streamProgress then
VK.press(keyID)
end
end
if self.keyAvailable[keyID]and self.alive then
if self.waiting>self.gameEnv.hurry then
self.waiting=self.gameEnv.hurry
@@ -505,18 +514,8 @@ local playerActions={
playerActions[keyID](self)
self.stat.key=self.stat.key+1
end
if self.id==1 then
if GAME.recording then
local L=GAME.rep
ins(L,self.frameRun)
ins(L,keyID)
elseif self.streamProgress then
VK.press(keyID)
end
end
end
function Player:releaseKey(keyID)
self.keyPressing[keyID]=false
if self.id==1 then
if GAME.recording then
local L=GAME.rep
@@ -526,6 +525,7 @@ function Player:releaseKey(keyID)
VK.release(keyID)
end
end
self.keyPressing[keyID]=false
end
function Player:newTask(code,...)
local thread=coroutine.create(code)

View File

@@ -532,7 +532,7 @@ local commands={}do
if arg:find"pl"and arg:find"fk"then
SCN.go('support','none')
else
love.system.openURL("https://www.bilibili.com/video/BV1GJ411x7h7?secretcode=fkpl")
love.system.openURL("https://www.bilibili.com/video/BV1uT4y1P7CX?secretcode=fkpl")
end
else
SCN.go('support','none')

View File

@@ -140,6 +140,7 @@ function scene.mouseMove(x,y)
end
end
function scene.mouseDown(x,y,k)
if k>3 then return end
if not curPen then
curPen=k
elseif curPen~=k then
@@ -149,6 +150,7 @@ function scene.mouseDown(x,y,k)
scene.mouseMove(x,y)
end
function scene.mouseUp(_,_,k)
if k>3 then return end
if curPen==k then
_pDraw()
curPen=false

View File

@@ -14,22 +14,28 @@ return[=[
0.17.1: 苏醒 Wake Up
新增:
全新模式选择界面(未完善,未来会增加更多便利功能)
新皮肤:pixel(by C₂₉H₂₅N₃O₅)
新语言:Bahasa Indonesia(by NOT_A_ROBOT)
改动:
修改选择模式音效
优化皮肤设置页面交互效果
重做关于页面
换新miya立绘,给不同立绘添加不同点击动画
略微降低master-h模式骨块出现后的难度
TRS的N/H添加一个踢墙
X块的默认色改为黄色
重做关于页面
微调全局颜色表
修复:
自定义场地界面按超过第三个的鼠标键会报错
经典模式h和u难度没有干旱计数器 #546
自定义场地16号色的方块名位置显示错误
登录界面读取本地账号密码数据错误
策略堆叠模式评级标准不当
云存档/读档的一处小问题
部分场景文本重叠问题
deepdrop坏了
混战模式坏了
0.17.0: 硬着陆 Hard Landing
新增:

View File

@@ -1,5 +1,5 @@
return{
["apkCode"]=420,
["apkCode"]=421,
["code"]=1701,
["string"]="V0.17.1",
["room"]="ver A-2",