Compare commits

...

25 Commits

Author SHA1 Message Date
Imple Lee
ecb64a112f fix release.yml (#728) 2022-07-18 00:12:25 +08:00
MrZ_26
deb8c09c22 版本推进 2022-07-18 00:01:16 +08:00
MrZ_26
9606cb2dc9 修正堆叠模式超额消除奖励 2022-07-17 23:58:59 +08:00
NOT_A_ROBOT
a4d6585e9c Add ability to remove garbage by clearing [height+2] lines or more (#714)
* Resolve #684

* oh right almost forgor stack_u 💀
2022-07-17 23:23:46 +08:00
XMiao
e161e39b66 Add a language zh_code & Adjust languages (#725)
* Add language zh_code & Adjust some language

* Update lang_pt.lua
2022-07-17 23:20:41 +08:00
NOT_A_ROBOT
8d61759d4c Secret grade mode improvements (#726)
* Fix crash when getting TM+6 and above

* Add line counter to secret grade
2022-07-17 22:58:18 +08:00
MrZ_26
5a004bcfa7 修正lang_ja一处语法错误 2022-07-17 22:58:15 +08:00
sakurw
52f16c2fb4 Update lang_ja.lua (#727) 2022-07-17 22:57:56 +08:00
MrZ_26
d993810269 主菜单ai不再会因为失焦而md致死 2022-07-17 22:39:27 +08:00
MrZ_26
a9ad95f0c8 回放菜单按钮位置微调 2022-07-17 22:35:54 +08:00
C₂₉H₂₅N₃O₅
0ed475c994 Updated Skins (#723)
* Three new skins: pastel, letters, kanji;
* Updated the minoes skin to match the color-block schemes
2022-07-04 01:16:39 +08:00
MrZ_26
f5e889214e 过期的域名暂时先换成云服务器ip 2022-07-01 10:24:09 +08:00
MrZ_26
ee658d34c5 修正中文词典几个关键字 2022-07-01 09:37:49 +08:00
渣渣120
87cf4ee5c7 Update .gitmodules (#722) 2022-06-30 10:29:35 +08:00
Particle_G
0771dd5159 Merge pull request #702 from 26F-Studio/imple/embed-lua-into-yml
actions: embed lua into yaml
2022-06-26 21:02:17 +08:00
MrZ_26
ef16ae9aec 更新赞助列表 2022-06-18 23:06:36 +08:00
MrZ_26
1a595a38f8 在音乐室场景失去焦点不会自动静音 close #710 2022-06-16 21:50:22 +08:00
NOT_A_ROBOT
9cb5b15c8f Update Indonesian translation again (#716) 2022-06-16 21:45:00 +08:00
NOT_A_ROBOT
ccc41d6b57 Update 40L WR tip (#715) 2022-06-16 21:44:39 +08:00
MrZ_26
ab48bec472 调整雷达图三个轴的比例 2022-06-16 21:44:09 +08:00
MrZ_26
f3f2f4dd95 忘改版本名 2022-06-11 13:38:36 +08:00
MrZ_26
6e37113b34 再更新字体文件 2022-06-09 02:12:30 +08:00
MrZ_26
a516cdb228 修改一个赞助id 2022-06-04 22:31:07 +08:00
Imple Lee
362cc506c5 fix yaml syntax error 2022-05-05 22:32:09 +08:00
Imple Lee
20351391ed actions: embed lua into yaml 2022-05-05 22:30:26 +08:00
37 changed files with 1587 additions and 172 deletions

View File

@@ -10,21 +10,27 @@ jobs:
get-info:
runs-on: ubuntu-20.04
outputs:
name: ${{ steps.actual-get-info.outputs.name }}
apkCode: ${{ steps.actual-get-info.outputs.apkCode }}
code: ${{ steps.actual-get-info.outputs.code }}
commit: ${{ steps.actual-get-info.outputs.commit }}
name: ${{ steps.lua-related.outputs.name }}
apkCode: ${{ steps.lua-related.outputs.apkCode }}
code: ${{ steps.lua-related.outputs.code }}
commit: ${{ steps.git-related.outputs.commit }}
steps:
- uses: actions/checkout@v2
- name: Install lua
run: |
sudo apt-get install lua5.3 -y
- name: Get Version
id: actual-get-info
id: lua-related
shell: lua {0}
run: |
local version = require 'version'
print("::set-output name=name::"..version.string)
print(("::set-output name=apkCode::%d"):format(version.apkCode))
print(("::set-output name=code::%d"):format(version.code))
- name: Get Commit
id: git-related
shell: bash
run: |
echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)"
echo "::set-output name=apkCode::$(lua .github/workflows/getVersion.lua -apkCode)"
echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)"
echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})"
automatic-test:
@@ -105,7 +111,7 @@ jobs:
with:
name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_Android
path: Techmino_Snapshot.apk
build-android-mini:
runs-on: ubuntu-20.04
needs: get-info

View File

@@ -1,28 +0,0 @@
local arg=arg[1]
if arg=="-apkCode"then
local code=require"version".apkCode
print(code)
elseif arg=="-code"then
local str=require"version".code
print(str)
elseif arg=="-name"then
local str=require"version".string
print(str)
elseif arg=="-release"then
local str=require"version".string:gsub("V","",1)
print(str)
elseif arg=="-updateTitle"then
local note=require"parts.updateLog"
local p1=note:find("\n%d")+1
local p2=note:find("\n",p1)-1
note=note:sub(p1,p2)
print(note)
elseif arg=="-updateNote"then
local note=require"parts.updateLog"
local p1=note:find("\n",note:find("\n%d")+1)+1
local p2=note:find("\n%d",p1+1)
note=note:sub(p1,p2-2)
:gsub(" ","- ")
:gsub(" ","# ")
print(note)
end

View File

@@ -9,31 +9,45 @@ jobs:
get-info:
runs-on: ubuntu-20.04
outputs:
name: ${{ steps.actual-get-info.outputs.name }}
apkCode: ${{ steps.actual-get-info.outputs.apkCode }}
code: ${{ steps.actual-get-info.outputs.code }}
release: ${{ steps.actual-get-info.outputs.release }}
updateTitle: ${{ steps.actual-get-info.outputs.updateTitle }}
updateNote: ${{ steps.actual-get-info.outputs.updateNote }}
commit: ${{ steps.actual-get-info.outputs.commit }}
name: ${{ steps.lua-related.outputs.name }}
apkCode: ${{ steps.lua-related.outputs.apkCode }}
code: ${{ steps.lua-related.outputs.code }}
release: ${{ steps.lua-related.outputs.release }}
updateTitle: ${{ steps.lua-related.outputs.updateTitle }}
updateNote: ${{ steps.lua-related.outputs.updateNote }}
commit: ${{ steps.git-related.outputs.commit }}
steps:
- uses: actions/checkout@v2
- name: Install lua
run: |
sudo apt-get install lua5.3 -y
- name: Get Version
id: actual-get-info
id: lua-related
shell: lua {0}
run: |
local version = require 'version'
print("::set-output name=name::"..version.string)
print(("::set-output name=apkCode::%d"):format(version.apkCode))
print(("::set-output name=code::%d"):format(version.code))
print("::set-output name=release::"..version.string:gsub("V", "", 1))
local note = require 'parts.updateLog'
local p1 = note:find("\n%d") + 1
local p2 = note:find("\n", p1) - 1
print("::set-output name=updateTitle::"..note:sub(p1, p2))
local p3 = note:find("\n", note:find("\n%d") + 1) + 1
local p4 = note:find("\n%d", p3 + 1)
print("::set-output name=updateNote::"..note:sub(p3, p4 - 2)
:gsub(" ", "- ")
:gsub(" ", "# ")
:gsub('%%', '%%25')
:gsub('\n', '%%0A')
:gsub('\r', '%%0D'))
- name: Get Commit
id: git-related
shell: bash
run: |
UPDATE_NOTE=$(lua .github/workflows/getVersion.lua -updateNote)
UPDATE_NOTE="${UPDATE_NOTE//'%'/'%25'}"
UPDATE_NOTE="${UPDATE_NOTE//$'\n'/'%0A'}"
UPDATE_NOTE="${UPDATE_NOTE//$'\r'/'%0D'}"
echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)"
echo "::set-output name=apkCode::$(lua .github/workflows/getVersion.lua -apkCode)"
echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)"
echo "::set-output name=release::$(lua .github/workflows/getVersion.lua -release)"
echo "::set-output name=updateTitle::$(lua .github/workflows/getVersion.lua -updateTitle)"
echo "::set-output name=updateNote::$UPDATE_NOTE"
echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})"
build-windows-x64:

View File

@@ -9,23 +9,29 @@ jobs:
get-info:
runs-on: ubuntu-20.04
outputs:
name: ${{ steps.actual-get-info.outputs.name }}
apkCode: ${{ steps.actual-get-info.outputs.apkCode }}
code: ${{ steps.actual-get-info.outputs.code }}
release: ${{ steps.actual-get-info.outputs.release }}
commit: ${{ steps.actual-get-info.outputs.commit }}
name: ${{ steps.lua-related.outputs.name }}
apkCode: ${{ steps.lua-related.outputs.apkCode }}
code: ${{ steps.lua-related.outputs.code }}
release: ${{ steps.lua-related.outputs.release }}
commit: ${{ steps.git-related.outputs.commit }}
steps:
- uses: actions/checkout@v2
- name: Install lua
run: |
sudo apt-get install lua5.3 -y
- name: Get Version
id: actual-get-info
id: lua-related
shell: lua {0}
run: |
local version = require 'version'
print("::set-output name=name::"..version.string)
print(("::set-output name=apkCode::%d"):format(version.apkCode))
print(("::set-output name=code::%d"):format(version.code))
print("::set-output name=release::"..version.string:gsub("V","",1))
- name: Get Commit
id: git-related
shell: bash
run: |
echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)"
echo "::set-output name=apkCode::$(lua .github/workflows/getVersion.lua -apkCode)"
echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)"
echo "::set-output name=release::$(lua .github/workflows/getVersion.lua -release)"
echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})"
build-windows:
@@ -51,7 +57,7 @@ jobs:
with:
name: Techmino_pre${{ needs.get-info.outputs.release }}_${{ needs.get-info.outputs.commit }}_Windows
path: love
build-linux:
runs-on: ubuntu-20.04
needs: get-info

