Compare commits
50 Commits
pre0.17.4-
...
v0.17.5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ecb64a112f | ||
|
|
deb8c09c22 | ||
|
|
9606cb2dc9 | ||
|
|
a4d6585e9c | ||
|
|
e161e39b66 | ||
|
|
8d61759d4c | ||
|
|
5a004bcfa7 | ||
|
|
52f16c2fb4 | ||
|
|
d993810269 | ||
|
|
a9ad95f0c8 | ||
|
|
0ed475c994 | ||
|
|
f5e889214e | ||
|
|
ee658d34c5 | ||
|
|
87cf4ee5c7 | ||
|
|
0771dd5159 | ||
|
|
ef16ae9aec | ||
|
|
1a595a38f8 | ||
|
|
9cb5b15c8f | ||
|
|
ccc41d6b57 | ||
|
|
ab48bec472 | ||
|
|
f3f2f4dd95 | ||
|
|
6e37113b34 | ||
|
|
a516cdb228 | ||
|
|
618be8898f | ||
|
|
2192e291a8 | ||
|
|
02de532241 | ||
|
|
2fa8978b47 | ||
|
|
390208abfa | ||
|
|
0a36523fbb | ||
|
|
8a61172764 | ||
|
|
97fd1721c5 | ||
|
|
55419cc183 | ||
|
|
db47528a37 | ||
|
|
38be81114f | ||
|
|
6c960fdde8 | ||
|
|
362cc506c5 | ||
|
|
20351391ed | ||
|
|
05c277a690 | ||
|
|
9dab204ae8 | ||
|
|
075f643fb7 | ||
|
|
8d4e2fa0d0 | ||
|
|
5d05583e26 | ||
|
|
31425440dc | ||
|
|
5409e18ede | ||
|
|
1d50e37df2 | ||
|
|
afa86fe0ac | ||
|
|
77b031fdde | ||
|
|
d0c71cd0af | ||
|
|
5b743a4103 | ||
|
|
da8d7e2080 |
52
.github/actions/automatic-test/action.yml
vendored
52
.github/actions/automatic-test/action.yml
vendored
@@ -4,6 +4,58 @@ description: 'Check for obvious errors.'
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Install lua
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get install lua5.3 -y
|
||||
- name: Check all lua files are valid
|
||||
shell: lua {0}
|
||||
run: |
|
||||
local files = assert(io.popen "find . -name '*.lua' -not -path '*/.git/*'")
|
||||
local errors = 0
|
||||
for file in files:lines() do
|
||||
local f, error = loadfile(file)
|
||||
if not f then
|
||||
print(error)
|
||||
errors = errors + 1
|
||||
end
|
||||
end
|
||||
files:close()
|
||||
|
||||
if errors > 0 then
|
||||
print(('%d syntax error(s) found.'):format(errors))
|
||||
os.exit(1)
|
||||
else
|
||||
print('No syntax error found.')
|
||||
end
|
||||
- name: Prepare FontTools
|
||||
shell: bash
|
||||
run: |
|
||||
pip install fonttools
|
||||
- name: Check all characters are in the font
|
||||
shell: python
|
||||
run: |
|
||||
from fontTools.ttLib import TTFont
|
||||
from pathlib import Path
|
||||
|
||||
font = TTFont('parts/fonts/proportional.otf')
|
||||
keys = set(font.getBestCmap().keys())
|
||||
|
||||
missing = []
|
||||
for file in Path('parts/language').glob('*.lua'):
|
||||
for i, line in enumerate(file.read_text().splitlines()):
|
||||
for char in line:
|
||||
if ord(char) not in keys:
|
||||
missing.append((char, file, i+1))
|
||||
|
||||
if missing:
|
||||
print('Missing characters:')
|
||||
for char, file, i in missing:
|
||||
print(f"'{char}'({ord(char):x}) in {file} at line {i} " \
|
||||
f"(${{ github.server_url }}/${{ github.repository }}/blob/${{ github.sha }}/{file}#L{i})")
|
||||
exit(1)
|
||||
else:
|
||||
print('All characters are present in the font.')
|
||||
- uses: ./.github/actions/build-love
|
||||
with:
|
||||
file-path: Techmino.love
|
||||
|
||||
24
.github/workflows/dev.yml
vendored
24
.github/workflows/dev.yml
vendored
@@ -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
|
||||
|
||||
28
.github/workflows/getVersion.lua
vendored
28
.github/workflows/getVersion.lua
vendored
@@ -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
|
||||
50
.github/workflows/release.yml
vendored
50
.github/workflows/release.yml
vendored
@@ -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:
|
||||
|
||||
28
.github/workflows/test.yml
vendored
28
.github/workflows/test.yml
vendored
@@ -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
2
.gitmodules
vendored
@@ -1,3 +1,3 @@
|
||||
[submodule "Zframework"]
|
||||
path = Zframework
|
||||
url = git@github.com:26F-Studio/Zframework.git
|
||||
url = https://github.com/26F-Studio/Zframework.git
|
||||
|
||||
Submodule Zframework updated: 7efa52be11...d1d5f4fabc
6
main.lua
6
main.lua
@@ -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;
|
||||
|
||||
BIN
media/image/skin/kanji_chno.png
Normal file
BIN
media/image/skin/kanji_chno.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
BIN
media/image/skin/letters_chno.png
Normal file
BIN
media/image/skin/letters_chno.png
Normal file
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 |
BIN
media/image/skin/pastel_chno.png
Normal file
BIN
media/image/skin/pastel_chno.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
@@ -97,8 +97,8 @@ do
|
||||
{131,2,2, 0, 0,0},{131,2,2,-1,-1,0},{131,2,2,-1, 0,0},--S
|
||||
{131,1,2,-1, 0,0},{131,1,2, 0,-1,0},{131,1,2, 0, 0,0},--Z(misOrder)
|
||||
{313,2,2, 0, 0,0},{313,2,2,-1,-1,0},{313,2,2,-1, 0,0},--S(misOrder)
|
||||
{331,3,2, 0,-1,1},--J(farDown)
|
||||
{113,4,2,-1,-1,1},--L(farDown)
|
||||
{331,3,2, 0,-1,0},--J(farDown)
|
||||
{113,4,2,-1,-1,0},--L(farDown)
|
||||
{113,3,2,-1,-1,0},{113,3,0, 0, 0,0},--J
|
||||
{331,4,2, 0,-1,0},{331,4,0,-1, 0,0},--L
|
||||
{222,7,0,-1, 1,1},{222,7,0,-2, 1,1},{222,7,0, 0, 1,1},--I(high)
|
||||
@@ -156,9 +156,9 @@ do
|
||||
false,--L
|
||||
{
|
||||
[01]={'+0+0','-1+0','-1+1','+0-2','-1-2','+0+1'},
|
||||
[10]={'+0+0','+1+0','+1-1','+0+2','+1+2','+0-1'},
|
||||
[10]={'+0+0','+1+0','+1-1','+0+2','+1+2','+0+1','+0-1'},
|
||||
[03]={'+0+0','+1+0','+1+1','+0-2','+1-2','+0+1'},
|
||||
[30]={'+0+0','-1+0','-1-1','+0+2','-1+2','+0-1'},
|
||||
[30]={'+0+0','-1+0','-1-1','+0+2','-1+2','+0+1','+0-1'},
|
||||
[12]={'+0+0','+1+0','+1-1','+0-1','-1-1','+0+2','+1+2','+1+1'},
|
||||
[21]={'+0+0','-1+0','+0-2','-1-2','-1-1','+1+1'},
|
||||
[32]={'+0+0','-1+0','-1-1','+0-1','+1-1','+0+2','-1+2','-1+1'},
|
||||
|
||||
@@ -2,6 +2,15 @@ local gc=love.graphics
|
||||
local sectionName={"D","C","B","A","A+","S-","S","S+","S+","SS","SS","U","U","X","X+"}
|
||||
local passPoint=16
|
||||
|
||||
local function getRollGoal(P)
|
||||
-- get amount of grades needed for X+
|
||||
local rem=12.4-P.modeData.rankPoint/10
|
||||
if rem<=0 then return 0 end
|
||||
local goal=math.floor(rem)*4
|
||||
rem=rem%1
|
||||
return goal + (rem>0.3 and 4 or rem*10)
|
||||
end
|
||||
|
||||
return{
|
||||
drop=0,lock=15,
|
||||
wait=15,fall=6,
|
||||
@@ -29,6 +38,7 @@ return{
|
||||
setFont(75)
|
||||
mStr(P.stat.row,63,230)
|
||||
mStr(P.stat.clears[4],63,340)
|
||||
PLY.draw.drawTargetLine(P,getRollGoal(P))
|
||||
end,
|
||||
hook_drop=function(P)
|
||||
if P.modeData.rankPoint<140-passPoint then--If Less then X
|
||||
|
||||
@@ -104,6 +104,21 @@ local function addGrade(row, cmb, lvl) -- IGS = internal grade system
|
||||
int_grade=int_grade+1
|
||||
end
|
||||
end
|
||||
local function getRollGoal()
|
||||
-- get amount of grades needed for TM+
|
||||
local rem=#gradeList-(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets)
|
||||
if rem<=0 then return 0 end
|
||||
local goal=0
|
||||
if cools>8 then
|
||||
goal=math.floor(rem)*4
|
||||
rem=rem%1
|
||||
return goal + (rem>0.3 and 4 or rem*10)
|
||||
else
|
||||
goal=math.floor(rem/0.26)*4
|
||||
rem=rem%0.26
|
||||
return goal + (rem>0.12 and 4 or rem*25)
|
||||
end
|
||||
end
|
||||
|
||||
return{
|
||||
drop=64,
|
||||
@@ -145,6 +160,7 @@ return{
|
||||
t=t/60
|
||||
gc.setColor(1.7*t,2.3-2*t,.3)
|
||||
mStr(T,63,248)
|
||||
PLY.draw.drawTargetLine(P,getRollGoal())
|
||||
else
|
||||
-- draw level counter
|
||||
setFont(20)
|
||||
@@ -295,10 +311,13 @@ return{
|
||||
TABLE.cut(P.visTime)
|
||||
elseif P.waiting==180 then
|
||||
playReadySFX(3,3)
|
||||
P:_showText("3",0,-120,120,'fly',1)
|
||||
elseif P.waiting==120 then
|
||||
playReadySFX(2,1)
|
||||
P:_showText("2",0,-120,120,'fly',1)
|
||||
elseif P.waiting==60 then
|
||||
playReadySFX(1,1)
|
||||
P:_showText("1",0,-120,120,'fly',1)
|
||||
elseif P.waiting==1 then
|
||||
playReadySFX(0,1)
|
||||
isInRollTrans=false
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.
Binary file not shown.
@@ -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",
|
||||
@@ -1232,262 +1232,4 @@ return{
|
||||
"english",
|
||||
"Acronym for “Away From Keyboard,” or in a broader sense, a period when you are not playing.\nTaking regular breaks help relieve your muscle strain and allow you to play better when you come back.",
|
||||
},
|
||||
|
||||
--Famous
|
||||
{"Side Note 2",
|
||||
"note nb NB DM notice",
|
||||
"name",
|
||||
"We make no guarantee that the descriptions in each entry are always up to date. This part of Zictionary is only about some basic descriptions on some famous Tetris players.",
|
||||
},
|
||||
{"Hebomai",
|
||||
"hbm",
|
||||
"name",
|
||||
"One of the top players.\nOnce Beat Wú Sōnghào (a Chinese player) on a Chiese TV show.",
|
||||
},
|
||||
{"Amemiya Taiyou",
|
||||
"amemiya taiyou",
|
||||
"name",
|
||||
"(あめみや たいよう)\n\nOne of the top players.\nWon champion on a game in Puyo Puyo Tetris’s Swap mode.",
|
||||
},
|
||||
{"Ajanba",
|
||||
"ajb",
|
||||
"name",
|
||||
"One of the top players.\nWon champion of JsCup.",
|
||||
},
|
||||
{"Blink",
|
||||
"",
|
||||
"name",
|
||||
"One of the top players.\nRuns the Tetris community, Hard Drop.",
|
||||
},
|
||||
{"Doremy",
|
||||
"123",
|
||||
"name",
|
||||
"One of the top players.\nAmemiya once said he was the second-best player in the world.",
|
||||
},
|
||||
{"Dr.Ocelot",
|
||||
"drocelot",
|
||||
"name",
|
||||
"A Tetr-developer who developed Tetra Legends. He also developed Tetra Online with Mine.",
|
||||
},
|
||||
{"Firestorm",
|
||||
"fst",
|
||||
"name",
|
||||
"One of the top players.\nWon champion of JsCup.",
|
||||
},
|
||||
{"Furea",
|
||||
"flare fuleiya jk",
|
||||
"name",
|
||||
"(ふれあ)\n\nOne of the top players.\nWorld record holder of Puyo Puyo Tetris’s Ultra mode.",
|
||||
},
|
||||
{"Iljain",
|
||||
"yijianlian",
|
||||
"name",
|
||||
"One of the top players.\nAchieved Rank 1 in Cultris II.",
|
||||
},
|
||||
{"Jonas",
|
||||
"",
|
||||
"name",
|
||||
"(1981–2021) One of the top players in Classic Tetris.\nFour-times-in-a-row champion of CTWC.",
|
||||
},
|
||||
{"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 gameover gamaover gameoverretry",
|
||||
"name",
|
||||
"One of the top players.\nFamous for how he can turn misdrops into donation setups.\nAka “GAMEOVER” “GAMAOVER” “GAME_OVER_RETRY”",
|
||||
},
|
||||
{"Microblizz",
|
||||
"",
|
||||
"name",
|
||||
"One of the top players.\nFormer world record holder for 40L Sprint.",
|
||||
},
|
||||
{"Vince",
|
||||
"vincehd",
|
||||
"name",
|
||||
"One of the top players.\nLast world record holder for 40L Sprint (no delay).",
|
||||
},
|
||||
{"Wumbo",
|
||||
"wumbotize squirtle",
|
||||
"name",
|
||||
"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",
|
||||
"",
|
||||
"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).",
|
||||
},
|
||||
{"Translator Note 3",
|
||||
"",
|
||||
"help",
|
||||
"Starting from here, all but one term are Chinese-specific (the not-Chinese 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",
|
||||
"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 were adapted from various sources such as Tetris Wiki and Hard Drop Wiki.",
|
||||
},
|
||||
{"MrZ",
|
||||
"mrz_26 t026 t626",
|
||||
"name",
|
||||
"Tetris Research community member, the main author of Techmino.\nPersonal bests: Sprint 25.95 seconds, MPH Sprint 57 seconds, #8 on Jstris leaderboards, X rank on TETR.IO, cleared TGM3 (World rule, Shirase gold 1300).",
|
||||
"https://space.bilibili.com/225238922",
|
||||
},
|
||||
|
||||
{"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",
|
||||
"",
|
||||
"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 qiqiupu",
|
||||
"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",
|
||||
"",
|
||||
"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",
|
||||
},
|
||||
{"xb",
|
||||
"xb",
|
||||
"name",
|
||||
"Tetris Research community member.\nThe main editor of Huiji Wiki.",
|
||||
},
|
||||
{"Flyz",
|
||||
"fxg",
|
||||
"name",
|
||||
"Tetris Research community member.\nA hardcore player.",
|
||||
"https://space.bilibili.com/787096",
|
||||
},
|
||||
{"gggf",
|
||||
"xiaoqi kissne gggf",
|
||||
"name",
|
||||
"Tetris Research community member.\nPersonal bests: Sprint 22.677 seconds (25.483 seconds on mobile), MPH Sprint 56 seconds, X rank on TETR.IO\nOne of the top players of 20G in China, achieved almost every achievement in TGM3.\n\nAlso a Touhou fan: IN:EX NM 1B FS; MF:L NM ",
|
||||
"https://space.bilibili.com/287769888",
|
||||
},
|
||||
{"蕴空之灵",
|
||||
"ykzl yunkongzhiling niao bird",
|
||||
"name",
|
||||
"(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",
|
||||
-- },
|
||||
{"奏之章",
|
||||
"zzz zouzhizhang",
|
||||
"name",
|
||||
"(Zòu Zhī Zhāng) Tetris Research community member.\nAuthor of ZZZbot. An important figure in the developement of Tetris AI in China.",
|
||||
"https://space.bilibili.com/311039",
|
||||
},
|
||||
{"吴淞昊",
|
||||
"wusonghao modian",
|
||||
"name",
|
||||
"(Wú Sōnghào)\n\nTetris Research community member.\nOne of the top players of hidden Tetris in China. Was once on TV.",
|
||||
"https://space.bilibili.com/17583394",
|
||||
},
|
||||
{"他天一",
|
||||
"tty tatianyi hydrofierus",
|
||||
"name",
|
||||
"(Tā Tiān Yī)\n\nTetris Research community member.\nPersonal bests: Sprint 21.908 seconds, U rank on TETR.IO.\nOne of the top players of Tetris in China.",
|
||||
"https://space.bilibili.com/3895759",
|
||||
},
|
||||
{"Mars608",
|
||||
"mars608",
|
||||
"name",
|
||||
"Tetris Research community member.\nFormer regional first place on Puyo Puyo Tetris (Nintendo Switch, PRC region).",
|
||||
"https://space.bilibili.com/1471400",
|
||||
},
|
||||
{"Mifu",
|
||||
"swl",
|
||||
"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",
|
||||
"name",
|
||||
"Also known as ThTsOd.\nTetris Research community member.\nA technical player.",
|
||||
"https://space.bilibili.com/4610502",
|
||||
},
|
||||
{"Tinko",
|
||||
"",
|
||||
"name",
|
||||
"Tetris Research community member.\nA technical player.",
|
||||
"https://tinko.moe",
|
||||
},
|
||||
{"T0722",
|
||||
"",
|
||||
"name",
|
||||
"Tetris Research community member.\nMusic Composer.",
|
||||
"https://space.bilibili.com/30452985",
|
||||
},
|
||||
{"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",
|
||||
},
|
||||
{"思竣",
|
||||
"sijun acm oi",
|
||||
"name",
|
||||
"(Sī Jùn)\n\nTetris Research community member.\nLots of mental computation power.",
|
||||
"https://space.bilibili.com/403250559",
|
||||
},
|
||||
{"柒栎流星",
|
||||
"t1013",
|
||||
"name",
|
||||
"(Qī Shuò Liú xīng) A music composer.",
|
||||
"https://space.bilibili.com/201145153",
|
||||
},
|
||||
{"Particle_G",
|
||||
"pg",
|
||||
"name",
|
||||
"Tetris Research community member.\nSprint 59.4 seconds\nThe developer of Techmino backend",
|
||||
"https://space.bilibili.com/3306106",
|
||||
},
|
||||
{"琳雨空",
|
||||
"linyukong",
|
||||
"name",
|
||||
"(Lín Yǔ Kong)\n\nTetris Research community member.\nSprint 38.3 seconds, Highest Rank in pentomino mode and Blind-WTF (world No.1)",
|
||||
"https://space.bilibili.com/263909369",
|
||||
},
|
||||
{"子心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",
|
||||
"name",
|
||||
"Tetris Research community member. The developer of Nanamino.",
|
||||
"https://space.bilibili.com/13014410",
|
||||
},
|
||||
{"蓝绿",
|
||||
"lanlv lanlyu gompyn imple lee blari'o blariho",
|
||||
"name",
|
||||
"(Lán Lǜ)\n\nTetris Research community member.\nParticipant of $1",--Techmino backend
|
||||
},
|
||||
{"喵田弥夜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",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ return{
|
||||
"homepage mainpage ホームページ メインページ",
|
||||
"help",
|
||||
"Techminoのオフィシャルサイトです!\nプロファイルの編集などができます!",
|
||||
"http://home.techmino.org",
|
||||
"http://101.43.110.22:10026",
|
||||
},
|
||||
{"初心者の方々へ",
|
||||
"guide newbie noob readme ガイド 初心者 下手 下手くそ へた",
|
||||
@@ -1130,246 +1130,4 @@ return{
|
||||
"english",
|
||||
"Acronym for \"Away From Keyboard\", or in a broader sense, a period when you are not playing.\nTaking regular breaks help relief your muscle strain and help you to play better when you come back.",
|
||||
},
|
||||
|
||||
--Famous
|
||||
{"Hebomai",
|
||||
"hbm",
|
||||
"name",
|
||||
"One of the top players.\nOnce Beat Wu Songhao (a Chinese player) on TV.",
|
||||
},
|
||||
{"Amemiya Taiyou",
|
||||
"amemiya taiyou",
|
||||
"name",
|
||||
"(あめみや たいよう)\n\nOne of the top players.\nWon champion on a game in Puyo Puyo Tetris's Swap mode.",
|
||||
},
|
||||
{"Ajanba",
|
||||
"ajb",
|
||||
"name",
|
||||
"One of the top players.\nWon champion of JsCup.",
|
||||
},
|
||||
{"Blink",
|
||||
"",
|
||||
"name",
|
||||
"One of the top players.\nRuns the Tetris community, Hard Drop.",
|
||||
},
|
||||
{"Doremy",
|
||||
"123",
|
||||
"name",
|
||||
"One of the top players.\nAmemiya once said he was the second-best player in the world.",
|
||||
},
|
||||
{"Firestorm",
|
||||
"fst",
|
||||
"name",
|
||||
"One of the top players.\nWon champion of JsCup.",
|
||||
},
|
||||
{"Furea",
|
||||
"flare fuleiya jk",
|
||||
"name",
|
||||
"(ふれあ)\n\nOne of the top players.\nWorld record holder of Puyo Puyo Tetris's Ultra mode.",
|
||||
},
|
||||
{"Iljain",
|
||||
"yijianlian",
|
||||
"name",
|
||||
"One of the top players.\nAchieved Rank 1 in Cultris II.",
|
||||
},
|
||||
{"Jonas",
|
||||
"",
|
||||
"name",
|
||||
"(1981-2021) One of the top players in Classic Tetris.\nFour-times-in-a-row champion of CTWC.",
|
||||
},
|
||||
{"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",
|
||||
"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",
|
||||
"",
|
||||
"name",
|
||||
"One of the top players.\nFormer world record holder for Sprint.",
|
||||
},
|
||||
{"Vince",
|
||||
"vincehd",
|
||||
"name",
|
||||
"One of the top players.\nLast world record holder for Sprint (no delay).",
|
||||
},
|
||||
{"Wumbo",
|
||||
"wumbotize squirtle",
|
||||
"name",
|
||||
"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",
|
||||
"",
|
||||
"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).",
|
||||
},
|
||||
{"Translator Note 3",
|
||||
"",
|
||||
"help",
|
||||
"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",
|
||||
"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.",
|
||||
},
|
||||
{"MrZ",
|
||||
"mrz_26 t026 t626",
|
||||
"name",
|
||||
"Tetris Research community member, the author of Techmino.\nPersonal bests: Sprint 25.95 seconds, MPH Sprint 57 seconds, #8 on Jstris leaderboards, X rank on TETR.IO, cleared TGM3 (World rule, Shirase gold 1300).",
|
||||
"https://space.bilibili.com/225238922",
|
||||
},
|
||||
|
||||
{"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",
|
||||
"",
|
||||
"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",
|
||||
"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",
|
||||
"",
|
||||
"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",
|
||||
},
|
||||
{"xb",
|
||||
"xb",
|
||||
"name",
|
||||
"Tetris Research community member.\nMain organizer for competitions in the community.",
|
||||
},
|
||||
{"Flyz",
|
||||
"fxg",
|
||||
"name",
|
||||
"Tetris Research community member.\nA technical player.",
|
||||
"https://space.bilibili.com/787096",
|
||||
},
|
||||
{"gggf",
|
||||
"xiaoqi kissne gggf",
|
||||
"name",
|
||||
"Tetris Research community member.\nPersonal bests: Sprint 22.677 seconds (25.483 seconds on mobile), MPH Sprint 56 seconds, X rank on Tetr.io\nOne of the top players of 20G in China, achieved almost every achievement in TGM3.\n\nAlso a Touhou fan: IN:EX NM 1B FS; MF:L NM ",
|
||||
"https://space.bilibili.com/287769888",
|
||||
},
|
||||
{"蕴空之灵",
|
||||
"ykzl yunkongzhiling niao bird",
|
||||
"name",
|
||||
"(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",
|
||||
-- },
|
||||
{"奏之章",
|
||||
"zzz zouzhizhang",
|
||||
"name",
|
||||
"(Zòu Zhī Zhāng) Tetris Research community member.\nAuthor of ZZZbot. An important figure in the developement of Tetris AI in China.",
|
||||
"https://space.bilibili.com/311039",
|
||||
},
|
||||
{"吴淞昊",
|
||||
"wusonghao modian",
|
||||
"name",
|
||||
"(Wú Sōnghào)\n\nTetris Research community member.\nOne of the top players of hidden Tetris in China. Was once on TV.",
|
||||
"https://space.bilibili.com/17583394",
|
||||
},
|
||||
{"他天一",
|
||||
"tty tatianyi hydrofierus",
|
||||
"name",
|
||||
"(Tā Tiān Yī)\n\nTetris Research community member.\nPersonal bests: Sprint 21.908 seconds, U rank on Tetr.io.\nOne of the top players of Tetris in China.",
|
||||
"https://space.bilibili.com/3895759",
|
||||
},
|
||||
{"Mars608",
|
||||
"mars608",
|
||||
"name",
|
||||
"Tetris Research community member.\nFormer regional first place on Puyo Puyo Tetris (Nintendo Switch, People's Republic of China region).",
|
||||
"https://space.bilibili.com/1471400",
|
||||
},
|
||||
{"Mifu",
|
||||
"swl",
|
||||
"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",
|
||||
"name",
|
||||
"Also known as ThTsOd.\nTetris Research community member.\nA technical player.",
|
||||
"https://space.bilibili.com/4610502",
|
||||
},
|
||||
{"Tinko",
|
||||
"",
|
||||
"name",
|
||||
"Tetris Research community member.\nA technical player.",
|
||||
"https://tinko.moe",
|
||||
},
|
||||
{"T0722",
|
||||
"",
|
||||
"name",
|
||||
"Tetris Research community member.\nMusic Composer.",
|
||||
"https://space.bilibili.com/30452985",
|
||||
},
|
||||
{"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",
|
||||
},
|
||||
{"思竣",
|
||||
"sijun acm oi",
|
||||
"name",
|
||||
"(Sī Jùn)\n\nTetris Research community member.\nLots of mental computation power.",
|
||||
"https://space.bilibili.com/403250559",
|
||||
},
|
||||
{"Particle_G",
|
||||
"pg",
|
||||
"name",
|
||||
"Tetris Research community member.\nSprint 59.4 seconds\nThe developer of Techmino backend",
|
||||
"https://space.bilibili.com/3306106",
|
||||
},
|
||||
{"琳雨空",
|
||||
"linyukong",
|
||||
"name",
|
||||
"(Lín Yǔ Kong)\n\nTetris Research community member.\nSprint 38.3 seconds, Highest Rank in pentomino mode and Blind-WTF (world No.1)",
|
||||
"https://space.bilibili.com/263909369",
|
||||
},
|
||||
{"子心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",
|
||||
"name",
|
||||
"Tetris Research community member. The developer of Nanamino.",
|
||||
"https://space.bilibili.com/13014410",
|
||||
},
|
||||
{"蓝绿",
|
||||
"lanlv lanlyu gompyn imple lee blari'o blariho",
|
||||
"name",
|
||||
"(Lán Lǜ)\n\nTetris Research community member.\nParticipant of $1",--Techmino backend
|
||||
},
|
||||
{"喵田弥夜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",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ return{
|
||||
{"新人学习/练习路线",
|
||||
"读我 必读 萌新 xinren new noob readme",
|
||||
"help",
|
||||
"以下是关于提升真正打块能力的指引,如果在以下任何项目练习过程中感到有困难,可以适当回去玩玩自己喜欢的项目。别忘了你是来 “玩” 游戏的,兴趣最重要。\n以下给出几个新手时期的主线任务树,前期主要就应该练习以下内容,学定式和T-Spin什么的对实力帮助很小(我们不认为靠定式对战秒其他萌新是有效实力):\n(注意,三段应当同时进行,不是A→B→C)\nA. 堆叠能力练习方法\n\tA1. 决定手上的块放哪的时候先别,看看下一块有没有地方放,如果放不下去,重新想手上的\n\tA2. 尝试把地形尽量控制得平整,因为比较平的地形来啥块都比较容易放得下去\nB. 操作效率与速度练习方法\n\tB1. 不要每一块都拿影子去对形状对位置,要自己想象这个块转一下是什么方向,想好了再开始按按键\n\tB2. 学习双旋,能逆时针转一次就不要顺时针转三次,费手\n\tB3. 学习极简,刚开始不用管速度,保证正确率最重要,养成良好习惯以后再提速快得很\nC. 堆叠能力考核\n\tC1. 稳定完成40行不死\n\tC2. 稳定不用hold完成40行\n\tC3. 稳定全消四完成40行\n\tC4. 稳定不用hold全消四完成40行\n以上都是根据社区和个人经验总结的模糊方法与目标,所以C的考核可以根据自身情况调整严格程度(例如 “稳定” 的具体成功率)。\n注:完成C的考核后,需要在未来一直注意没有上限的A1,这是方块的根本元素之一,强大的读next能力可以让你快速上手任何变种玩法。",
|
||||
"以下是关于提升真正打块能力的指引,如果在以下任何项目练习过程中感到有困难,可以适当回去玩玩自己喜欢的项目。别忘了你是来 “玩” 游戏的,兴趣最重要。\n以下给出几个新手时期的主线任务树,前期主要就应该练习以下内容,学定式和T-Spin什么的对实力帮助很小(我们不认为靠定式对战秒其他萌新是有效实力):\n(注意,三段应当同时进行,不是A→B→C)\nA. 堆叠能力练习方法\n\tA1. 决定手上的块放哪的时候先别,看看下一块有没有地方放,如果放不下去,重新想手上的\n\tA2. 尝试把地形尽量控制得平整,因为比较平的地形来啥块都比较容易放得下去\nB. 操作效率与速度练习方法\n\tB1. 不要每一块都拿影子去对形状对位置,要自己想象这个块转一下是什么方向,想好了再开始按按键\n\tB2. 学习双旋,能逆时针转一次就不要顺时针转三次,费手\n\tB3. 学习极简,刚开始不用管速度,保证正确率最重要,养成良好习惯以后再提速快得很\nC. 堆叠能力考核\n\tC1. 稳定完成40行不死(可以用hold)\n\tC2. 稳定完成40行不死(不能用hold)\n\tC3. 稳定全消四完成40行(可以用hold)\n\tC4. 稳定全消四完成40行(不能用hold)\n以上都是根据社区和个人经验总结的模糊方法与目标,所以C的考核可以根据自身情况调整严格程度(例如 “稳定” 的具体成功率)。\n注:完成C的考核后,需要在未来一直注意没有上限的A1,这是方块的根本元素之一,强大的读next能力可以让你快速上手任何变种玩法。",
|
||||
},
|
||||
{"关于T-spin学习",
|
||||
"T旋 T转 tspins",
|
||||
@@ -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来说有了它可以完全不用再考虑旋转系统,形状能容得下的地方一定都能到达",
|
||||
},
|
||||
@@ -674,13 +674,13 @@ return{
|
||||
"term",
|
||||
"欠债\n指必须完全堆好才能开始转下T旋打出攻击,堆完之前T下不去的形状。对战实战中如果要做此类(中局)定式时一定要观察对手情况确保自己安全,不然可能被半途打死\n\n一般只用来描述类似双T3/T3塔的大型组合炮,堆完之前完全不能打出攻击。",
|
||||
},
|
||||
{"攻守",
|
||||
"gong shou",
|
||||
{"攻防",
|
||||
"gongfang gongshou",
|
||||
"term",
|
||||
"攻击指通过消除给对手发送垃圾行;\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",
|
||||
},
|
||||
@@ -1229,259 +1229,9 @@ return{
|
||||
"english",
|
||||
"Away from keyboard\n一段时间不接触键盘,就是不玩一段时间,可以缓解手部疲劳,休息好之后马上破纪录也是可能的。",
|
||||
},
|
||||
|
||||
--人物
|
||||
{"注[2]",
|
||||
"备注 notice",
|
||||
"name",
|
||||
"描述不保证一直是最新的,知道有这么个人就好。",
|
||||
},
|
||||
{"吉备宏纯",
|
||||
"hebomai hbm jibei",
|
||||
"name",
|
||||
"一流玩家(在最强大脑上以3:0击败模电)。",
|
||||
},
|
||||
{"雨宫太阳",
|
||||
"amemiya taiyou yugong",
|
||||
"name",
|
||||
"一流玩家,曾获得PPT的Swap模式冠军。",
|
||||
},
|
||||
{"Ajanba",
|
||||
"ajb",
|
||||
"name",
|
||||
"一流玩家,得过Jscup冠军。",
|
||||
},
|
||||
{"Blink",
|
||||
"",
|
||||
"name",
|
||||
"一流玩家,很强。",
|
||||
},
|
||||
{"Doremy",
|
||||
"哆来咪 123",
|
||||
"name",
|
||||
"一流玩家,雨宫说他是世界第二。",
|
||||
},
|
||||
{"Dr.Ocelot",
|
||||
"drocelot",
|
||||
"name",
|
||||
"国外方块游戏开发者,独自开发了Tetra Legends。\n\n和Mine一起开发了Tetra Online,质量欠佳的半成品上架Steam 后受到大量圈内人士批评(但都虚心采纳并修改)。",
|
||||
},
|
||||
{"Firestorm",
|
||||
"fst",
|
||||
"name",
|
||||
"一流玩家,得过Jscup冠军。",
|
||||
},
|
||||
{"Furea",
|
||||
"flare fuleiya jk",
|
||||
"name",
|
||||
"一流玩家,PPT的Ultra的WR保持者。",
|
||||
},
|
||||
{"Iljain",
|
||||
"yijianlian",
|
||||
"name",
|
||||
"一流玩家,得过C2 Rank1。",
|
||||
},
|
||||
{"Jonas",
|
||||
"",
|
||||
"name",
|
||||
"(1981–2021)经典块一流玩家,曾经的经典块第一,CTWC4连冠。",
|
||||
},
|
||||
{"Joseph",
|
||||
"",
|
||||
"name",
|
||||
"经典块一流玩家,CTWC连冠,多项任天堂方块记录保持者。",
|
||||
},
|
||||
{"Kazu",
|
||||
"mdking",
|
||||
"name",
|
||||
"(也叫 “GAMEOVER” “GAMAOVER” “GAME_OVER_RETRY”)\n一流玩家,以熟练md转捐赠闻名(雾)。",
|
||||
},
|
||||
{"Microblizz",
|
||||
"",
|
||||
"name",
|
||||
"一流玩家,曾经的世界40L WR。",
|
||||
},
|
||||
{"Vince",
|
||||
"vincehd",
|
||||
"name",
|
||||
"一流玩家,上任世界最速保持者(无延迟方块)。",
|
||||
},
|
||||
{"Wumbo",
|
||||
"wangbo",
|
||||
"name",
|
||||
"一流玩家,有名的爱在对战用开局c4w的世界级玩家(别的能力也很强,只是喜欢开局c4w而已,所以名声不太好)。\n因为名字读音酷似王勃就得了个王勃的外号。",
|
||||
},
|
||||
{"Yakine",
|
||||
"heshui",
|
||||
"name",
|
||||
"一流玩家,有名的花式T-spin选手,实战压力不大的时候常常做出一些很神仙的高空捐赠,Jstris的20TSD速度榜全球第三名并且没有使用定式(前两名都用了LST),故群友戏称Yakine捐T如喝水。",
|
||||
},
|
||||
|
||||
{"小Z",
|
||||
"xiaoz zictionary tetrodictionary littlez",
|
||||
"name",
|
||||
"这个词典的名字!\n收录了各种常见术语的简单介绍和一些常用问题的回答,不是那种很详细的百科全书哦~\n曾经是群里的答疑机器人,主要用于方便地给新人答疑解惑,词典的数据开始也是沿用的机器人问答库。\n这个词典在编写的过程中参考了Hard Drop Wiki, Tetris Wiki和灰机Wiki等来源~",
|
||||
},
|
||||
{"MrZ",
|
||||
"zjiang t026 t626",
|
||||
"name",
|
||||
"【研究群】「T026」\n40L 25.95s,MPH40L 57s排世界第8(Jstris),TETR.IO段位X,TGM3(W)Shirase金1300通关。\n这个游戏的作者!",
|
||||
"https://space.bilibili.com/225238922",
|
||||
},
|
||||
|
||||
{"Circu1ation",
|
||||
"",
|
||||
"name",
|
||||
"一流玩家,国内第一个40L Sub20的玩家,TETR.IO段位X。",
|
||||
"https://space.bilibili.com/557547205",
|
||||
},
|
||||
{"Farter",
|
||||
"pi TTT t000 t222",
|
||||
"name",
|
||||
"【研究群】「TTTT」\n40L 26.193s\nCN块圈元老之一,T-ex和屁块的作者。",
|
||||
"https://space.bilibili.com/132966",
|
||||
},
|
||||
{"Teatube",
|
||||
"ttb chaguan chanaiye sifangchaye qiqiupu t022",
|
||||
"name",
|
||||
"【研究群】「T022」\n40L 33s top数据高峰约50L70A\n研究群管理,探索群群主,茶服服主,人形方块百科史书,现中文方块维基主催。\n自2011年正式加入CN方块社区以来,以探索方块有趣的思想作为主动力,茶茶今天也在茶馆里当着茶房管理员——\n\n其他名称:TTB,永远旋转的炸弹,茶乃叶,四方茶叶\n明明茶管是蓝孩子却被群友叫茶娘…怎么想都很奇怪啊!嘛大家喜欢的话就随便啦——",
|
||||
"https://space.bilibili.com/834903",
|
||||
},
|
||||
{"Sniraite",
|
||||
"shege 11renpc t024",
|
||||
"name",
|
||||
"【研究群】「T024」\n40L Sub 23\n国内一流方块玩家,应该是大陆最速。",
|
||||
"https://space.bilibili.com/561589",
|
||||
},
|
||||
{"xb",
|
||||
"t043",
|
||||
"name",
|
||||
"【研究群】「T043」\n俄罗斯方块中文维基(灰机wiki)主要编者(之一。",
|
||||
"https://space.bilibili.com/226132",
|
||||
},
|
||||
{"Flyz",
|
||||
"fxg t114",
|
||||
"name",
|
||||
"【研究群】「T114」\n高技术力。",
|
||||
"https://space.bilibili.com/787096",
|
||||
},
|
||||
{"gggf",
|
||||
"xiaoqi kissne t127",
|
||||
"name",
|
||||
"【研究群】「T127」\n40L 22.677s(手机25.483),tetr.io段位X\n20G规则国内一流玩家,拿到了TGM3几乎全部的最终成就(全世界都没几个)。\n其他名称:小柒 kissne 127。\n还是车车人,几个正作成绩:永EX NM 1B FS 风L NM。",
|
||||
"https://space.bilibili.com/287769888",
|
||||
},
|
||||
{"蕴空之灵",
|
||||
"ykzl yunkongzhiling niao bird t196",
|
||||
"name",
|
||||
"【研究群】「T196」\n40L 33s。\nvup,效率之光,不能吃辣。\n常用定式:信天翁 TKI3 开局PC。",
|
||||
"https://space.bilibili.com/9964553",
|
||||
},
|
||||
-- {"口〇口",
|
||||
-- "mono kouquankou dongxi t210",
|
||||
-- "name",
|
||||
-- "【研究群】「T210」\n【不是虚拟主播哦】,Techmino配音之一。",
|
||||
-- "https://space.bilibili.com/1048531896",
|
||||
-- },
|
||||
{"奏之章",
|
||||
"zzz zouzhizhang t274",
|
||||
"name",
|
||||
"【研究群】「T274」\nzzzbot的作者,CN块圈人工智能技术发展重要人物之一。",
|
||||
"https://space.bilibili.com/311039",
|
||||
},
|
||||
{"吴淞昊",
|
||||
"模电 wusonghao electric modian zhunbei t283",
|
||||
"name",
|
||||
"【研究群】「T283」\n国内一流隐形方块玩家,TGM3 World S13+GM,上过最强大脑。",
|
||||
"https://space.bilibili.com/17583394",
|
||||
},
|
||||
{"他天一",
|
||||
"tty tatianyi hydrofierus t512",
|
||||
"name",
|
||||
"【研究群】「T512」\n其他名称:Hydrofierus\n40L 21.908s,IO段位X\nC2/SRS对战水平国内一流\n常用定式:TKI 开局PC。",
|
||||
"https://space.bilibili.com/3895759",
|
||||
},
|
||||
{"Mars608",
|
||||
"mars huoxingge t608",
|
||||
"name",
|
||||
"【研究群】「T608」\n拿过NS PPT国区榜首。",
|
||||
"https://space.bilibili.com/1471400",
|
||||
},
|
||||
{"Mifu",
|
||||
"swl t616",
|
||||
"name",
|
||||
"【研究群】「T616」\n40L 28.445s。\nvup,miya的哥哥。",
|
||||
"https://space.bilibili.com/109356367",
|
||||
},
|
||||
{"ZXC",
|
||||
"thtsod flag ctf t655",
|
||||
"name",
|
||||
"【研究群】「T655」\n高技术力。",
|
||||
"https://space.bilibili.com/4610502",
|
||||
},
|
||||
{"Tinko",
|
||||
"t665",
|
||||
"name",
|
||||
"【研究群】「T665」\n高技术力。",
|
||||
"https://tinko.moe",
|
||||
},
|
||||
{"T0722",
|
||||
"t0722",
|
||||
"name",
|
||||
"【研究群】「T0722」\n音乐人。",
|
||||
"https://space.bilibili.com/30452985",
|
||||
},
|
||||
{"Diao",
|
||||
"mengxin t872",
|
||||
"name",
|
||||
"【研究群】「T872」\n(但这人老故意空着群名片啥都不写),一流对战选手,得过Jscup亚军,TTT冠军,HDO XII冠军\n有大量曾用名(nmdtql/diao/nanami等,还有一大堆高仿名)。",
|
||||
"https://space.bilibili.com/471341780",
|
||||
},
|
||||
{"思竣",
|
||||
"sijun t942 acm oi",
|
||||
"name",
|
||||
"【研究群】「T942」\n算力极强的思维型选手。",
|
||||
"https://space.bilibili.com/403250559",
|
||||
},
|
||||
{"柒栎流星",
|
||||
"t1013",
|
||||
"name",
|
||||
"【研究群】「T1013」\n音乐人。",
|
||||
"https://space.bilibili.com/201145153",
|
||||
},
|
||||
{"Particle_G",
|
||||
"particleg t1080",
|
||||
"name",
|
||||
"【研究群】「T1080」\n40L 59.4s\nTechmino后端(服务器)主要开发人员。",
|
||||
"https://space.bilibili.com/3306106",
|
||||
},
|
||||
{"琳雨空",
|
||||
"linyukong t1505",
|
||||
"name",
|
||||
"【研究群】「T1505」\n40L 38.3s,五连块最高评级,黑屏隐形最高评级(世界首位)。",
|
||||
"https://space.bilibili.com/263909369",
|
||||
},
|
||||
{"子心",
|
||||
"koishi zixin t1934",
|
||||
"name",
|
||||
"【研究群】「T1934」\nvup,T99国内一流战术型玩家。",
|
||||
"https://space.bilibili.com/147529",
|
||||
},
|
||||
{"ditoly",
|
||||
"葵 icrem kuimei bingqilin jk t3055",
|
||||
"name",
|
||||
"【研究群】「T3055」\n被清华劝退现于北大的打块天才jk(雾\n(好像也被北大劝退了?不知道)\n正在进行Nanamino的开发。",
|
||||
"https://space.bilibili.com/13014410",
|
||||
},
|
||||
{"蓝绿",
|
||||
"lanlv lanlyu gompyn imple lee blari'o blariho t3182",
|
||||
"name",
|
||||
"【研究群】「T3182」\n高技术力,参与了。",--Techmino后端开发
|
||||
},
|
||||
{"喵田弥夜",
|
||||
"miya miaotianmiye mao t7023",
|
||||
"name",
|
||||
"【研究群】「T7023」\nvup,喜欢打块的猫猫(Z酱单推),Techmino配音之一。",
|
||||
"https://space.bilibili.com/846180",
|
||||
{"Timing",
|
||||
"timing shiji fanji",
|
||||
"term",
|
||||
"Time作动词时的动名词形式,意为抓时机。在方块中往往指根据双方形势选择打出攻击的时机,和要不要故意吃下对手的攻击防止抵消,然后再把自己的攻击打过去。可以一定程度上提高对战的优势,但对于新人来说连自己场地都看不明白还看啥对面,有时间分析形势不如提速提效来得更好。",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
@@ -779,6 +780,7 @@ return{
|
||||
['dig_eff_40l']= {"Dig", "EFFICIENCY 40L", "Dig 40 garbage lines with the least pieces!"},
|
||||
['dig_eff_100l']= {"Dig", "EFFICIENCY 100L","Dig 100 garbage lines with the least pieces!"},
|
||||
['dig_eff_400l']= {"Dig", "EFFICIENCY 400L","Dig 400 garbage lines with the least pieces!"},
|
||||
['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Dig 10 garbage lines using only techrash!"},
|
||||
['drought_n']= {"Drought", "100L", "No I-pieces available"},
|
||||
['drought_l']= {"Drought+", "100L", "W T F"},
|
||||
['marathon_n']= {"Marathon", "NORMAL", "200-line marathon with increasing speed"},
|
||||
@@ -885,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!",
|
||||
|
||||
@@ -1,4 +1,14 @@
|
||||
return{
|
||||
loadText={
|
||||
loadSFX="Cargando efectos de sonido",
|
||||
loadSample="Cargando samples de música",
|
||||
loadVoice="Cargando voces",
|
||||
loadFont="Cargando fuentes",
|
||||
loadModeIcon="Cargando íconos",
|
||||
loadMode="Cargando modos",
|
||||
loadOther="Cargando otros assets",
|
||||
finish="Pulsa cualquier tecla",
|
||||
},
|
||||
fallback='en',
|
||||
sureQuit="Pulsa de nuevo para salir",
|
||||
sureReset="Pulsa de nuevo para reiniciar",
|
||||
@@ -11,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 ",
|
||||
@@ -22,7 +33,7 @@ return{
|
||||
stage="Fase $1 Completada",
|
||||
great="¡Genial!",
|
||||
awesome="¡Fantástico!",
|
||||
almost="¡Casi!",
|
||||
almost="¡Ya casi!",
|
||||
continue="¡Continúa!",
|
||||
maxspeed="¡Máx. Velocidad!",
|
||||
speedup="¡Más rápido!",
|
||||
@@ -34,13 +45,13 @@ return{
|
||||
grade="Grado",techrash="Techrash",
|
||||
wave="Ronda",nextWave="Sig. ronda",
|
||||
combo="Combo",maxcmb="Combo Máx.",
|
||||
pc="Perfect Clear",ko="KO",
|
||||
pc="Perfect Clear",ko="KOs",
|
||||
|
||||
win="Victoria",
|
||||
win="¡Victoria!",
|
||||
lose="Derrota",
|
||||
|
||||
finish="Fin",
|
||||
gamewin="Victoria",
|
||||
finish="Finalizado",
|
||||
gamewin="Has ganado",
|
||||
gameover="Fin del Juego",
|
||||
|
||||
pause="Pausa",
|
||||
@@ -55,7 +66,7 @@ return{
|
||||
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.",
|
||||
needRestart="Reinicia para aplicar los cambios.",
|
||||
|
||||
loadError_errorMode="'$1' Error al cargar: no hay modo '$2'",
|
||||
loadError_read="'$1' Error al cargar: error de lectura",
|
||||
@@ -94,15 +105,15 @@ return{
|
||||
|
||||
getNoticeFail="Error al buscar novedades.",
|
||||
oldVersion="¡Está disponible la nueva versión $1!",
|
||||
versionNotMatch="¡Las versiones no coinciden!",
|
||||
needUpdate="¡Nueva versión requerida!",
|
||||
versionNotMatch="¡Las versiones no coinciden!",
|
||||
notFinished="Próximamente",
|
||||
|
||||
jsonError="Error en Json",
|
||||
|
||||
noUsername="Por favor ingresa un nombre de usuario",
|
||||
wrongEmail="Correo electrónico incorrecto",
|
||||
noPassword="Por favor ingresa una contraseña",
|
||||
wrongEmail="Correo electrónico inválido",
|
||||
noPassword="Por favor ingresa la contraseña",
|
||||
diffPassword="Las contraseñas no coinciden",
|
||||
registerRequestSent="Petición de registro enviada con éxito",
|
||||
registerOK="¡Registro exitoso!",
|
||||
@@ -134,8 +145,31 @@ return{
|
||||
errorMsg="Ha ocurrido un error y Techmino necesita reiniciarse.\nSe creó un registro de error, puedes enviarlo al autor.",
|
||||
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
|
||||
modInstruction="¡Elige tus mods!\nLos mods permiten modificar el juego,\npero también es posible que lo crasheen.\nLos scores no se guardan durante el uso de mods.",
|
||||
modInfo={
|
||||
next="NEXT\nSobreescribe el nro. de piezas siguientes a mostrar.",
|
||||
hold="HOLD\nSobreescribe el nro. de piezas en reserva disponibles.",
|
||||
hideNext="Hidden NEXT\nOculta el nro. de pzas. especificado en la cola de pzas. siguientes.",
|
||||
infHold="InfiniHold\nPermite usar la reserva indefinidamente.",
|
||||
hideBlock="Hide Current Piece:\nHace invisible la pieza en juego.",
|
||||
hideGhost="No Ghost\nHace invisible la pieza fantasma.",
|
||||
hidden="Hide Locked Pieces.\nLas piezas ya puestas se vuelven invisibles tras un tiempo a especificar.",
|
||||
hideBoard="Hide Board\nEsconde el tablero parcial o totalmente.",
|
||||
flipBoard="Flip Board\nGira o invierte el tablero.",
|
||||
dropDelay="Gravity\nSobreescribe la velocidad de caída, en frames por bloque.",
|
||||
lockDelay="Lock Delay\nSobreescribe el retraso de bloqueo (en frames).",
|
||||
waitDelay="Spawn Delay\nSobreescribe el retraso de spawneo (en frames).",
|
||||
fallDelay="Line Clear Delay\nSobreescribe el retraso de limpieza de líneas, en frames.",
|
||||
life="Life\nCambia el nro inicial de vidas.",
|
||||
forceB2B="B2B Only\nTermina el juego si la barra de B2B baja por debajo del valor inicial.",
|
||||
forceFinesse="Finesse Only\nTermina el juego si se comete un error de finesse.",
|
||||
tele="Teleport\nFuerza DAS 0 y ARR 0.",
|
||||
noRotation="No Rotation\nDeshabilita la rotación de piezas.",
|
||||
noMove="No Movement\nDeshabilita mover las piezas a los lados.",
|
||||
customSeq="Randomizer\nSobreescribe el randomizador de la secuencia de piezas.",
|
||||
pushSpeed="Garbage Speed\nSobreescribe la velocidad de subida de lineas basura (bloques/frame).",
|
||||
boneBlock="[ ]\n Juega con bloques [ ], a la Electronika 60.",
|
||||
},
|
||||
pauseStat={
|
||||
"Tiempo:",
|
||||
"Tecla/Rot./Reserva:",
|
||||
@@ -164,18 +198,120 @@ return{
|
||||
"Err.Fns./RatioFns:",
|
||||
},
|
||||
aboutTexts={
|
||||
"Este es simplemente un juego de puzzle ordinario, no pienses de él como un juego promedio.",
|
||||
"Está inspirado en otros como C2/IO/JS/WWC/KOS.",
|
||||
"Este es simplemente un juego de puzzle *ordinario*. En serio, eso es todo.",
|
||||
"Inspirado en C2/IO/JS/WWC/KOS etc.",
|
||||
"",
|
||||
"Creado con LÖVE",
|
||||
"Puedes reportar errores o enviar sugerencias al grupo de testeo del autor o por email ~",
|
||||
"Descarga disponible únicamente vía el grupo de testeo y discord.gg/f9pUvkh",
|
||||
"Descargas desde otros sitios pueden contener malware/viruses, y en smartphones sólo requiere permisos de internet y vibración.",
|
||||
"¡Se aprecia cualquier tipo de sugerencia o reporte de bugs!",
|
||||
"Por favor descarga el juego únicamente desde los sitios oficiales,",
|
||||
"ya que no podemos asegurar que sea seguro si proviene de otro lado.",
|
||||
"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"Ve el Zictionary (en inglés) para más info",
|
||||
FNNS and"/"or"El juego es gratuito, pero se aprecian donaciones.",
|
||||
FNNS and"/"or"Ve el Zictionary (en inglés) para más info.",
|
||||
},
|
||||
staff={
|
||||
"ORIGINAL DE MrZ",
|
||||
"E-mail: 1046101471@qq.com",
|
||||
"",
|
||||
"Programado, Desarrollado y Diseñado Por",
|
||||
"MrZ",
|
||||
"",
|
||||
"Música hecha con",
|
||||
"Beepbox",
|
||||
"FL Studio",
|
||||
"FL Mobile",
|
||||
"Logic Pro X",
|
||||
"",
|
||||
"[CREADO CON LÖVE]",
|
||||
"",
|
||||
"Programación",
|
||||
"MrZ",
|
||||
"ParticleG",
|
||||
"Gompyn",
|
||||
"Trebor",
|
||||
"(scdhh)",
|
||||
"(FinnTenzor)",
|
||||
"(NOT_A_ROBOT)",
|
||||
"(user670)",
|
||||
"",
|
||||
"CI en GitHub, Packaging y Backend",
|
||||
"ParticleG",
|
||||
"Trebor",
|
||||
"LawrenceLiu",
|
||||
"Gompyn",
|
||||
"flaribbit",
|
||||
"scdhh",
|
||||
"",
|
||||
"Diseño Visual, Interfaz y UX",
|
||||
"MrZ",
|
||||
"Gnyar",
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"ScF",
|
||||
"(旋律星萤)",
|
||||
"(T0722)",
|
||||
"",
|
||||
"Ilustraciones",
|
||||
"Miya",
|
||||
"Mono",
|
||||
"Xiaoya",
|
||||
"葉枭",
|
||||
"",
|
||||
"Compositores",
|
||||
"MrZ",
|
||||
"柒栎流星",
|
||||
"ERM",
|
||||
"Trebor",
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"(T0722)",
|
||||
"(Aether)",
|
||||
"(Hailey)",
|
||||
"",
|
||||
"Efectos de sonido y Voces",
|
||||
"Miya",
|
||||
"Xiaoya",
|
||||
"Mono",
|
||||
"MrZ",
|
||||
"Trebor",
|
||||
"",
|
||||
"Traducciones y Localizaciones",
|
||||
"User670",
|
||||
"MattMayuga",
|
||||
"Mizu",
|
||||
"Mr.Faq",
|
||||
"ScF",
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"NOT_A_ROBOT",
|
||||
"sakurw",
|
||||
"Airun",
|
||||
"幽灵3383",
|
||||
"",
|
||||
"Performances",
|
||||
"Electric283",
|
||||
"Hebomai",
|
||||
"",
|
||||
"Agradecimientos",
|
||||
"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",
|
||||
"[Todo el staff de testeo]",
|
||||
"…Y a ti!",
|
||||
},
|
||||
|
||||
used=[[
|
||||
Herramientas utilizadas:
|
||||
Beepbox
|
||||
@@ -190,8 +326,8 @@ return{
|
||||
support="Apoyen al Autor",
|
||||
WidgetText={
|
||||
main={
|
||||
offline="1 Jugador",
|
||||
qplay="Jgo. Ráp.",
|
||||
offline="Mapa de Modos",
|
||||
qplay="Reciente: ",
|
||||
online="Multijugador",
|
||||
custom="Personalizado",
|
||||
setting="Opciones",
|
||||
@@ -244,7 +380,7 @@ return{
|
||||
password="Contraseña",
|
||||
description="Descripción",
|
||||
|
||||
life="Vida",
|
||||
life="Vidas",
|
||||
pushSpeed="Velocidad de Subida",
|
||||
garbageSpeed="Velocidad de Basura",
|
||||
visible="Visibilidad",
|
||||
@@ -549,7 +685,7 @@ return{
|
||||
register="Registrarse",
|
||||
email="Correo Elec.",
|
||||
password="Contraseña",
|
||||
-- showEmail="Show Email",
|
||||
showEmail="Mostrar Correo",
|
||||
keepPW="Recordar credenciales",
|
||||
login="Entrar",
|
||||
},
|
||||
@@ -625,10 +761,17 @@ return{
|
||||
['sprint_1000l']= {"Sprint", "1000L", "¡Limpia 1000 líneas!"},
|
||||
['sprintPenta']= {"Sprint", "Pentominos", "¡Limpia 40 líneas con los 18 pentominos distintos!"},
|
||||
['sprintMPH']= {"Sprint", "MPH", "Memoryless (sin memoria)\nPreviewless (sin pzas. siguientes)\nHoldless (sin reserva)."},
|
||||
['dig_10l']= {"Queso", "10L", "Limpia 10 líneas de queso."},
|
||||
['dig_40l']= {"Queso", "40L", "Limpia 40 líneas de queso."},
|
||||
['dig_100l']= {"Queso", "100L", "Limpia 100 líneas de queso."},
|
||||
['dig_400l']= {"Queso", "400L", "Limpia 400 líneas de queso."},
|
||||
['sprint123']= {"Sprint", "M123", "Limpia 40 líneas con monominos, biminos y triminos"},
|
||||
['secret_grade']= {"Secret Grade", "", "¡Arma dejando huecos en escalera, sigue la guía!"},
|
||||
['dig_10l']= {"Dig", "10L", "¡Limpia 10 líneas de queso lo más rápido que puedas!"},
|
||||
['dig_40l']= {"Dig", "40L", "¡Limpia 40 líneas de queso lo más rápido que puedas!"},
|
||||
['dig_100l']= {"Dig", "100L", "¡Limpia 100 líneas de queso lo más rápido que puedas!"},
|
||||
['dig_400l']= {"Dig", "400L", "¡Limpia 400 líneas de queso lo más rápido que puedas!"},
|
||||
['dig_eff_10l']= {"Dig", "Efic. 10L", "¡Limpia 10 líneas de queso con la menor cantidad de piezas posible!"},
|
||||
['dig_eff_40l']= {"Dig", "Efic. 40L", "¡Limpia 40 líneas de queso con la menor cantidad de piezas posible!"},
|
||||
['dig_eff_100l']= {"Dig", "Efic. 100L", "¡Limpia 100 líneas de queso con la menor cantidad de piezas posible!"},
|
||||
['dig_eff_400l']= {"Dig", "Efic. 400L", "¡Limpia 400 líneas de queso con la menor cantidad de piezas posible!"},
|
||||
--['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Dig 10 garbage lines using only techrash!"},
|
||||
['drought_n']= {"Sequía", "100L", "¡Sin piezas I!"},
|
||||
['drought_l']= {"Sequía+", "100L", "Qué es esto..."},
|
||||
['marathon_n']= {"Maratón", "Normal", "Maratón de 200 líneas con velocidad en aumento."},
|
||||
@@ -649,27 +792,32 @@ return{
|
||||
['round_h']= {"Por Turnos", "Difícil", "Modo ajedrez."},
|
||||
['round_l']= {"Por Turnos", "Lunático", "Modo ajedrez."},
|
||||
['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", "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"},
|
||||
['big_n']= {"Big", "Normal", "¡La matriz es más pequeña!"},
|
||||
['big_h']= {"Big", "Difícil", "¡La matriz es más pequeña!"},
|
||||
['master_n']= {"Master", "Normal", "Para principiantes en 20G."},
|
||||
['master_h']= {"Master", "Difícil", "Para entusiastas en 20G."},
|
||||
['master_m']= {"Master", "M21", "Para maestros del 20G."},
|
||||
['master_final']= {"Master", "Final", "Al 20Ginito y más allá!"},
|
||||
['master_ph']= {"Master", "Phantasm", "???"},
|
||||
['master_g']= {"Master", "Con rangos", "¡Consigue el rango más alto que puedas!"},
|
||||
['master_ex']= {"GrandMaster", "Extra", "Una eternidad que dura un instante."},
|
||||
['master_instinct']={"Master", "Instintivo", "¿Y si la pieza activa es invisible?"},
|
||||
['strategy_e']= {"Strategy", "Fácil", "Decisiones rápidas en 20G."},
|
||||
['strategy_h']= {"Strategy", "Difícil", "Decisiones rápidas en 20G."},
|
||||
['strategy_u']= {"Strategy", "Supremo", "Decisiones rápidas en 20G."},
|
||||
['strategy_e_plus']={"Strategy", "Fácil+", "Estrategia sin bodega."},
|
||||
['strategy_h_plus']={"Strategy", "Difícil+", "Estrategia sin bodega."},
|
||||
['strategy_u_plus']={"Strategy", "Supremo+", "Estrategia sin bodega."},
|
||||
['strategy_e_plus']={"Strategy", "Fácil+", "Lo mismo pero sin reserva!"},
|
||||
['strategy_h_plus']={"Strategy", "Difícil+", "Lo mismo pero sin reserva!"},
|
||||
['strategy_u_plus']={"Strategy", "Supremo+", "Lo mismo pero sin reserva!"},
|
||||
['blind_e']= {"A Ciegas", "Parcial", "Para novatos."},
|
||||
['blind_n']= {"A Ciegas", "Total", "Para jugadores intermedios."},
|
||||
['blind_h']= {"A Ciegas", "Inmediato", "Para jugadores experimentados"},
|
||||
['blind_h']= {"A Ciegas", "Inmediato", "Para jugadores experimentados."},
|
||||
['blind_l']= {"A Ciegas", "Inmediato+", "Para profesionales."},
|
||||
['blind_u']= {"A Ciegas", "?", "¿Estás preparado?"},
|
||||
['blind_wtf']= {"A Ciegas", "ELFUF", "No, no lo estás."},
|
||||
['classic_e']= {"Clásico", "EASY", "Modo clásico con alta velocidad."},
|
||||
['classic_h']= {"Clásico", "Difícil", "Modo clásico con alta velocidad."},
|
||||
['classic_l']= {"Clásico", "Lunático", "Modo clásico con alta velocidad."},
|
||||
['classic_u']= {"Clásico", "Supremo", "Modo clásico con alta velocidad."},
|
||||
['classic_e']= {"Clásico", "Fácil", "Modo clásico con velocidad baja."},
|
||||
['classic_h']= {"Clásico", "Difícil", "Modo clásico con velocidad media."},
|
||||
['classic_l']= {"Clásico", "Lunático", "Modo clásico con velocidad alta."},
|
||||
['classic_u']= {"Clásico", "Supremo", "Modo clásico con velocidad infernal :D"},
|
||||
['survivor_e']= {"Supervivencia", "Fácil", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
['survivor_n']= {"Supervivencia", "Normal", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
['survivor_h']= {"Supervivencia", "Difícil", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
@@ -684,7 +832,7 @@ return{
|
||||
['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."},
|
||||
['pctrain_l']= {"Entrenar PC", "Lunático", "Modo duro para practicar Perfect Clears."},
|
||||
['pctrain_l']= {"Entrenar PC", "Lunático", "Modo complejo para practicar Perfect Clears."},
|
||||
['pc_n']= {"Desafío de PCs", "Normal", "¡Consigue los PCs que puedas en 100 líneas!"},
|
||||
['pc_h']= {"Desafío de PCs", "Difícil", "¡Consigue los PCs que puedas en 100 líneas!"},
|
||||
['pc_l']= {"Desafío de PCs", "Lunático", "¡Consigue los PCs que puedas en 100 líneas!"},
|
||||
@@ -700,17 +848,17 @@ return{
|
||||
['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!"},
|
||||
['backfire_n']= {"Retorno", "Normal", "Lidia con tus propias líneas basura."},
|
||||
['backfire_h']= {"Retorno", "Difícil", "Lidia con tus propias líneas basura."},
|
||||
['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", "¡Envía ataque eficiente en 40 líneas!"},
|
||||
['backfire_n']= {"Retorno", "Normal", "Cancela tus propias líneas basura."},
|
||||
['backfire_h']= {"Retorno", "Difícil", "Cancela tus propias líneas basura."},
|
||||
['backfire_l']= {"Retorno", "Lunático", "Cancela tus propias líneas basura."},
|
||||
['backfire_u']= {"Retorno", "Supremo", "Cancela tus propias líneas basura."},
|
||||
['sprintAtk']= {"Sprint", "100L - Ataque", "¡Envía 100 líneas de ataque!"},
|
||||
['sprintEff']= {"Sprint", "Eficiencia", "¡Envía ataque eficiente en 40 líneas!"},
|
||||
['zen']= {'Zen', "200L", "200 líneas sin límite de tiempo."},
|
||||
['ultra']= {'Ultra', "Extra", "¡Consigue el mayor puntaje posible en 2 minutos!"},
|
||||
['ultra']= {'Ultra', "Extra", "¡Consigue el mayor puntaje /nposible en 2 minutos!"},
|
||||
['infinite']= {"Infinito", "", "Modo Sandbox."},
|
||||
['infinite_dig']= {"Infinito: Queso", "", "Limpia, limpia, más limpia que tú."},
|
||||
['marathon_inf']= {"Maratón", "Infinito", "Infinito maratón."},
|
||||
['marathon_inf']= {"Maratón", "Infinito", "Maratón infinita."},
|
||||
|
||||
['custom_clear']= {"Personalizado", "Normal"},
|
||||
['custom_puzzle']= {"Personalizado", "Puzzle"},
|
||||
|
||||
@@ -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",
|
||||
@@ -731,6 +732,7 @@ return{
|
||||
['dig_40l']= {"Dig", "40L", "Creusez 40 lines"},
|
||||
['dig_100l']= {"Dig", "100L", "Creusez 100 lines"},
|
||||
['dig_400l']= {"Dig", "400L", "Creusez 400 lines"},
|
||||
--['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Dig 10 garbage lines using only techrash!"},
|
||||
['drought_n']= {"Drought", "100L", "Pas de pièce I !"},
|
||||
['drought_l']= {"Drought+", "100L", "WTF ??!!"},
|
||||
-- ['stack_e']= {"Stack", "FACILE", "Pack them!"},
|
||||
|
||||
@@ -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,6 +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']= {"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"},
|
||||
@@ -802,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"},
|
||||
@@ -868,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')",
|
||||
@@ -881,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",
|
||||
|
||||
@@ -17,13 +17,14 @@ return{
|
||||
newDay="新しい1日、新しい始まりです!",
|
||||
playedLong="長時間プレイしています、適度に休憩をして!",
|
||||
playedTooMuch="かなり長くプレイしています! Techminoは楽しいですが、休憩を忘れずに!",
|
||||
settingWarn="使用頻度の低い設定を変更しています。注意してください。",
|
||||
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",
|
||||
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 ",
|
||||
@@ -67,7 +68,7 @@ return{
|
||||
ai_prebag="AIは通常のテトロミノではない物やカスタマイズされたミノ順に非対応です!",
|
||||
ai_mission="AIはカスタムミッションに非対応です!",
|
||||
switchSpawnSFX="ブロック出現時の効果音をONにしてください!",
|
||||
needRestart="すべての変更を適用する為に再起動してください!",
|
||||
needRestart="すべての変更を適用する為にリスタートしてください!",
|
||||
|
||||
loadError_errorMode="'$1'の読み込みに失敗: ロードモード'$2'が存在しません",
|
||||
loadError_read="'$1'の読み込みに失敗: 読み込みに失敗しました",
|
||||
@@ -95,8 +96,8 @@ return{
|
||||
VKCurW="現在の配置",
|
||||
|
||||
noScore="スコア無し",
|
||||
modeLocked="ロック",
|
||||
unlockHint="ランクB以上を取得すると解放されるよ!",
|
||||
modeLocked="未開放",
|
||||
unlockHint="前のステージでランクB以上を取得すると解放されます!",
|
||||
highScore="最高得点",
|
||||
newRecord="新記録!",
|
||||
|
||||
@@ -328,7 +329,7 @@ return{
|
||||
WidgetText={
|
||||
main={
|
||||
offline="ソロプレイ",
|
||||
qplay="続きから",
|
||||
qplay="続きから: ",
|
||||
online="マルチプレイ",
|
||||
custom="カスタムプレイ",
|
||||
setting="設定",
|
||||
@@ -420,7 +421,7 @@ return{
|
||||
net_game={
|
||||
ready="準備OK",
|
||||
spectate="観戦",
|
||||
cancel="待った",
|
||||
cancel="キャンセル",
|
||||
},
|
||||
setting_game={
|
||||
title="ゲームの設定",
|
||||
@@ -481,7 +482,7 @@ return{
|
||||
fullscreen="フルスクリーン",
|
||||
|
||||
bg_on="通常背景",
|
||||
bg_off="背景を閉じる ",
|
||||
bg_off="背景なし ",
|
||||
bg_custom="カスタム背景",
|
||||
|
||||
blockSatur="ブロックデザイン",
|
||||
@@ -514,7 +515,7 @@ return{
|
||||
|
||||
das="DAS",arr="ARR",
|
||||
dascut="DASカット",
|
||||
dropcut="自動ロックcut",
|
||||
dropcut="自動設置カット",
|
||||
sddas="ソフトドロップDAS",sdarr="ソフトドロップARR",
|
||||
ihs="先行ホールド",
|
||||
irs="先行回転",
|
||||
@@ -575,7 +576,7 @@ return{
|
||||
},
|
||||
customGame={
|
||||
title="カスタムプレイ",
|
||||
defSeq="デフォルトのミノ順",
|
||||
defSeq="通常のミノ順",
|
||||
noMsn="ミッションなし",
|
||||
|
||||
drop="自然落下時間",
|
||||
@@ -769,37 +770,47 @@ 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_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ラインマラソン!"},
|
||||
['marathon_h']= {"マラソン", "HARD", "高速の中で200ラインマラソン!"},
|
||||
['solo_e']= {"バトル", "EASY", "弱めのAIに勝て!"},
|
||||
['solo_n']= {"バトル", "NORMAL", "普通のAIに勝て!"},
|
||||
['solo_h']= {"バトル", "HARD", "強めのAIに勝て!"},
|
||||
['solo_e']= {"バトル", "EASY", "低レベルのAIに勝て!"},
|
||||
['solo_n']= {"バトル", "NORMAL", "通常レベルのAIに勝て!"},
|
||||
['solo_h']= {"バトル", "HARD", "高レベルのAIに勝て!"},
|
||||
['solo_l']= {"バトル", "LUNATIC", "プロレベルのAIに勝て!"},
|
||||
['solo_u']= {"バトル", "ULTIMATE", "神レベルのAIに勝て!"},
|
||||
['techmino49_e']= {"テック 49", "EASY", "弱めの49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino49_h']= {"テック 49", "HARD", "強めの49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino49_u']= {"テック 49", "ULTIMATE", "神レベルの49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_e']= {"テック 99", "EASY", "弱めの99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_h']= {"テック 99", "HARD", "強めの99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_u']= {"テック 99", "ULTIMATE", "神レベルの99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['round_e']= {"ターン制", "EASY", "ターン制で弱めのAIと勝負!"},
|
||||
['round_n']= {"ターン制", "NORMAL", "ターン制で普通のAIと勝負!"},
|
||||
['round_h']= {"ターン制", "HARD", "ターン制で強めのAIと勝負!"},
|
||||
['round_l']= {"ターン制", "LUNATIC", "ターン制でプロレベルのAIと勝負!"},
|
||||
['round_u']= {"ターン制", "ULTIMATE", "ターン制で神レベルのAIと勝負!"},
|
||||
['techmino49_e']= {"テック 49", "EASY", "低レベルAIと49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino49_h']= {"テック 49", "HARD", "高レベルAIと49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino49_u']= {"テック 49", "ULTIMATE", "神レベAIと49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_e']= {"テック 99", "EASY", "低レベルAIと99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_h']= {"テック 99", "HARD", "高レベルAIと99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_u']= {"テック 99", "ULTIMATE", "神レベルAIと99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['round_e']= {"ターン制", "EASY", "ターン制で低レベルAIと勝負!"},
|
||||
['round_n']= {"ターン制", "NORMAL", "ターン制で通常レベルAIと勝負!"},
|
||||
['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での素早い判断"},
|
||||
@@ -813,7 +824,7 @@ return{
|
||||
['blind_h']= {"目隠し", "SUDDEN", "上級者用"},
|
||||
['blind_l']= {"目隠し", "SUDDEN+", "プロフェッショナル用!"},
|
||||
['blind_u']= {"目隠し", "?", "覚悟は良いかい?"},
|
||||
['blind_wtf']= {"目隠し", "WTF", "まだ覚悟が足りないな!"},
|
||||
['blind_wtf']= {"目隠し", "WTF", "まだ覚悟が足りない!"},
|
||||
['classic_e']= {"クラシック", "EASY", "低速クラシック"},
|
||||
['classic_h']= {"クラシック", "HARD", "通常速度クラシック"},
|
||||
['classic_l']= {"クラシック", "LUNATIC", "中高速度クラシック"},
|
||||
@@ -858,7 +869,7 @@ return{
|
||||
['ultra']= {'ウルトラ', "EXTRA", "2分以内にできるだけ多くの点数を取る"},
|
||||
['infinite']= {"無限", "", "サンドボックス"},
|
||||
['infinite_dig']= {"無限: 掘り", "", "掘れ掘れ掘れ"},
|
||||
['marathon_inf']= {"マラソン", "INFINITE", "永遠のマラソン"},
|
||||
['marathon_inf']= {"マラソン", "INFINITE", "ずっとマラソン"},
|
||||
|
||||
['custom_clear']= {"カスタム", "NORMAL"},
|
||||
['custom_puzzle']= {"カスタム", "PUZZLE"},
|
||||
@@ -882,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?!",
|
||||
"低音を響かせろ!",
|
||||
|
||||
@@ -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.",
|
||||
@@ -762,6 +763,7 @@ return{
|
||||
['dig_40l']= {"Cave", "40L", "Cave 40 linhas de lixo."},
|
||||
['dig_100l']= {"Cave", "100L", "Cave 100 linhas de lixo."},
|
||||
['dig_400l']= {"Cave", "400L", "Cave 400 linhas de lixo."},
|
||||
--['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Dig 10 garbage lines using only techrash!"},
|
||||
['drought_n']= {"Drought", "100L", "Sem peça I !"},
|
||||
['drought_l']= {"Drought+", "100L", "WTF"},
|
||||
-- ['stack_e']= {"Stack", "FÁCIL", "Pack them!"},
|
||||
@@ -866,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!",
|
||||
|
||||
@@ -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="_?_",
|
||||
|
||||
@@ -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="设置",
|
||||
@@ -775,10 +776,11 @@ return{
|
||||
['dig_40l']= {"挖掘", "40L", "挖掘40行"},
|
||||
['dig_100l']= {"挖掘", "100L", "挖掘100行"},
|
||||
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
||||
['dig_eff_10l']= {"挖掘", "效率 10L", "挖掘10行用最少的件数"},
|
||||
['dig_eff_40l']= {"挖掘", "效率 40L", "挖掘40行用最少的件数"},
|
||||
['dig_eff_100l']= {"挖掘", "效率 100L","挖掘100行用最少的件数"},
|
||||
['dig_eff_400l']= {"挖掘", "效率 400L","挖掘400行用最少的件数"},
|
||||
['dig_eff_10l']= {"挖掘", "效率 10L", "用尽量少的块数挖掘10行"},
|
||||
['dig_eff_40l']= {"挖掘", "效率 40L", "用尽量少的块数挖掘40行"},
|
||||
['dig_eff_100l']= {"挖掘", "效率 100L", "用尽量少的块数挖掘100行"},
|
||||
['dig_eff_400l']= {"挖掘", "效率 400L", "用尽量少的块数挖掘400行"},
|
||||
['dig_quad_10l']= {"挖掘", "消四10L", "挖掘10行,但只能消四"},
|
||||
['drought_n']= {"干旱", "100L", "你I没了"},
|
||||
['drought_l']= {"干旱+", "100L", "后 妈 发 牌"},
|
||||
['marathon_n']= {"马拉松", "普通", "200行加速马拉松"},
|
||||
@@ -883,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!",
|
||||
@@ -995,14 +997,7 @@ return{
|
||||
"Z酱只是个写代码的,懂什么方块",
|
||||
"Z块等身抱枕来一个(x",
|
||||
|
||||
--凑数
|
||||
"凑数tip什么时候能站起来!",
|
||||
"天哪,我竟然是一条凑数tip",
|
||||
"我是一条凑数tip",
|
||||
"我也是一条凑数tip",
|
||||
"震惊,我只是一条凑数tip吗",
|
||||
|
||||
--计算机技术梗
|
||||
-- 计算机技术梗
|
||||
"点击添加标题",
|
||||
"对编程有真·兴趣推荐Lua,安装无脑 语法简单 执行速度快 远离枯燥学校编程(雾",
|
||||
"绝大多数按钮上的图标是调用Unicode私用区里的自制字符实现的",
|
||||
@@ -1028,7 +1023,9 @@ return{
|
||||
"viod main[]",
|
||||
"while(false)",
|
||||
|
||||
--其他游戏梗
|
||||
-- 其他游戏梗
|
||||
"啊哈哈哈哈哈,T块来咯",
|
||||
"不轻不重,手感真是好极了",
|
||||
"不要大力拍打或滑动哦",
|
||||
"车万方块是一家(暴论",
|
||||
"单手也能玩!",
|
||||
@@ -1036,10 +1033,15 @@ return{
|
||||
"感谢Phigros提供(确信)部分tip模板",
|
||||
"你的双手是为了你的一生服务的,而不是Techmino",
|
||||
"你有一个好",
|
||||
"你这块是金子做的还是垃圾行是金子做的",
|
||||
"你准备好了吗?",
|
||||
"请勿大力敲打设备!敲坏了就没有Techmino玩了",
|
||||
"少女祈祷中",
|
||||
"他奶奶的,为什么转不进去",
|
||||
"我们联合!",
|
||||
"要盯着bug不放",
|
||||
"这打块,多是一件美事",
|
||||
"做,做碌鸠啊做,打块先啦!",
|
||||
{C.Z,"1,2,",C.C,"⑨",C.Z,"!!!!!"},
|
||||
{C.C,"<PURE ",C.P,"MEMORY>"},
|
||||
{C.H,"暂定段位:9"},
|
||||
@@ -1064,16 +1066,7 @@ return{
|
||||
{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"},
|
||||
|
||||
--网络梗
|
||||
"我们联合!",
|
||||
"你这块是金子做的还是垃圾行是金子做的",
|
||||
"做,做碌鸠啊做,打块先啦!",
|
||||
"啊哈哈哈哈哈,T块来咯",
|
||||
"这打块,多是一件美事",
|
||||
"不轻不黏,手感真是好极了",
|
||||
"他奶奶的,为什么转不进去",
|
||||
|
||||
--时间碎片
|
||||
-- 时间碎片
|
||||
"时间碎片[000] 2021/11/21加入这个版块",
|
||||
"时间碎片[001] V0.0.091726加入TRS旋转系统",
|
||||
"时间碎片[002] V0.7.9加入O-spin",
|
||||
@@ -1094,8 +1087,9 @@ return{
|
||||
"时间碎片[017] V0.16.0加入BIRS",
|
||||
"时间碎片[018] V0.16.2加入打击垫样式的音效室",
|
||||
"时间碎片[019] V0.17.0加入手柄的摇杆和扳机支持",
|
||||
"时间碎片[020] V0.17.3准备停止开发老Techmino,进入维护期",
|
||||
|
||||
--豆知识
|
||||
-- 豆知识
|
||||
"豆知识[001]总共有400多条tip哦",
|
||||
"豆知识[002]背景影响游玩?可以去设置关闭",
|
||||
"豆知识[003]方块默认出现的方向都是重心在下哦(如果你没乱动设置",
|
||||
@@ -1202,17 +1196,20 @@ return{
|
||||
"豆知识[104]新人请千万记住,打好基础,不要太早学那些花里胡哨的。",
|
||||
"豆知识[105]长时间游戏状态会越来越差!玩久了记得放松一下~",
|
||||
|
||||
--健康小贴士
|
||||
-- 健康小贴士
|
||||
"健康小贴士[01]玩游戏多眨眼,不然会干眼病",
|
||||
"健康小贴士[02]少玩点游戏,多注意眨眼和休息",
|
||||
"健康小贴士[03]戴耳机(尤其是半入耳式)时音量千万别拉满,不然真的会影响听力(虽然很慢)",
|
||||
"健康小贴士[04]不要熬夜,真的会猝死",
|
||||
"健康小贴士[05]长期睡眠不足会引起不可逆的脑损伤(变傻)",
|
||||
|
||||
-- 群友名言
|
||||
"群友名言[001]“玩了Techmino之后发现打字速度变快了”",
|
||||
"群友名言[002]“我要陪伴着tech一步步成长,然后就可以疯狂的享受他”",
|
||||
"群友名言[003]“太super啦,不愧是guideline”",
|
||||
"群友名言[004]“憋惦记你那*26了(”",
|
||||
|
||||
--Frt评
|
||||
-- Frt评
|
||||
"Frt评[01]“成天被夸赞‘好玩’的”",
|
||||
"Frt评[02]“可以形成方块圈子小中心话题,同作者一起衍生一些概念与梗的”",
|
||||
"Frt评[03]“论方块的软工意义(就算这么小个范围内,各种取舍蒙混翻车现象都总会以很易懂的方式出现(”",
|
||||
@@ -1226,7 +1223,7 @@ return{
|
||||
"Frt评[11]“是一滩散乱的代码组成的蜜汁结构”",
|
||||
"Frt评[12]“它是现在的techmino已发布版本”",
|
||||
|
||||
--今日数学
|
||||
-- 今日数学
|
||||
"今日数学[01](a+b)³=a³+3a²b+3ab²+b³",
|
||||
"今日数学[02]∫u dv=uv-∫v du",
|
||||
"今日数学[03]cos(α+β)=CαCβ-SβSα",
|
||||
@@ -1243,7 +1240,7 @@ return{
|
||||
"今日数学[14]sin²α-sin²β=S(α+β)S(α-β)",
|
||||
"今日数学[15]sin2α=2SαCα",
|
||||
|
||||
--Z
|
||||
-- Z
|
||||
"Z哲[01]方块教会我们,合群了就会消失,……",
|
||||
"Z哲[02]假如生活欺骗了你,不要悲伤,不要心急,还有块陪着你",
|
||||
"Z哲[03]……,合群了就会消失,不合群世界毁灭(指game over",
|
||||
@@ -1285,10 +1282,11 @@ return{
|
||||
"Z推[15]15puzzle好玩!",
|
||||
"Z推[16]扫雷好玩!",
|
||||
|
||||
--可爱!
|
||||
-- 可爱!
|
||||
{C.lP,"口〇口",C.Z," 可爱!"},
|
||||
{C.Y,"Miya",C.Z," 可爱!"},
|
||||
{C.lS,"茶娘",C.Z," 可爱!"},
|
||||
-- "Z酱 可爱!",
|
||||
|
||||
{C.lP,"秘密数字:626"},
|
||||
{C.N,"Lua",C.Z,"天下第一"},
|
||||
@@ -1299,6 +1297,5 @@ return{
|
||||
{C.R,"上班时间不许摸鱼打块!"},
|
||||
{C.R,"上课时间不许摸鱼打块!"},
|
||||
{C.W,"uid:225238922"},
|
||||
-- "Z酱 可爱!",
|
||||
}
|
||||
}
|
||||
|
||||
1303
parts/language/lang_zh_code.lua
Normal file
1303
parts/language/lang_zh_code.lua
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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="設置",
|
||||
@@ -779,6 +780,7 @@ return{
|
||||
['dig_eff_40l']= {"挖掘", "效率 40L", "挖掘40行用最少的件數"},
|
||||
['dig_eff_100l']= {"挖掘", "效率 100L","挖掘100行用最少的件數"},
|
||||
['dig_eff_400l']= {"挖掘", "效率 400L","挖掘400行用最少的件數"},
|
||||
['dig_quad_10l']= {"挖掘", "消四10L", "挖掘10行,但只能消四"},
|
||||
['drought_n']= {"乾旱", "100L", "你I沒了"},
|
||||
['drought_l']= {"乾旱+", "100L", "後 媽 發 牌"},
|
||||
['marathon_n']= {"馬拉松", "普通", "200行加速馬拉松"},
|
||||
|
||||
@@ -7,7 +7,8 @@ Gameplay:
|
||||
Play until the end or achieve the level’s goal to win.
|
||||
|
||||
Rotation system:
|
||||
Uses TRS (Techmino Rotation System) by default. The game allows players to choose other commonly used rotation systems (generally unnecessary)
|
||||
Uses TRS (Techmino Rotation System) by default.
|
||||
The game allows players to choose other commonly used rotation systems (generally unnecessary)
|
||||
|
||||
Spin detection:
|
||||
Satisfies “3-corner” rule +2 points
|
||||
@@ -19,31 +20,35 @@ Spin detection:
|
||||
|
||||
Attack system:
|
||||
Special clear:
|
||||
A special clear refers to a situation where you perform a spin, Techrash (or clear more than four lines at a time), PC, or HPC. Special clears can elevate the B2B gauge.
|
||||
A special clear refers to a situation where you perform a spin, Techrash (or clear more than four lines at a time), PC, or HPC.
|
||||
Special clears can elevate the B2B gauge.
|
||||
Super clear:
|
||||
A super clear refers to a situation where you perform a special clear when the B2B gauge is not empty.
|
||||
|
||||
Special clears (spins):
|
||||
sends (lines cleared ×2) attack,
|
||||
- B2B sends extra 1/1/2/4/8 for Spin Single/Double/Triple/Techrash/Techrash+
|
||||
- B2B2B sends (lines cleared ×0.5), and +1 extra blocking
|
||||
- B2B2B sends (lines cleared ×0.5) on top of that of B2B, and +1 extra blocking
|
||||
- Minis reduces the attack to 25% (×0.25 multiplier)
|
||||
|
||||
Special clears (Techrash/techrash+ without spins):
|
||||
- B2B sends 1 additional line
|
||||
- B2B2B will have an attack boost of 50% and +1 extra blocking
|
||||
|
||||
|
||||
Non-special clears:
|
||||
send (attack-0.5) attack.
|
||||
|
||||
Combos (REN):
|
||||
The numbers of the combos are equal to (the numbers you clear lines consecutively –1). All damage above (except attack from PC/HPC) will be given a (combo ×25%) bonus, or (combo ×15%) for Single clear (capped at 12 combos), +1 more attack for 3 Combo or more.
|
||||
|
||||
The numbers of the combos are equal to (the numbers you clear lines consecutively –1) (capped at 12 combos).
|
||||
All damage above (except attack from PC/HPC) gets a (combo ×25%) bonus, or (combo ×15%) for Single clear.
|
||||
+1 more attack for 3 Combo or more.
|
||||
|
||||
Hemi Perfect Clear (a P.C. “with blocks left below.” If just one line cleared, the remaining blocks must not be player-placed):
|
||||
- Attack +4, Extra Blocking +2
|
||||
|
||||
Perfect Clear (All Clear):
|
||||
- Sends 8 to 16 (increments within a game by 2 for every PC) OR every other damage above, whichever is higher, and +2 extra blocking.
|
||||
- Sends 8 to 16 (increments within a game by 2 for every PC) OR every other damage above, whichever is higher.
|
||||
- +2 extra blocking.
|
||||
|
||||
After calculating the above, the damage value will be rounded down and sent.
|
||||
|
||||
@@ -97,4 +102,4 @@ Custom mode:
|
||||
empty cells can be in any state;
|
||||
regular colored cells have to be made of the corresponding block;
|
||||
garbage-colored cells can be any block but not air.
|
||||
Once you make the shape, you will win.
|
||||
Once you make the shape, you will win.
|
||||
|
||||
@@ -1,62 +1,126 @@
|
||||
ゲームプレイ:
|
||||
システムから与えられた全7種類のテトロミノ
|
||||
(4ブロックで構成されたピース) をプレイヤーが操作します,
|
||||
(主に左右移動と90°, 180°, 270°回転で)。
|
||||
各行がブロックで埋め尽くされるとその行列のブロックが消えます。
|
||||
相手が居る場合, ラインの消し方等で攻撃と火力が異なります。
|
||||
勝利する為にはそのレベルの目標達成もしくは最後までプレイする必要があります。
|
||||
システムから与えられる全7種類のテトロミノ
|
||||
(4ブロックで構成されたピース) をプレイヤーが操作します
|
||||
(主に左右移動と90°、180°、270°回転を用いて)。
|
||||
各行でブロックが揃うとその行のブロックが消えます。
|
||||
相手が居る場合、ラインの消し方等で攻撃と火力が異なります。
|
||||
クリアする為にはそのレベルの目標達成もしくは最後までプレイする必要があります。
|
||||
|
||||
回転システム:
|
||||
回転システム:
|
||||
初期設定はTRS (Techmino Rotation System) で設定されています。
|
||||
プレイヤーは他の一般的な回転システムも使う事ができます (基本的には変えなくても大丈夫)。
|
||||
|
||||
スピンの検出:
|
||||
「3コーナ」ルールを満たした時 +2点
|
||||
「インモービル (Immobile)」 ルールを満たした時 +2点
|
||||
- 上のどちらかを満たした時, スピンが確定します。
|
||||
- 上のどちらかを満たした時、スピンが確定します。
|
||||
|
||||
もし回転システムがキックテーブルから2番チェック (2nd check) を採用していなかった場合 +1点
|
||||
- もしスピンの合計点が2点しかない場合は「ミニ」扱いになります;ミノがS, Z, J, L, Tのいずれかで, ラインクリア時にそのミノを全て消せなかった場合のみ。
|
||||
もし回転システムがキックテーブルから2番目のチェック (2nd check) を採用していなかった場合 +1点
|
||||
- もしスピンの合計点が2点しかない場合は「ミニ」扱いになります。
|
||||
ただしこれは、ミノがS,Z,J,L,Tのいずれかで、line消去の時にそのミノのブロックが全部消せなかった場合のみ。
|
||||
|
||||
Attack system:
|
||||
[TODO]
|
||||
Back to Back (B2B) gauge:
|
||||
[TODO]
|
||||
攻撃システム:
|
||||
Special clear:
|
||||
Special clearとは、spin、techrash(もしくは一度に4段以上のline消去)、PC、HPCのどれかを行うことです。
|
||||
Special clearを行うとB2Bゲージが上昇します。
|
||||
Super clear:
|
||||
Super clearとは、B2Bゲージがある状態でSpecial clearを行うことです。
|
||||
Special clears (spin):
|
||||
消したline数の2倍の火力を送ります、
|
||||
- B2Bは、spin single/doubleで1line、spin tripleで2line、spin techrashで4line、spin techrash+で8lineを火力に加算します。
|
||||
- B2B2Bは、消したline数の半分を火力に加算し、更に+1lineを相殺専用火力に加算します。
|
||||
- またspinの場合は、B2BとB2B2Bは両方付与されます。
|
||||
- ミニは、火力を25%に減少させます。(倍率0.25倍)
|
||||
|
||||
Special clears (spin以外のtechrash/techrash+):
|
||||
- B2Bは、火力に+1lineします。
|
||||
- B2B2Bは、火力を50%上昇させ、更に+1lineを相殺専用火力に加算します。
|
||||
|
||||
Non-special clears:
|
||||
火力-0.5段を送ります。
|
||||
|
||||
ren:
|
||||
ren数は、連続してline消去した回数-1回です。(上限12ren、13ren以上行っても総ren数12renと処理されます。)
|
||||
1line消しの時に総ren数*15%(1+ren*0.15)、2line以上の時に総ren数*25%(1+ren*0.25)を乗算します。
|
||||
更に合計3line以上消していた場合、火力に+1line加算します。
|
||||
|
||||
Half Perfect Clear (下にブロックが残っている状態でのPC、1line消去した場合はプレイヤーが置いたブロックが残ってはいけない):
|
||||
- 火力に+4line加算し、更に+2lineを相殺専用火力に加算します。
|
||||
|
||||
Perfect Clear (全消し):
|
||||
- PC火力の8~16line(PCを取る度に2ずつ上昇)とそれ以外の火力を比較、火力が高い方を選択し。
|
||||
- 更に+2lineを相殺専用火力に加算します。
|
||||
|
||||
これらは、計算した後小数点以下を切り捨てて火力を送ります。
|
||||
例:2ren目にB2B2B S-spin doubleでHPCを取った場合
|
||||
- SSD =>火力+4line
|
||||
- B2B =>火力+1line
|
||||
- B2B2B=>(double/2)=1で火力+1line、更に相殺専用火力+1line
|
||||
- 2ren =>(1+2ren*25%)=1.5、更に3line以上消しているので火力+1line、よって{(4+1+1)*1.5+1=10}で火力10line
|
||||
- HPC =>火力+4line、更に相殺専用火力+2line
|
||||
合計 火力:14line 相殺専用火力:3line
|
||||
|
||||
Back to Back (B2B)ゲージ:
|
||||
B2Bゲージは、0~1,000まであります。Special clearをした時にゲージが50以上ならB2B、800以上ならB2B2Bが付与されます。
|
||||
|
||||
ライン消去:
|
||||
Special clears:
|
||||
- spin single/double/triple/techrash/techrash+を行った場合、それぞれ+50/100/180/800/1,000ゲージが上昇します。
|
||||
(ただしミニの場合は、×50%減少します。)
|
||||
- techrash/techrash+の場合は、それぞれ+150/200/...ゲージが上昇します。
|
||||
- 1ゲーム中に4lineより多く消した状態でPCを行った場合、+800ゲージが上昇します。
|
||||
- HPCを行った場合、+100ゲージが上昇します。
|
||||
- 通常のline消去を行った場合、ゲージが250減少します。
|
||||
|
||||
line消去なし:
|
||||
- 空spinの場合+20ゲージが上昇します。(なおこの方法では、B2Bゲージが800を超えることはありません。)
|
||||
|
||||
スコアシステム:
|
||||
上手くプレイすれば, スコアも上がります。
|
||||
上手くプレイすれば、 スコアも上がります。
|
||||
|
||||
攻撃遅延システム:
|
||||
ダブル, トリプルの攻撃が一番早く効果が出ます;
|
||||
その次にゆっくりとした攻撃を送るTechrash, スピン等, の効果が出ます;
|
||||
高いコンボ数の攻撃が飛躍的に遅いです;
|
||||
B2BやB2B2B等は, 送るライン数が増えれば増えるほど遅くなります;
|
||||
ミニ系の攻撃は攻撃自体の効果を大幅に遅らせます。
|
||||
2,3line消去の攻撃が一番早く下穴になります。
|
||||
Techrashやスピン等が二番目に早く下穴になります。
|
||||
高いrenが付くと飛躍的に遅くなります。
|
||||
B2BやB2B2Bは、送るライン数が増えれば増えるほど遅くなります。
|
||||
ミニの攻撃は、下穴になるのを大幅に遅らせます。
|
||||
|
||||
カウンター:
|
||||
攻撃を送る際, もしお邪魔ゲージにお邪魔がある場合,
|
||||
追加相殺がまず使われ, その次に攻撃自体とお邪魔を1対1の割合でお邪魔の相殺に当てます。
|
||||
使わなかった追加相殺は破棄され、残った攻撃のパワーは相手に送られます。
|
||||
相殺:
|
||||
攻撃を送る際、ダメージゲージに火力がある場合、
|
||||
最初に相殺専用火力が相殺に当てられ、その次に攻撃本体とダメージゲージにある火力を1対1の割合で相殺します。
|
||||
相殺を終えた後、相殺専用火力が余っていた場合は、その分破棄されます。
|
||||
そして攻撃本体の火力が余っていた場合には、余った分相手に送られます。
|
||||
例:相手から2line送られ、B2B2B S-spindouble HPCで相殺した場合
|
||||
火力:10line 相殺専用火力:3line
|
||||
- 相殺専用火力3lineが相手の2lineに当てられる
|
||||
- 残りは火力10line、相殺専用火力1line
|
||||
- 相殺を終えたので相殺専用火力は破棄され、10lineが相手に送られる。
|
||||
|
||||
バトルロイヤルモード:
|
||||
沢山のプレイヤーが同時にゲームをプレイします (対AIです, 本物の人ではありません)。
|
||||
人数が減れば減るほど、ミノの落下速度は加速していき、お邪魔の効果が早く出る同時にせり上がる速度も上がります。
|
||||
他のプレイヤーを倒してバッジを得て、そしてそのバッジであなた自身の攻撃力を上げましょう。
|
||||
沢山のプレイヤーが同時にゲームをプレイします (対AIです、本物の人ではありません)。
|
||||
人数が減れば減るほど、ミノの落下速度は加速していき、更に攻撃がダメージになる早さとせり上がりの速さも上昇します。
|
||||
他のプレイヤーを倒してバッジを得て、そのバッジであなた自身の攻撃力を上げましょう。
|
||||
プレイヤーは4つの攻撃モードから選ぶことができます:
|
||||
1: ランダム: 毎回攻撃を送る際, 10%の確率で他のプレイヤーに照準を合わせます。
|
||||
2: バッジ狙い: 攻撃を送った後もしくは標的が落とされた場合, バッジの数が一番多いプレイヤーに照準を合わせます。
|
||||
3. トドメ撃ち: 攻撃を送った後もしくは標的が落とされた場合, 各プレイヤの中からフィールドの高さが一番高いプレイヤーに照準を合わせます。
|
||||
(毎秒更新されます)
|
||||
4. カウンター: あなたに照準を向けられてるプレイヤー全員に照準を同時に向けます。
|
||||
あなたの攻撃は照準を向けてるプレイヤー全てに送られます。照準をあなたに向けられていない場合、ランダムにプレイヤーを攻撃します (プレイヤー照準固定無し)
|
||||
全てのプレイヤーが落とされた場合, 最後のプレイヤーが勝者となります。
|
||||
1: ランダム:
|
||||
毎回攻撃を送る際、 10%の確率で他のプレイヤーに照準を合わせます。
|
||||
2: バッジ狙い:
|
||||
攻撃を送った後もしくは標的が倒れた場合、バッジの数が一番多いプレイヤーに照準を合わせます。
|
||||
3. トドメ撃ち:
|
||||
攻撃を送った後もしくは標的が倒れた場合、各プレイヤーの中から盤面の高さが一番高いプレイヤーに照準を合わせます。
|
||||
(プレイヤーの盤面の高さは、毎秒更新されます)
|
||||
4. カウンター:
|
||||
あなたに照準を向けているプレイヤー全員に照準を同時に向けます。
|
||||
あなたの攻撃は照準を向けてるプレイヤー全員に送られます。
|
||||
あなたに向いている標準がない場合、ランダムにプレイヤーを攻撃します。
|
||||
(特定のプレイヤーに標準を固定しません)
|
||||
全てのプレイヤーが倒れた時に最後のプレイヤーが勝者となります。
|
||||
|
||||
カスタムモード:
|
||||
殆どの変数を自由に変えられます (他のゲームモードの特殊エフェクトを除いて)。
|
||||
更に消す為のフィールドを描いたりまたは積み上げる為のテンプレも作れます。
|
||||
ビルド (パズル) モードの場合, テンプレの表示をファンクションキーで操作できます:
|
||||
X印の場所にはブロックは置けない;
|
||||
無印の場所は何来ても構わない;
|
||||
色付きの場所にはその色に合わせてのミノブロックを置かないいけない;
|
||||
おじゃまミノ色の場所にはあるブロックが来てる扱いで空きスペースではない。
|
||||
形を整えた後に, 勝ち判定となります。
|
||||
殆どの設定を自由に変えられます。(他のゲームモードの特殊エフェクトを除いて)
|
||||
更に盤面を自由に設定したり、積み上げる為の影も作れます。
|
||||
ビルド(パズル)モードの場合、影の表示をファンクションキーで操作できます:
|
||||
X印の場所には、ブロックを置けない。
|
||||
無印の場所には、何を置いても構わない。
|
||||
色付きの場所には、その色に対応したミノブロックを置かなければならない。
|
||||
下穴の色の場所には、ブロックが既にある判定で何も置けない。
|
||||
影通りに形を作った場合にクリアとなります。
|
||||
|
||||
48
parts/modes/dig_quad_10l.lua
Normal file
48
parts/modes/dig_quad_10l.lua
Normal file
@@ -0,0 +1,48 @@
|
||||
return{
|
||||
env={
|
||||
pushSpeed=6,
|
||||
bg='bg1',bgm='way',
|
||||
mesDisp=function(P)
|
||||
setFont(55)
|
||||
mStr(10-P.stat.dig_quad,63,265)
|
||||
end,
|
||||
hook_drop=function(P)
|
||||
if P.lastPiece.row>0 and P.lastPiece.row<4 then
|
||||
P:lose()
|
||||
else
|
||||
P.stat.dig_quad = P.stat.dig
|
||||
end
|
||||
if P.stat.dig==10 then
|
||||
P:win('finish')
|
||||
end
|
||||
end,
|
||||
task=function(P)
|
||||
local last = -1
|
||||
for _=1,10 do
|
||||
local garbage = last
|
||||
repeat
|
||||
garbage = P:getHolePos()
|
||||
until garbage ~= last
|
||||
last = garbage
|
||||
P:garbageRise(21,1,garbage)
|
||||
end
|
||||
P.fieldBeneath=0
|
||||
P.stat.dig_quad = 0
|
||||
end,
|
||||
},
|
||||
score=function(P)return{P.stat.dig_quad,P.stat.piece}end,
|
||||
scoreDisp=function(D)return D[1].." Techrash "..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 dig = P.stat.dig_quad
|
||||
local piece = P.stat.piece
|
||||
if dig < 4 then return end
|
||||
return
|
||||
dig < 7 and 0 or
|
||||
dig < 10 and 1 or
|
||||
piece > 103 and 2 or
|
||||
piece > 92 and 3 or
|
||||
piece > 81 and 4 or
|
||||
5
|
||||
end,
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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"},
|
||||
}
|
||||
|
||||
@@ -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')
|
||||
@@ -2654,7 +2654,7 @@ function Player:_die()
|
||||
self.b2b=0
|
||||
self.tasks={}
|
||||
self:clearAttackBuffer()
|
||||
for i=1,#self.field do
|
||||
for i=1,#self.visTime do
|
||||
for j=1,10 do
|
||||
self.visTime[i][j]=min(self.visTime[i][j],20)
|
||||
end
|
||||
@@ -2758,7 +2758,7 @@ function Player:win(result)
|
||||
if result=='finish'then
|
||||
for i=#PLY_ALIVE,1,-1 do
|
||||
if PLY_ALIVE[i]~=self then
|
||||
PLY_ALIVE[i]:lose()
|
||||
PLY_ALIVE[i]:lose(true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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},
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,7 +2,7 @@ local scene={}
|
||||
|
||||
function scene.sceneInit()
|
||||
BG.set('cubes')
|
||||
local fileData=love.filesystem.read('parts/language/manual_'..(SETTING.locale:find'zh'and'zh'or'en')..'.txt')
|
||||
local fileData=FILE.load('parts/language/manual_'..(SETTING.locale:find'zh'and'zh'or SETTING.locale:find'ja'and'ja'or'en')..'.txt','-string')
|
||||
if fileData then
|
||||
WIDGET.active.texts:setTexts(fileData:split('\n'))
|
||||
else
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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},
|
||||
}
|
||||
|
||||
|
||||
@@ -2,12 +2,29 @@ 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的踢
|
||||
移除地图上的clearRush模式
|
||||
删除日文字体,更新主字体
|
||||
说明书有日文版本了
|
||||
移除机翻语言
|
||||
更新语言文件
|
||||
修复:
|
||||
TRS的V的踢墙表错误,不对称
|
||||
TRS的O变JL条件错误
|
||||
|
||||
0.17.3: 矿井 Mine
|
||||
改动:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
return{
|
||||
["apkCode"]=440,
|
||||
["code"]=1704,
|
||||
["string"]="V0.17.4",
|
||||
["apkCode"]=443,
|
||||
["code"]=1705,
|
||||
["string"]="V0.17.5",
|
||||
["room"]="ver A-7",
|
||||
["name"]="矿井 Mine",
|
||||
["name"]="昏暗 Dim",
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user