2
.gitmodules vendored
View File

@@ -1,3 +1,3 @@
[submodule "Zframework"]
path = Zframework
url = git@github.com:26F-Studio/Zframework.git
url = https://github.com/26F-Studio/Zframework.git

View File

@@ -221,7 +221,7 @@ do--Z.setOnFocus
if SCN.cur=='game'and SETTING.autoPause then
pauseGame()
end
if SETTING.autoMute then
if SETTING.autoMute and SCN.cur~='music' then
TASK.removeTask_code(task_autoSoundOn)
TASK.new(task_autoSoundOff)
end
@@ -340,6 +340,9 @@ SKIN.load{
{name="ball_shaw",path='media/image/skin/ball_shaw.png'},
{name="retro_notypey",path='media/image/skin/retro_notypey.png'},
{name="pixel_chno",path='media/image/skin/pixel_chno.png'},
{name="pastel_chno",path='media/image/skin/pastel_chno.png'},
{name="letters_chno",path='media/image/skin/letters_chno.png'},
{name="kanji_chno",path='media/image/skin/kanji_chno.png'},
{name="textbone_mrz",path='media/image/skin/textbone_mrz.png'},
{name="coloredbone_mrz",path='media/image/skin/coloredbone_mrz.png'},
{name="wtf",path='media/image/skin/wtf_mrz.png'},
@@ -386,6 +389,7 @@ LANG.init('zh',
id=require'parts.language.lang_id',
ja=require'parts.language.lang_ja',
symbol=require'parts.language.lang_symbol',
zh_code=require'parts.language.lang_zh_code',
--1. Add language file to LANG folder;
--2. Require it;
--3. Add a button in parts/scenes/lang.lua;

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -1,18 +1,58 @@
local gc_setColor,gc_draw=love.graphics.setColor,love.graphics.draw
local ply_applyField=PLY.draw.applyField
local function GetOpenHole(num)
local function getOpenHole(num)
return -math.abs(((num-1) % 18)-9)+10
end
local F={}
local ranks={"10","9","8","7","6","5","4","3","2","1","S1","S2","S3","S4","S5","S6","S7","S8","S9","GM","GM+","TM","TM+","TM+₂","TM+₃", "TM+₄","TM+₅"}
-- lines: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
-- local ranks={"10","9","8","7","6","5","4","3","2","1","S1","S2","S3","S4","S5","S6","S7","S8","S9","GM","GM+","TM","TM+","TM+₂","TM+₃", "TM+₄","TM+₅"}
-- lines: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
local function getSmallNum(num)
local smalldigit={[0]="","","","","","","","","",""}
local str=tostring(num)
local out=""
for i=1,#str do
out=out..smalldigit[tonumber(string.sub(str,i,i))]
end
return out
end
local function getRank(index)
if index<11 then -- rank 10 - 1
return tostring(11-index)
elseif index<20 then -- S1 - S9 ranks
return "S"..index-10
elseif index<24 then -- GM, GM+, TM, TM+ ranks
local r={"GM","GM+","TM","TM+"}
return r[index-19]
else
return "TM+"..getSmallNum(index-22)
end
end
local function generateGuide(num)
local l=#F
if l>num then
return
end
for i=l,num do
F[i] = {}
local h=getOpenHole(i)
for j=1,10 do
F[i][j]=h==j and -1 or 21
end
end
end
return{
fkey1=function(P)P.modeData.showGuide=not P.modeData.showGuide end,
mesDisp=function(P)
mText(TEXTOBJ.grade,63,190)
mText(TEXTOBJ.line,63,310)
setFont(55)
mStr(ranks[P.modeData.rankPts],63,125)
mStr(getRank(P.modeData.rankPts),63,125)
mStr(P.modeData.rankPts-1,63,245)
ply_applyField(P)
local mark=TEXTURE.puzzleMark
gc_setColor(1,1,1)
@@ -29,26 +69,22 @@ return{
task=function(P)
P.modeData.rankPts=1
P.modeData.showGuide=true
for i=1,50 do
F[i] = {}
local h=GetOpenHole(i)
for j=1,10 do
F[i][j]=h==j and -1 or 21
end
end
generateGuide(10)
end,
hook_drop=function(P)
local D=P.modeData
D.rankPts=1
for i=1,#P.field do
local h=GetOpenHole(i)
local h=getOpenHole(i)
for j=1,10 do
if P.field[i][j]>0 and h==j then return end
if P.field[i][j]==0 and h~=j then return end
if P.field[i][j]>0 and h==j then goto post_pts_calc end
if P.field[i][j]==0 and h~=j then goto post_pts_calc end
end
if i==#P.field then return end
if P.field[i+1][h]==0 then return end
if i==#P.field then goto post_pts_calc end
if P.field[i+1][h]==0 then goto post_pts_calc end
D.rankPts=D.rankPts+1
end
::post_pts_calc::
generateGuide(D.rankPts+20)
end
}

View File

@@ -10,12 +10,20 @@ return{
hook_die=function(P)
local cc=P:clearFilledLines(P.garbageBeneath+1,#P.field-P.garbageBeneath)
if cc>0 then
local h=20-cc-P.garbageBeneath
if h>0 then
P:garbageRise(21,h,2e10-1)
local clearH=cc+P.garbageBeneath
if clearH<20 then
P:garbageRise(21,20-clearH,2e10-1)
if P.garbageBeneath>=20 then
P:lose()
end
elseif P.garbageBeneath>0 and clearH>20 then
local bonus=math.min(P.garbageBeneath,clearH-20)
if bonus>0 then
for _=1,bonus do
LINE.discard(table.remove(P.field,1))
LINE.discard(table.remove(P.visTime,1))
end
end
end
end
end,

View File

@@ -10,12 +10,20 @@ return{
hook_die=function(P)
local cc=P:clearFilledLines(P.garbageBeneath+1,#P.field-P.garbageBeneath)
if cc>0 then
local h=20-cc-P.garbageBeneath-3
if h>0 then
P:garbageRise(21,h,2e10-1)
if P.garbageBeneath>=20 then
local clearH=cc+P.garbageBeneath
if clearH<17 then
P:garbageRise(21,17-clearH,2e10-1)
if P.garbageBeneath>=17 then
P:lose()
end
elseif P.garbageBeneath>0 and clearH>17 then
local bonus=math.min(P.garbageBeneath,clearH-17)
if bonus>0 then
for _=1,bonus do
LINE.discard(table.remove(P.field,1))
LINE.discard(table.remove(P.visTime,1))
end
end
end
end
end,

Binary file not shown.

View File

@@ -26,8 +26,8 @@ return{
{"Official Website",
"homepage mainpage websites",
"help",
"TThe official website of Techmino!\nYou can download the latest stable build of Techmino and change your profile there.\nClick on the globe icon to open the website in your browser.",
"http://home.techmino.org",
"The official website of Techmino!\nYou can download the latest stable build of Techmino and change your profile there.\nClick on the globe icon to open the website in your browser.",
"http://101.43.110.22:10026",
},
{"Huiji Wiki",
"huiji wiki",

View File

@@ -11,7 +11,7 @@ return{
"homepage mainpage ホームページ メインページ",
"help",
"Techminoのオフィシャルサイトです!\nプロファイルの編集などができます!",
"http://home.techmino.org",
"http://101.43.110.22:10026",
},
{"初心者の方々へ",
"guide newbie noob readme ガイド 初心者 下手 下手くそ へた",

View File

@@ -21,7 +21,7 @@ return{
"official website homepage mainpage guanwang",
"help",
"Techmino的官网\n可以在上面下载游戏本体,或者修改头像以及个人信息。\n\n游戏作者的一些话强烈不建议在任何公开场合提及甚至宣传Techmino更不要随便就对外公布我们的官网链接请务必只在私下里向有基础或真的很有兴趣入坑认真玩的玩家推荐不然很容易拉低社群质量破坏交流氛围非常难处理甚至有可能影响游戏的未来发展。为了保证游戏未来会变得越来越好玩千万慎重考虑您对游戏的推广方式感谢您对Techmino的支持感谢配合",
"http://home.techmino.org",
"http://101.43.110.22:10026",
},
{"灰机Wiki",
"huiji",
@@ -640,7 +640,7 @@ return{
"Hold的另一种表现形式将手里的方块和Next槽中的第一个交换一般同样不能连续使用。",
},
{"深降",
"deepdrop shenjiang",
"深降 deepdrop shenjiang",
"term",
"开启后当方块触底时,再次按下软降会让方块尝试向下穿墙寻找放得下的地方,如果有就会直接瞬移到那\n该功能更偏向用于技术研究对于AI来说有了它可以完全不用再考虑旋转系统形状能容得下的地方一定都能到达",
},
@@ -680,7 +680,7 @@ return{
"攻击指通过消除给对手发送垃圾行;\n防御(相杀)指别人打过来攻击之后用攻击抵消;\n反击指抵消/吃下所有攻击后打出攻击。\n\n大多数方块游戏的攻防是1:1的4行攻击抵消对手的4行攻击。",
},
{"连击(Combo)",
"ren",
"ren lianji",
"term",
"从第二次消除起叫1 REN/Combo打出的攻击根据游戏设计的不同也不同。“REN” 这个名称来源于日语中的 “連”(れん)。",
},
@@ -700,17 +700,17 @@ return{
"Side 1 Wide\n旁边空1列是传统方块游戏里常见的消四打法。\n在现代方块对战中新手可以使用,短时间能打出大量攻击,但在高手场出场率不高,因为效率低,容易被对面一波打死,故只在极少数情况合适的时候用。",
},
{"S2W",
"连击 ·side2wide",
"连击 lianji ren side2wide",
"term",
"Side 2 Wide\n旁边空2列是常见的连击打法。\n难度很低现代方块对战中新手可以使用结合Hold可以很轻松地打出大连击。高手场使用不多因为准备时间太长会被对面提前打进垃圾行导致连击数减少或者直接Top Out效率也没有特别高故一套打完也不一定能杀人。",
},
{"S3W",
"连击 ·side2wide",
"连击 lianji ren side2wide",
"term",
"Side 3 Wide\n旁边空3列不如2w常见的连击打法。能打出的连击数比2w多但是难度偏大很容易断连。",
},
{"S4W",
"连击 ·side4wide",
"连击 lianji ren side4wide",
"term",
"Side 4 Wide\n旁边空4列一种连击打法能打出很高的连击并且准备时间比别的Wide打法短故动作快的话可以抢在对手打进垃圾之前堆很高然后打出超大连击。\n因为可能会被提前打死风险挺大所以没有c4w那么不平衡",
},
@@ -720,22 +720,22 @@ return{
"Center 1 Wide\n中间空1列一种实战里消4同时辅助打TSD的打法需要玩家理解<平衡法>,熟练之后可以轻松消四+T2输出难度也不是特别大。",
},
{"C2W",
"连击 ·center2wide centre2wide",
"连击 lianji ren center2wide centre2wide",
"term",
"Center 2 Wide\n中间空2列一种可能的连击打法不常见",
},
{"C3W",
"连击 ·center3wide centre3wide",
"连击 lianji ren center3wide centre3wide",
"term",
"Center 3 Wide\n中间空3列一种可能的连击打法不常见",
},
{"C4W",
"连击 ·center4wide centre4wide",
"连击 lianji ren center4wide centre4wide",
"term",
"Center 4 Wide\n中间空四列,一种连击打法,能打出很高的连击,利用了大多数专业对战方块游戏的死亡判定机制,可以放心堆高不担心被顶死,然后开始连击。是一种利用游戏机制的不平衡策略(尤其在开局时),观赏性不是很强还可以以弱胜强,成本太低所以成为了部分游戏中约定的类似 “禁招” 的东西,请在了解情况后再使用,不然可能会被别人骂。\nTechmino中虑到了平衡问题所以c4w的强度没有别的游戏那么夸张。",
},
{"N-Res",
"连击 ·residual c4w s4w",
"连击 lianji ren residual c4w s4w",
"term",
"N-Residual\nN-剩余指4w连击楼底部留几个方格常用的是3-Res和6-Res。\n3-Res路线少比较好学成功率也很高实战完全够用\n6-Res路线多更难用但是计算力很强的话比3-Res更稳也可以用来完成特殊挑战比如Techmino的c4w练习要求100连击通关\n\n优先使用6-Res然后是3-res和5-Res最后是4-Res",
},

View File

@@ -22,7 +22,8 @@ return{
royale_remain="$1 Players Left",
powerUp={[0]="+000%","+025%","+050%","+075%","+100%"},
cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!!","15 Combo!!","16 Combo!!","17 Combo!!!","18 Combo!!!","19 Combo!!!","MEGACMB"},
spin="-spin",
spin="-spin ",
spinNC="-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 ",
@@ -326,7 +327,7 @@ return{
WidgetText={
main={
offline="Single Player",
qplay="Last Played",
qplay="Last Played: ",
online="Multiplayer",
custom="Custom Game",
setting="Settings",
@@ -555,11 +556,11 @@ return{
shape="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:",
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",
@@ -886,7 +887,7 @@ return{
"1next 1hold!",
"1next 6hold!",
"20G actually is a brand new game rule!",
"40-line Sprint WR: 14.915s by Reset_",
"40-line Sprint WR: 14.708s by hiryu",
"6next 1hold!",
"6next 6hold?!",
"Achievement system coming soon!",

View File

@@ -21,7 +21,8 @@ return{
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",
spin="-spin ",
spinNC="-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 líneas",
mini="Mini",b2b="B2B ",b3b="B2B2B ",
@@ -326,7 +327,7 @@ return{
WidgetText={
main={
offline="Mapa de Modos",
qplay="Reciente",
qplay="Reciente: ",
online="Multijugador",
custom="Personalizado",
setting="Opciones",

View File

@@ -11,7 +11,8 @@ return{
atkModeName={"Aléatoire","Badges","K.O.s faciles","Attaquants"},
royale_remain="$1 Joueurs restants",
cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!!","15 Combo!!","16 Combo!!","17 Combo!!!","18 Combo!!!","19 Combo!!!","MEGACMB"},
spin="-spin",
spin="-spin ",
spinNC="-spin",
clear={"Simple","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 ",
@@ -293,7 +294,7 @@ return{
WidgetText={
main={
-- offline="Solo",
-- qplay="Last Play",
-- qplay="Last Play: ",
-- online="Multi",
-- custom="Mode perso.",
setting="Paramètres",

View File

@@ -23,8 +23,9 @@ return{
royale_remain="$1 Pemain Tersisa",
powerUp={[0]="+000%","+025%","+050%","+075%","+100%"},
cmb={nil,"1 Kombo","2 Kombo","3 Kombo","4 Kombo","5 Kombo","6 Kombo","7 Kombo","8 Kombo","9 Kombo","10 Kombo!","11 Kombo!","12 Kombo!","13 Kombo!","14 Kombo!!","15 Kombo!!","16 Kombo!!","17 Kombo!!!","18 Kombo!!!","19 Kombo!!!","MEGA KOMBO"},
spin=" spin",
clear={"Single","Double","Triple","Techrash","Pentacrash","Hexacrash","Heptacrash","Octacrash","Nonacrash","Decacrash","Undecacrash","Dodecacrash","Tridecacrash","Tetradecacrash","Pentadecacrash","Hexadecacrash","Heptadecacrash","Octadecacrash","Nonadecacrash","Ultracrash","Impossicrash"},
spin=" spin ",
spinNC=" spin",
clear={"Single","Double","Triple","Techrash","Pentacrash","Hexacrash","Heptacrash","Oktacrash","Nonacrash","Decacrash","Undecacrash","Dodecacrash","Tridecacrash","Tetradecacrash","Pentadecacrash","Hexadecacrash","Heptadecacrash","Octadecacrash","Nonadecacrash","Ultracrash","Impossicrash"},
cleared="$1 baris",
mini="Mini",b2b="B2B ",b3b="B2B2B ",
PC="PC",HPC="Setengah PC",
@@ -177,7 +178,7 @@ return{
"Baris/Baris Gali:",
"Serangan/Serangan Gali:",
"Diterima:",
"Jumlah Tindakan Membuat Baris:",
"Baris:",
"Spins:",
"B2B/B3B/PC/Setengah PC:",
"Efisiensi Tombol:",
@@ -327,7 +328,7 @@ return{
WidgetText={
main={
offline="Main Sendiri",
qplay="Terakhir Dimain",
qplay="Terakhir Dimain: ",
online="Multipemain",
custom="Permainan Tersesuai",
setting="Pengaturan",
@@ -693,7 +694,7 @@ return{
register="Daftar",
email="Alamat Email",
password="Password",
-- showEmail="Show Email",
showEmail="Tunjukkan Email",
keepPW="Ingat Saya",
login="Masuk",
},
@@ -780,7 +781,7 @@ return{
['dig_eff_40l']= {"Gali", "EFISIENSI 40L", "Gali 40 baris!"},
['dig_eff_100l']= {"Gali", "EFISIENSI 100L","Gali 100 baris!"},
['dig_eff_400l']= {"Gali", "EFISIENSI 400L","Gali 400 baris!"},
--['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Dig 10 garbage lines using only techrash!"},
['dig_quad_10l']= {"Gali", "TECHRASH 10L", "Gali 10 baris hanya dengan techrash!"},
['drought_n']= {"Nasib Buruk", "100L", "Tidak ada blok I..."},
['drought_l']= {"Nasib Buruk+", "100L", "Nasib sangat buruk..."},
['marathon_n']= {"Maraton", "NORMAL", "200-baris maraton dengan kecepatan meningkat"},
@@ -803,14 +804,14 @@ return{
['round_u']= {"Giliran", "TERAKHIR", "Giliran main melawan AI!"},
['big_n']= {"Besar", "NORMAL", "Main dalam tempat main lebih kecil!"},
['big_h']= {"Besar", "SULIT", "Main dalam tempat main lebih kecil!"},
['master_n']= {"Jago", "NORMAL", "Untuk pemula 20G"},
['master_h']= {"Jago", "SULIT", "Untuk pro 20G"},
['master_m']= {"Jago", "M21", "Untuk jago 20G"},
['master_final']= {"Jago", "TERAKHIR", "Lebih dari 20G"},
['master_ph']= {"Jago", "KHAYALAN", "???"},
['master_g']= {"Jago", "BERTINGKAT", "Dapatkan tingkat tertinggi!"},
['master_ex']= {"Sangat Jago", "EKSTRA", "Blok tidak kelihatan"},
['master_instinct']={"Jago", "INSTINK", "Bagaimana jika blok terkontrol tersembunyi?"},
['master_n']= {"Ahli", "NORMAL", "Untuk pemula 20G"},
['master_h']= {"Ahli", "SULIT", "Untuk pro 20G"},
['master_m']= {"Ahli", "M21", "Untuk jago 20G"},
['master_final']= {"Ahli", "TERAKHIR", "Lebih dari 20G"},
['master_ph']= {"Ahli", "KHAYALAN", "???"},
['master_g']= {"Ahli", "BERTINGKAT", "Dapatkan tingkat tertinggi!"},
['master_ex']= {"Sangat Ahli", "EKSTRA", "Blok tidak kelihatan"},
['master_instinct']={"Ahli", "INSTINK", "Bagaimana jika blok terkontrol tersembunyi?"},
['strategy_e']= {"Strategi", "MUDAH", "Keputusan 20G cepat"},
['strategy_h']= {"Strategi", "SULIT", "Keputusan 20G cepat"},
['strategy_u']= {"Strategi", "TERAKHIR", "Keputusan 20G cepat"},
@@ -869,8 +870,8 @@ return{
['infinite_dig']= {"Tak Terbatas: Gali","", "Gali, gali, gali"},
['marathon_inf']= {"Maraton", "TAK TERBATAS", "Maraton tanpa akhir."},
['custom_clear']= {"Tersesuai", "NORMAL"},
['custom_puzzle']= {"Tersesuai", "TEKA-TEKI"},
['custom_clear']= {"Tersesuai", "NORMAL"},
['custom_puzzle']= {"Tersesuai", "TEKA-TEKI"},
},
getTip={refuseCopy=true,
"(RUR'U')R'FR2U'R'U'(RUR'F')",
@@ -882,7 +883,7 @@ return{
"↑↑↓↓←→←→BA",
"$include<studio.h>",
"20G sebenarnya peraturan permainan baru!",
"Rekor dunia 40L: 14.915s dari Reset_",
"Rekor dunia 40L: 14.708s dari hiryu",
"Sistem pencapaian segera akan datang!",
"ALL SPIN!",
"Am G F G",

View File

@@ -23,7 +23,8 @@ return{
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",
spin="-spin ",
spinNC="-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 ",
@@ -328,7 +329,7 @@ return{
WidgetText={
main={
offline="ソロプレイ",
qplay="続きから",
qplay="続きから: ",
online="マルチプレイ",
custom="カスタムプレイ",
setting="設定",
@@ -769,13 +770,19 @@ return{
['sprint_100l']= {"スプリント", "100L", "100ライン消せ!"},
['sprint_400l']= {"スプリント", "400L", "400ライン消せ!"},
['sprint_1000l']= {"スプリント", "1,000L", "1,000ライン消せ!"},
['sprintPenta']= {"スプリント", "PENTOMINO", "ペントミで40ライン消せ!"},
['sprintPenta']= {"スプリント", "PENTOMINO", "ペントミで40ライン"},
['sprintMPH']= {"スプリント", "MPH", "ミノ順なし\nネクストなし\nホールドなし!"},
['sprint123']= {"スプリント", "M123", "、ドミ、トリミで40ライン"},
['secret_grade']= {"裏GM", "", "ガイドに従ってジグザグに穴を作れ!"},
['dig_10l']= {"掘り", "10L", "10ライン下穴を掘れ!"},
['dig_40l']= {"掘り", "40L", "40ライン下穴を掘れ!"},
['dig_100l']= {"掘り", "100L", "100ライン下穴を掘れ!"},
['dig_400l']= {"掘り", "400L", "400ライン下穴を掘れ!"},
--['dig_quad_10l']= {"堀り", "TECHRASH 10L", "techrashだけで10ライン下穴を掘れ!"},
['dig_eff_10l']= {"堀り", "EFFICIENCY 10L", "最小のミ数で10ライン掘れ!"},
['dig_eff_40l']= {"堀り", "EFFICIENCY 40L", "最小のミ数で40ライン掘れ!"},
['dig_eff_100l']= {"堀り", "EFFICIENCY 100L","最小のミ数で100ライン掘れ!"},
['dig_eff_400l']= {"堀り", "EFFICIENCY 400L","最小のミ数で400ライン掘れ!"},
['dig_quad_10l']= {"堀り", "TECHRASH 10L", "techrashだけで10ライン下穴を掘れ!"},
['drought_n']= {"ドラウト", "100L", "Iミ一切無し!"},
['drought_l']= {"ドラウト+", "100L", "わったーふ◯っく!"},
['marathon_n']= {"マラソン", "NORMAL", "加速する中で200ラインマラソン!"},
@@ -796,11 +803,14 @@ return{
['round_h']= {"ターン制", "HARD", "ターン制で高レベルAIと勝負!"},
['round_l']= {"ターン制", "LUNATIC", "ターン制でプロレベルAIと勝負!"},
['round_u']= {"ターン制", "ULTIMATE", "ターン制で神レベルAIと勝負!"},
['big_n']= {"ビッグ", "NORMAL", "小さい盤面でプレイ!"},
['big_h']= {"ビッグ", "HARD", "小さい盤面でプレイ!"},
['master_n']= {"マスター", "NORMAL", "20G 初心者方へ"},
['master_h']= {"マスター", "HARD", "20G 中級者の方へ"},
['master_m']= {"マスター", "M21", "20G 上級者の方へ"},
['master_final']= {"マスター", "FINAL", "20G その先へ"},
['master_ph']= {"マスター", "PHANTASM", "???"},
['master_g']= {"マスター", "GRADED", "最高段位を取れ!"},
['master_ex']= {"グランドマスター", "EXTRA", "一瞬よりも短い永遠"},
['master_instinct']={"マスター", "INSTINCT", "もしミノが一切見えなくなったら?"},
['strategy_e']= {"ストラテジー", "EASY", "20Gでの素早い判断"},
@@ -859,7 +869,7 @@ return{
['ultra']= {'ウルトラ', "EXTRA", "2分以内にできるだけ多くの点数を取る"},
['infinite']= {"無限", "", "サンドボックス"},
['infinite_dig']= {"無限: 掘り", "", "掘れ掘れ掘れ"},
['marathon_inf']= {"マラソン", "INFINITE", "永遠のマラソン"},
['marathon_inf']= {"マラソン", "INFINITE", "ずっとマラソン"},
['custom_clear']= {"カスタム", "NORMAL"},
['custom_puzzle']= {"カスタム", "PUZZLE"},
@@ -883,7 +893,7 @@ getTip={refuseCopy=true,
"20PCって何?",
"26TSDって何?",
"2つの回転を使ってみよう、3つ使うとさらにいいです!",
"40-line Sprint WR: 14.915s by Reset_",
"40-line Sprint WR: 14.708s by hiryu",
"6next 1hold!",
"6next 6hold?!",
"低音を響かせろ!",

View File

@@ -12,7 +12,8 @@ return{
atkModeName={"Aleatório","Emblemas","K.O.s","Atacantes"},
royale_remain="$1 Jogadores restantes",
cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!!","15 Combo!!","16 Combo!!","17 Combo!!!","18 Combo!!!","19 Combo!!!","MEGACMB"},
spin="-spin",
spin="-spin ",
spinNC="-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 ",
@@ -315,7 +316,7 @@ return{
WidgetText={
main={
offline="Solo",
-- qplay="Last Play",
-- qplay="Last Play: ",
online="Multi",
custom="Custom",
setting="Config.",
@@ -867,7 +868,7 @@ return{
"1next 1hold!",
"1next 6hold!",
"Na verdade 20G é uma regra de jogo nova.",
"40-lines Sprint WR: 14.915s by Reset_",
"40-lines Sprint WR: 14.708s by hiryu",
"6next 1hold!",
"6next 6hold?!",
"ALL SPIN!",

View File

@@ -22,7 +22,8 @@ return{
atkModeName={"?","( )","!","←→"},
royale_remain="$1 ~",
cmb={nil,"!","!!","!!!","!!!!","!!!!!","!!!!!!","!!!!!!!","!!!!!!!!","!!!!!!!!!","!!!!!!!!!!","!!!!!!!!!!!","!!!!!!!!!!!!","!!!!!!!!!!!!!","!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!",},
spin=" ~",
spinNC=" ~",
spin=" ~ ",
clear={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","20+"},
cleared="",
mini="v",b2b="^ ",b3b="^^ ",
@@ -135,7 +136,7 @@ return{
WidgetText={
main={
offline="!",
qplay="(!)",
qplay="(!): ",
online="!!!",
custom="_?!",
setting="_?_",

View File

@@ -22,7 +22,8 @@ return{
royale_remain="剩余 $1 名玩家",
powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP"},
cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo","11 Combo","12 Combo","13 Combo","14 Combo","15 Combo","16 Combo","17 Combo","18 Combo","19 Combo","MEGACMB"},
spin="-spin",
spin="-spin ",
spinNC="-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 ",
@@ -203,7 +204,7 @@ return{
"",
"使用LÖVE引擎",
"错误或者建议请附带截图发送到内测群或者作者邮箱~",
"仅通过官网 home.techmino.org 免费下载/更新",
"仅通过官网 *暂无域名,见词典* 免费下载/更新",
"其他渠道获得游戏皆有被修改/加广告/植入病毒的风险,程序只申请了振动&联网权限!",
"若由于被修改的本游戏产生的各种损失作者不负责(怎么负责啊我又没法管)",
FNNS and"/"or"请从正规途径获得最新版,游戏现为免费,不过有打赏当然感谢啦~",
@@ -327,7 +328,7 @@ return{
WidgetText={
main={
offline="单机游戏",
qplay="快速开始",
qplay="快速开始: ",
online="联网游戏",
custom="自定义",
setting="设置",
@@ -884,7 +885,7 @@ return{
"1next 6hold",
"3.1415926535897932384(\\d{3})",
"3next 1hold",
"40行世界纪录:14.915s by Reset_",
"40行世界纪录:14.708s by hiryu",
"6236326236327175",
"626in1",
"6next 1hold",

File diff suppressed because it is too large Load Diff

View File

@@ -22,7 +22,8 @@ return{
royale_remain="剩下 $1 名玩家",
powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP"},
cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo","11 Combo","12 Combo","13 Combo","14 Combo","15 Combo","16 Combo","17 Combo","18 Combo","19 Combo","MEGACMB"},
spin="-spin",
spin="-spin ",
spinNC="-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 ",
@@ -327,7 +328,7 @@ return{
WidgetText={
main={
offline="單人遊戲",
qplay="快速開始",
qplay="快速開始: ",
online="網路遊戲",
custom="自定義",
setting="設置",

View File

@@ -1,5 +1,26 @@
local ranks={"Grade 10","Grade 9","Grade 8","Grade 7","Grade 6","Grade 5","Grade 4","Grade 3","Grade 2","Grade 1","S1","S2","S3","S4","S5","S6","S7","S8","S9","GM","GM+","TM","TM+","TM+₂","TM+₃", "TM+₄","TM+₅"}
-- index: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
local function getSmallNum(num)
local smalldigit={[0]="","","","","","","","","",""}
local str=tostring(num)
local out=""
for i=1,#str do
out=out..smalldigit[tonumber(string.sub(str,i,i))]
end
return out
end
local function getRank(index)
if index<11 then -- rank 10 - 1
return "Grade "..tostring(11-index)
elseif index<20 then -- S1 - S9 ranks
return "S"..index-10
elseif index<24 then -- GM, GM+, TM, TM+ ranks
local r={"GM","GM+","TM","TM+"}
return r[index-19]
else
return "TM+"..getSmallNum(index-22)
end
end
return{
env={
drop=180,lock=180,
@@ -8,7 +29,7 @@ return{
bg='bg2',bgm='race',
},
score=function(P)return{P.modeData.rankPts,P.stat.piece}end,
scoreDisp=function(D)return ranks[D[1]].." "..D[2].." Pieces"end,
scoreDisp=function(D)return getRank(D[1]).." "..D[2].." Pieces"end,
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
getRank=function(P)
local G=P.modeData.rankPts

View File

@@ -15,7 +15,7 @@ return{
{font=65,name="世界沃德"},
{font=65,name="Petris"},
{font=65,name="Zakeru"},
{font=65,name=""},
{font=65,name="Dysprosium"},
{font=65,name="HitachiMako"},
{font=65,name="我慌死了"},
{font=65,name="PESWGGL"},
@@ -32,6 +32,7 @@ return{
{font=65,name="[**昆]"},
{font=65,name="[**浩]"},
{font=65,name="sakurw"},
{font=65,name="[**霖]"},
{font=25,name="八零哥"},
{font=25,name="蕴空之灵"},
@@ -133,4 +134,8 @@ return{
{font=25,name="你的忘机已上羡"},
{font=25,name="茗妖屿沉"},
{font=25,name="Not Tomorrow"},
{font=25,name="[**水]"},
{font=25,name="[**萩]"},
{font=25,name="gong"},
{font=25,name="T2003.George2003"},
}

View File

@@ -1732,8 +1732,8 @@ do
if dospin then
cscore=(spinSCR[C.name]or spinSCR[8])[cc]
if self.b2b>800 then
self:showText(text.b3b..text.block[C.name]..text.spin.." "..text.clear[cc],0,-30,35,'stretch')
yomi = yomi..text.b3b..text.block[C.name]..text.spin.." "..text.clear[cc]
self:showText(text.b3b..text.block[C.name]..text.spin..text.clear[cc],0,-30,35,'stretch')
yomi = yomi..text.b3b..text.block[C.name]..text.spin..text.clear[cc]
atk=b2bATK[cc]+cc*.5
exblock=exblock+1
cscore=cscore*2
@@ -1742,8 +1742,8 @@ do
VOC.play('b3b',CHN)
end
elseif self.b2b>=50 then
self:showText(text.b2b..text.block[C.name]..text.spin.." "..text.clear[cc],0,-30,35,'spin')
yomi = yomi..text.b2b..text.block[C.name]..text.spin.." "..text.clear[cc]
self:showText(text.b2b..text.block[C.name]..text.spin..text.clear[cc],0,-30,35,'spin')
yomi = yomi..text.b2b..text.block[C.name]..text.spin..text.clear[cc]
atk=b2bATK[cc]
cscore=cscore*1.2
Stat.b2b=Stat.b2b+1
@@ -1751,8 +1751,8 @@ do
VOC.play('b2b',CHN)
end
else
self:showText(text.block[C.name]..text.spin.." "..text.clear[cc],0,-30,45,'spin')
yomi = yomi..text.block[C.name]..text.spin.." "..text.clear[cc]
self:showText(text.block[C.name]..text.spin..text.clear[cc],0,-30,45,'spin')
yomi = yomi..text.block[C.name]..text.spin..text.clear[cc]
atk=2*cc
end
sendTime=20+atk*20
@@ -1942,7 +1942,7 @@ do
--Spin bonus
if dospin then
self:showText(text.block[C.name]..text.spin,0,-30,45,'appear')
self:showText(text.block[C.name]..text.spinNC,0,-30,45,'appear')
self.b2b=self.b2b+20
if self.sound then
SFX.play('spin_0')

View File

@@ -8,6 +8,7 @@ local langList={
id="Bahasa Indonesia",
ja="日本語",
symbol="?????",
zh_code="Code(zh);"
}
local languages={
"Language Langue Lingua",
@@ -60,7 +61,7 @@ scene.widgetList={
WIDGET.newButton{x=1000,y=210,w=330,h=100,font=40,fText=langList.zh, color='C',sound='click',code=function()_setLang('zh')end},
WIDGET.newButton{x=1000,y=330,w=330,h=100,font=40,fText=langList.zh_trad, color='S',sound='click',code=function()_setLang('zh_trad')end},
WIDGET.newKey {x=1000,y=450,w=330,h=100,font=40,fText='', color='P'},
WIDGET.newButton{x=1000,y=450,w=330,h=100,font=40,fText=langList.zh_code, color='P',sound='click',code=function()_setLang('zh_code')end},
WIDGET.newButton{name='back',x=1000,y=570,w=330,h=100,sound='back',font=60,fText=CHAR.icon.back,code=backScene},
}

View File

@@ -39,7 +39,7 @@ end
function scene.resize()
local qpModeName=text.modes[STAT.lastPlay]and text.modes[STAT.lastPlay][1]or"["..STAT.lastPlay.."]"
scene.widgetList[2]:setObject(text.WidgetText.main.qplay..": "..qpModeName)
scene.widgetList[2]:setObject(text.WidgetText.main.qplay..qpModeName)
end
function scene.mouseDown(x,y)
@@ -128,6 +128,7 @@ function scene.keyDown(key,isRep)
end
function scene.update(dt)
if dt>.26 then return end
PLAYERS[1]:update(dt)
scrollX=scrollX-162*dt
if scrollX<-tip:getWidth()then

View File

@@ -50,7 +50,7 @@ function scene.sceneInit()
S.piece/S.time*24, --Line'PM
S.dig/S.time*60, --DigPM
}
val={1/80,1/80,1/80,1/60,1/100,1/40}
val={1/80,1/160,1/120,1/80,1/100,1/40}
--Normalize Values
for i=1,6 do

View File

@@ -141,8 +141,8 @@ scene.widgetList={
listBox,
WIDGET.newButton{name='import',x=180,y=640,w=140,h=80,color='lB',code=pressKey'cV',font=50,fText=CHAR.icon.import},
WIDGET.newButton{name='export',x=350,y=640,w=140,h=80,color='lR',code=pressKey'cC',font=50,fText=CHAR.icon.export},
WIDGET.newButton{name='play', x=700,y=640,w=170,h=80,color='lY',code=pressKey'return',font=65,fText=CHAR.icon.play},
WIDGET.newButton{name='delete',x=850,y=640,w=80,h=80,color='lR',code=pressKey'delete',font=50,fText=CHAR.icon.trash},
WIDGET.newButton{name='play', x=640,y=640,w=170,h=80,color='lY',code=pressKey'return',font=65,fText=CHAR.icon.play},
WIDGET.newButton{name='delete',x=860,y=640,w=80,h=80,color='lR',code=pressKey'delete',font=50,fText=CHAR.icon.trash},
WIDGET.newButton{name='back', x=1140,y=640,w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=backScene},
}

View File

@@ -2,6 +2,18 @@ return[=[
未来计划:
R E M A K E
0.17.5: 昏暗 Dim
新增:
新皮肤:kanji,letters,pastel(by C₂₉H₂₅N₃O₅) #723
改动:
回放菜单按钮位置微调
调整雷达图三个轴的比例
在音乐室场景失去焦点不会自动静音 #710
堆叠模式消除超过目标线高度会奖励消除实心垃圾行
更新日文翻译
修复:
主菜单ai不再会因为失焦而md致死
0.17.4: 昏暗 Dim
改动:
TRS里T的1→0/3→0新增一个上1的踢

View File

@@ -12,6 +12,6 @@
A collection of various modern block game rules, more ways to play, and some new things added for a new experience.
[官网(建设中) Official website (WIP)](http://home.techmino.org)
[官网(建设中) Official website (WIP)](http://101.43.110.22:10026)
[维基(建设中) Github wiki](https://github.com/26F-Studio/Techmino/wiki)

View File

@@ -1,7 +1,7 @@
return{
["apkCode"]=442,
["code"]=1704,
["string"]="V0.17.4",
["apkCode"]=443,
["code"]=1705,
["string"]="V0.17.5",
["room"]="ver A-7",
["name"]="矿井 Mine",
["name"]="昏暗 Dim",
}