Compare commits
48 Commits
0e8ddee6c5
...
v0.17.18
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa981160e8 | ||
|
|
24a95a36d0 | ||
|
|
583819e8c4 | ||
|
|
4c193efd41 | ||
|
|
8208e7b132 | ||
|
|
7e2bd7b08d | ||
|
|
29258e2a35 | ||
|
|
9e028bc907 | ||
|
|
75ae05ffc9 | ||
|
|
aec0b91039 | ||
|
|
34df33c9b0 | ||
|
|
1674902727 | ||
|
|
4fd497fe9f | ||
|
|
f01594b4d1 | ||
|
|
6f74693811 | ||
|
|
94d2af685c | ||
|
|
0b7c2fa59b | ||
|
|
137f9a0d55 | ||
|
|
23d8a34991 | ||
|
|
3f0d4d3cdf | ||
|
|
ac8f62de03 | ||
|
|
e518d91237 | ||
|
|
c054a76504 | ||
|
|
d3406c4a48 | ||
|
|
3c0266ec02 | ||
|
|
4f4683d06c | ||
|
|
3441002758 | ||
|
|
c2bf291029 | ||
|
|
d70b04e7fb | ||
|
|
a979b6dbe6 | ||
|
|
523b7ce443 | ||
|
|
4e74c9456f | ||
|
|
7719b74b09 | ||
|
|
9d3aeeb50b | ||
|
|
0459248556 | ||
|
|
288a6ba80a | ||
|
|
97eee39266 | ||
|
|
8c4446edac | ||
|
|
e49f8d428a | ||
|
|
6ece5c5f1f | ||
|
|
b75359472b | ||
|
|
1c190d9544 | ||
|
|
1859e5bb96 | ||
|
|
7e1a5805b3 | ||
|
|
6c63fe0ab7 | ||
|
|
85fc9f660e | ||
|
|
2d12ab3a19 | ||
|
|
efeb24b0f0 |
@@ -1,3 +1,5 @@
|
||||
-- WARNING: This framework has been remade and renamed to Zenitha. Do not use this deprecated framework for your project
|
||||
|
||||
NONE={}function NULL() end PAPER=love.graphics.newCanvas(1,1)
|
||||
EDITING=""
|
||||
LOADED=false
|
||||
|
||||
@@ -125,7 +125,8 @@ function STRING.time_short(t)
|
||||
if t<1 then return math.floor(t*1000)..timeLetters[6] end -- 123 ms
|
||||
if t<MINUTE then return math.floor(t)..timeLetters[5]..' '..math.floor((t%1)*1000)..timeLetters[6] end -- 12s 345ms
|
||||
|
||||
local timeUnits=TABLE.reverse({convertSecondsToUnits(t)})
|
||||
local timeUnits={convertSecondsToUnits(t)}
|
||||
TABLE.reverse(timeUnits)
|
||||
|
||||
-- floor seconds
|
||||
timeUnits[#timeUnits]=floorint(timeUnits[#timeUnits])
|
||||
|
||||
@@ -803,7 +803,7 @@ function selector:press(x)
|
||||
end
|
||||
end
|
||||
if self.select~=s then
|
||||
self.code(self.list[s])
|
||||
self.code(self.list[s],s)
|
||||
self.select=s
|
||||
self.selText=self.list[s]
|
||||
if self.sound then
|
||||
|
||||
3
main.lua
3
main.lua
@@ -23,7 +23,7 @@ TIME=love.timer.getTime
|
||||
|
||||
-- Global Vars & Settings
|
||||
SFXPACKS={'chiptune'}
|
||||
VOCPACKS={'miya','mono','xiaoya','flore','miku','zundamon'}
|
||||
VOCPACKS={'miya','mono','xiaoya','flore','neuro','miku','zundamon'}
|
||||
FIRSTLAUNCH=false
|
||||
DAILYLAUNCH=false
|
||||
|
||||
@@ -271,6 +271,7 @@ IMG.init{
|
||||
floreCH='media/image/characters/flore.png',
|
||||
mikuCH='media/image/characters/miku.png',
|
||||
zundamonCH='media/image/characters/zundamon.png',
|
||||
neuroCH='media/image/characters/neuro.png',
|
||||
z={
|
||||
character='media/image/characters/z_character.png',
|
||||
screen1='media/image/characters/z_screen1.png',
|
||||
|
||||
BIN
media/image/characters/neuro.png
Normal file
BIN
media/image/characters/neuro.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 147 KiB |
BIN
media/vocal/neuro/air.ogg
Normal file
BIN
media/vocal/neuro/air.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/all_clear.ogg
Normal file
BIN
media/vocal/neuro/all_clear.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/b2b.ogg
Normal file
BIN
media/vocal/neuro/b2b.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/b3b.ogg
Normal file
BIN
media/vocal/neuro/b3b.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/bye.ogg
Normal file
BIN
media/vocal/neuro/bye.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/clear.ogg
Normal file
BIN
media/vocal/neuro/clear.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/colour.ogg
Normal file
BIN
media/vocal/neuro/colour.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/cspin.ogg
Normal file
BIN
media/vocal/neuro/cspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/cspin0.ogg
Normal file
BIN
media/vocal/neuro/cspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/decacrash.ogg
Normal file
BIN
media/vocal/neuro/decacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/deep.ogg
Normal file
BIN
media/vocal/neuro/deep.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/dodecacrash.ogg
Normal file
BIN
media/vocal/neuro/dodecacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/double.ogg
Normal file
BIN
media/vocal/neuro/double.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/doubt.ogg
Normal file
BIN
media/vocal/neuro/doubt.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/espin.ogg
Normal file
BIN
media/vocal/neuro/espin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/espin0.ogg
Normal file
BIN
media/vocal/neuro/espin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/fspin.ogg
Normal file
BIN
media/vocal/neuro/fspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/fspin0.ogg
Normal file
BIN
media/vocal/neuro/fspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/half_clear.ogg
Normal file
BIN
media/vocal/neuro/half_clear.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/happy.ogg
Normal file
BIN
media/vocal/neuro/happy.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/heptacrash.ogg
Normal file
BIN
media/vocal/neuro/heptacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/heptadecacrash.ogg
Normal file
BIN
media/vocal/neuro/heptadecacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/hexacrash.ogg
Normal file
BIN
media/vocal/neuro/hexacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/hexadecacrash.ogg
Normal file
BIN
media/vocal/neuro/hexadecacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/hspin.ogg
Normal file
BIN
media/vocal/neuro/hspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/hspin0.ogg
Normal file
BIN
media/vocal/neuro/hspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/impossicrash.ogg
Normal file
BIN
media/vocal/neuro/impossicrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/ispin.ogg
Normal file
BIN
media/vocal/neuro/ispin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/ispin0.ogg
Normal file
BIN
media/vocal/neuro/ispin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/jspin.ogg
Normal file
BIN
media/vocal/neuro/jspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/jspin0.ogg
Normal file
BIN
media/vocal/neuro/jspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/lose.ogg
Normal file
BIN
media/vocal/neuro/lose.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/lose0.ogg
Normal file
BIN
media/vocal/neuro/lose0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/lspin.ogg
Normal file
BIN
media/vocal/neuro/lspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/lspin0.ogg
Normal file
BIN
media/vocal/neuro/lspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/mini.ogg
Normal file
BIN
media/vocal/neuro/mini.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/mix.ogg
Normal file
BIN
media/vocal/neuro/mix.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/nonacrash.ogg
Normal file
BIN
media/vocal/neuro/nonacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/nonadecacrash.ogg
Normal file
BIN
media/vocal/neuro/nonadecacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/nspin.ogg
Normal file
BIN
media/vocal/neuro/nspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/nspin0.ogg
Normal file
BIN
media/vocal/neuro/nspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/octacrash.ogg
Normal file
BIN
media/vocal/neuro/octacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/octadecacrash.ogg
Normal file
BIN
media/vocal/neuro/octadecacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/ospin.ogg
Normal file
BIN
media/vocal/neuro/ospin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/ospin0.ogg
Normal file
BIN
media/vocal/neuro/ospin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/pentacrash.ogg
Normal file
BIN
media/vocal/neuro/pentacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/pentadecacrash.ogg
Normal file
BIN
media/vocal/neuro/pentadecacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/perfect_clear.ogg
Normal file
BIN
media/vocal/neuro/perfect_clear.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/pspin.ogg
Normal file
BIN
media/vocal/neuro/pspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/pspin0.ogg
Normal file
BIN
media/vocal/neuro/pspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/qspin.ogg
Normal file
BIN
media/vocal/neuro/qspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/qspin0.ogg
Normal file
BIN
media/vocal/neuro/qspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/rspin.ogg
Normal file
BIN
media/vocal/neuro/rspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/rspin0.ogg
Normal file
BIN
media/vocal/neuro/rspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/single.ogg
Normal file
BIN
media/vocal/neuro/single.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/split.ogg
Normal file
BIN
media/vocal/neuro/split.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/sspin.ogg
Normal file
BIN
media/vocal/neuro/sspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/sspin0.ogg
Normal file
BIN
media/vocal/neuro/sspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/techrash.ogg
Normal file
BIN
media/vocal/neuro/techrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/test.ogg
Normal file
BIN
media/vocal/neuro/test.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/tetradecacrash.ogg
Normal file
BIN
media/vocal/neuro/tetradecacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/tridecacrash.ogg
Normal file
BIN
media/vocal/neuro/tridecacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/triple.ogg
Normal file
BIN
media/vocal/neuro/triple.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/tspin.ogg
Normal file
BIN
media/vocal/neuro/tspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/tspin0.ogg
Normal file
BIN
media/vocal/neuro/tspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/ultracrash.ogg
Normal file
BIN
media/vocal/neuro/ultracrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/undecacrash.ogg
Normal file
BIN
media/vocal/neuro/undecacrash.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/uspin.ogg
Normal file
BIN
media/vocal/neuro/uspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/uspin0.ogg
Normal file
BIN
media/vocal/neuro/uspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/vspin.ogg
Normal file
BIN
media/vocal/neuro/vspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/vspin0.ogg
Normal file
BIN
media/vocal/neuro/vspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/welcome.ogg
Normal file
BIN
media/vocal/neuro/welcome.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/win.ogg
Normal file
BIN
media/vocal/neuro/win.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/win0.ogg
Normal file
BIN
media/vocal/neuro/win0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/wspin.ogg
Normal file
BIN
media/vocal/neuro/wspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/wspin0.ogg
Normal file
BIN
media/vocal/neuro/wspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/xspin.ogg
Normal file
BIN
media/vocal/neuro/xspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/xspin0.ogg
Normal file
BIN
media/vocal/neuro/xspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/yspin.ogg
Normal file
BIN
media/vocal/neuro/yspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/yspin0.ogg
Normal file
BIN
media/vocal/neuro/yspin0.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/zspin.ogg
Normal file
BIN
media/vocal/neuro/zspin.ogg
Normal file
Binary file not shown.
BIN
media/vocal/neuro/zspin0.ogg
Normal file
BIN
media/vocal/neuro/zspin0.ogg
Normal file
Binary file not shown.
@@ -444,7 +444,7 @@ do
|
||||
_centroSymSet(TRS.kickTable[25])_centroSymSet(TRS.kickTable[26])-- I5I3
|
||||
end
|
||||
|
||||
local SRS
|
||||
local SRS -- Pentos are treated as 3*3 piece
|
||||
do
|
||||
SRS={
|
||||
centerTex=GC.DO{10,10,
|
||||
@@ -489,7 +489,7 @@ do
|
||||
for i=8,29 do SRS.kickTable[i]=SRS.kickTable[1] end
|
||||
end
|
||||
|
||||
local SRS_plus
|
||||
local SRS_plus -- Basic 180 kicks and symmetry I piece kick table
|
||||
do
|
||||
SRS_plus={
|
||||
centerTex=GC.DO{10,10,
|
||||
@@ -542,7 +542,7 @@ do
|
||||
for i=8,29 do SRS_plus.kickTable[i]=SRS_plus.kickTable[1] end
|
||||
end
|
||||
|
||||
local SRS_X
|
||||
local SRS_X -- Basic 180 kicks and TRS for non-SZJLT
|
||||
do
|
||||
SRS_X={
|
||||
centerTex=GC.DO{10,10,
|
||||
@@ -720,17 +720,17 @@ end
|
||||
|
||||
local ARS_Z
|
||||
do
|
||||
local lrOnly={'+0+0','+1+0','-1+0'}
|
||||
local upOnly={'+0+0','+0+1','+0+2'}
|
||||
local lrSet={
|
||||
[01]=lrOnly,[10]=lrOnly,[03]=lrOnly,[30]=lrOnly,
|
||||
[12]=lrOnly,[21]=lrOnly,[32]=lrOnly,[23]=lrOnly,
|
||||
[02]=lrOnly,[20]=lrOnly,[13]=lrOnly,[31]=lrOnly,
|
||||
local list3={'+0+0','+1+0','-1+0','+0+1'}
|
||||
local list4={'+0+0','+1+0','-1+0','+0+1','+0+2','+2+0','-2+0'}
|
||||
local set3={
|
||||
[01]=list3,[10]=list3,[03]=list3,[30]=list3,
|
||||
[12]=list3,[21]=list3,[32]=list3,[23]=list3,
|
||||
[02]=list3,[20]=list3,[13]=list3,[31]=list3,
|
||||
}
|
||||
local upSet={
|
||||
[01]=upOnly,[10]=upOnly,[03]=upOnly,[30]=upOnly,
|
||||
[12]=upOnly,[21]=upOnly,[32]=upOnly,[23]=upOnly,
|
||||
[02]=upOnly,[20]=upOnly,[13]=upOnly,[31]=upOnly,
|
||||
local set4={
|
||||
[01]=list4,[10]=list4,[03]=list4,[30]=list4,
|
||||
[12]=list4,[21]=list4,[32]=list4,[23]=list4,
|
||||
[02]=list4,[20]=list4,[13]=list4,[31]=list4,
|
||||
}
|
||||
local centerPos=TABLE.copy(defaultCenterPos)
|
||||
centerPos[1]={[0]={1,1},{1,0},{1,1},{1,0}}-- Z
|
||||
@@ -761,10 +761,9 @@ do
|
||||
{'line',2,8,5,2,8,8},
|
||||
},
|
||||
centerPos=centerPos,
|
||||
kickTable=TABLE.new(lrSet,29),
|
||||
kickTable=TABLE.new(set3,29),
|
||||
}
|
||||
ARS_Z.kickTable[7]=upSet
|
||||
ARS_Z.kickTable[25]=upSet
|
||||
ARS_Z.kickTable[7],ARS_Z.kickTable[25]=set4,set4-- I,I5
|
||||
end
|
||||
|
||||
local DRS_weak
|
||||
@@ -831,7 +830,7 @@ end
|
||||
|
||||
local ASC
|
||||
do
|
||||
local L={'+0+0','+1+0','+0-1','+1-1','+0-2','+1-2','+2+0','+2-1','+2-2','-1+0','-1-1','+0+1','+1+1','+2+1','-1-2','-2+0','+0+2','+1+2','+2+2','-2-1','-2-2'}
|
||||
local L={'+0+0','+1+0','+0-1','+1-1','+0-2','+1-2','+2+0','+2-1','+2-2','-1+0','-1-1','+0+1','+1+1','+2+1','-1-2','-2+0','+0+2','+1+2','+2+2','-2-1','-2-2','-1+1'}
|
||||
local R=_flipList(L)
|
||||
local F={'+0+0'}
|
||||
local centerPos=TABLE.copy(defaultCenterPos)
|
||||
@@ -870,7 +869,7 @@ end
|
||||
|
||||
local ASC_plus
|
||||
do
|
||||
local L={'+0+0','+1+0','+0-1','+1-1','+0-2','+1-2','+2+0','+2-1','+2-2','-1+0','-1-1','+0+1','+1+1','+2+1','-1-2','-2+0','+0+2','+1+2','+2+2','-2-1','-2-2'}
|
||||
local L={'+0+0','+1+0','+0-1','+1-1','+0-2','+1-2','+2+0','+2-1','+2-2','-1+0','-1-1','+0+1','+1+1','+2+1','-1-2','-2+0','+0+2','+1+2','+2+2','-2-1','-2-2','-1+1'}
|
||||
local R=_flipList(L)
|
||||
local F={'+0+0','-1+0','+1+0','+0-1','-1-1','+1-1','+0-2','-1-2','+1-2','-2+0','+2+0','-2-1','+2-1','-2+1','+2+1','+0+2','-1+2','+1+2'}
|
||||
local centerPos=TABLE.copy(ASC.centerPos)
|
||||
@@ -1078,4 +1077,4 @@ for name,rs in next,RSlist do
|
||||
end
|
||||
end
|
||||
|
||||
return RSlist
|
||||
return RSlist
|
||||
@@ -1,5 +1,5 @@
|
||||
local L={
|
||||
zChan={-- F0000~F003F
|
||||
zChan={-- F0000 - F003F
|
||||
none= 0xF0000,
|
||||
normal= 0xF0001,
|
||||
full= 0xF0002,
|
||||
@@ -15,7 +15,7 @@ local L={
|
||||
angry= 0xF000C,
|
||||
shocked= 0xF000D,
|
||||
ellipses= 0xF000E,
|
||||
sweat_drop= 0xF000F,
|
||||
sweatDrop= 0xF000F,
|
||||
cry= 0xF0010,
|
||||
cracked= 0xF0011,
|
||||
qualified= 0xF0012,
|
||||
@@ -24,7 +24,7 @@ local L={
|
||||
thinking= 0xF0015,
|
||||
spark= 0xF0016,
|
||||
},
|
||||
mino={-- F0040~F007F
|
||||
mino={-- F0040 - F007F
|
||||
Z=0xF0040,
|
||||
S=0xF0041,
|
||||
J=0xF0042,
|
||||
@@ -57,7 +57,7 @@ local L={
|
||||
I2=0xF005B,
|
||||
O1=0xF005C,
|
||||
},
|
||||
icon={-- F0080~F00FF
|
||||
icon={-- F0080 - F00FF
|
||||
menu= 0xF0080,
|
||||
music= 0xF0081,
|
||||
language= 0xF0082,
|
||||
@@ -154,8 +154,12 @@ local L={
|
||||
rewind30= 0xF00DD,
|
||||
foward10= 0xF00DE,
|
||||
foward30= 0xF00DF,
|
||||
fontUp= 0xF00E0,
|
||||
fontDown= 0xF00E1,
|
||||
erase= 0xF00E2,
|
||||
auto= 0xF00E3,
|
||||
},
|
||||
key={-- F0100~F017F
|
||||
key={-- F0100 - F017F
|
||||
macCmd= 0xF0100,
|
||||
macOpt= 0xF0101,
|
||||
macCtrl= 0xF0102,
|
||||
@@ -196,7 +200,7 @@ local L={
|
||||
macPgdnAlt= 0xF0125,
|
||||
iecPower= 0xF0126,
|
||||
},
|
||||
controller={-- F0180~F01FF
|
||||
controller={-- F0180 - F01FF
|
||||
xbox= 0xF0180,
|
||||
lt= 0xF0181,
|
||||
rt= 0xF0182,
|
||||
@@ -236,7 +240,7 @@ local L={
|
||||
psCreate= 0xF01A4,
|
||||
psOption= 0xF01A5,
|
||||
},
|
||||
mahjong={-- F0200~F027F
|
||||
mahjong={-- F0200 - F027F
|
||||
m1= 0xF0200,
|
||||
m2= 0xF0201,
|
||||
m3= 0xF0202,
|
||||
@@ -323,6 +327,67 @@ local L={
|
||||
s1j= 0xF0253,
|
||||
s1jBase= 0xF0254,
|
||||
s1jComb= 0xF0255,
|
||||
},
|
||||
cards={-- F0300 - F070F
|
||||
cardBack= 0xF0300,
|
||||
clubA= 0xF0301,
|
||||
club2= 0xF0302,
|
||||
club3= 0xF0303,
|
||||
club4= 0xF0304,
|
||||
club5= 0xF0305,
|
||||
club6= 0xF0306,
|
||||
club7= 0xF0307,
|
||||
club8= 0xF0308,
|
||||
club9= 0xF0309,
|
||||
club10= 0xF030A,
|
||||
clubJ= 0xF030B,
|
||||
clubC= 0xF030C,
|
||||
clubQ= 0xF030D,
|
||||
clubK= 0xF030E,
|
||||
heartA= 0xF0401,
|
||||
heart2= 0xF0402,
|
||||
heart3= 0xF0403,
|
||||
heart4= 0xF0404,
|
||||
heart5= 0xF0405,
|
||||
heart6= 0xF0406,
|
||||
heart7= 0xF0407,
|
||||
heart8= 0xF0408,
|
||||
heart9= 0xF0409,
|
||||
heart10= 0xF040A,
|
||||
heartJ= 0xF040B,
|
||||
heartC= 0xF040C,
|
||||
heartQ= 0xF040D,
|
||||
heartK= 0xF040E,
|
||||
diamondA= 0xF0501,
|
||||
diamond2= 0xF0502,
|
||||
diamond3= 0xF0503,
|
||||
diamond4= 0xF0504,
|
||||
diamond5= 0xF0505,
|
||||
diamond6= 0xF0506,
|
||||
diamond7= 0xF0507,
|
||||
diamond8= 0xF0508,
|
||||
diamond9= 0xF0509,
|
||||
diamond10= 0xF050A,
|
||||
diamondJ= 0xF050B,
|
||||
diamondC= 0xF050C,
|
||||
diamondQ= 0xF050D,
|
||||
diamondK= 0xF050E,
|
||||
jokerBlack= 0xF050F,
|
||||
clubA= 0xF0601,
|
||||
club2= 0xF0602,
|
||||
club3= 0xF0603,
|
||||
club4= 0xF0604,
|
||||
club5= 0xF0605,
|
||||
club6= 0xF0606,
|
||||
club7= 0xF0607,
|
||||
club8= 0xF0608,
|
||||
club9= 0xF0609,
|
||||
club10= 0xF060A,
|
||||
clubJ= 0xF060B,
|
||||
clubC= 0xF060C,
|
||||
clubQ= 0xF060D,
|
||||
clubK= 0xF060E,
|
||||
jokerWhite= 0xF060F,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,8 +56,8 @@ return {
|
||||
if D.maxRankPts>D.rankPts then
|
||||
gc_setColor(COLOR.lX)
|
||||
setFont(20)
|
||||
GC.mStr(text.highest:repD(getConstructGrade(D.maxRankPts)),63,216)
|
||||
GC.mStr(text.highest:repD(D.maxRankPts-1),63,336)
|
||||
GC.mStr(text.highestGrade:repD(getConstructGrade(D.maxRankPts)),63,216)
|
||||
GC.mStr(text.highestGrade:repD(D.maxRankPts-1),63,336)
|
||||
end
|
||||
|
||||
if not D.showGuide then return end
|
||||
|
||||
@@ -57,8 +57,8 @@ return {
|
||||
if D.maxRankPts>D.rankPts then
|
||||
gc_setColor(COLOR.lX)
|
||||
setFont(20)
|
||||
GC.mStr(text.highest:repD(getConstructGrade(D.maxRankPts)),63,216)
|
||||
GC.mStr(text.highest:repD(D.maxRankPts-1),63,336)
|
||||
GC.mStr(text.highestGrade:repD(getConstructGrade(D.maxRankPts)),63,216)
|
||||
GC.mStr(text.highestGrade:repD(D.maxRankPts-1),63,336)
|
||||
end
|
||||
|
||||
if not D.showGuide then return end
|
||||
|
||||
@@ -57,8 +57,8 @@ return {
|
||||
if D.maxRankPts>D.rankPts then
|
||||
gc_setColor(COLOR.lX)
|
||||
setFont(20)
|
||||
GC.mStr(text.highest:repD(getConstructGrade(D.maxRankPts)),63,216)
|
||||
GC.mStr(text.highest:repD(D.maxRankPts-1),63,336)
|
||||
GC.mStr(text.highestGrade:repD(getConstructGrade(D.maxRankPts)),63,216)
|
||||
GC.mStr(text.highestGrade:repD(D.maxRankPts-1),63,336)
|
||||
end
|
||||
|
||||
if not D.showGuide then return end
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
-- local regretDelay=-1
|
||||
-- local int_grade=0
|
||||
-- local grade_points=0
|
||||
local _igb={0,1,2,3,4,5,5,6,6,7,7,7,8,8,8,9,9,9,10,11,12,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26}
|
||||
local function getInternalGradeBoosts(internal_grade)
|
||||
return _igb[MATH.clamp(internal_grade+1,1,#_igb)]
|
||||
end
|
||||
-- local spd_lvl=0
|
||||
-- local cools=0
|
||||
-- local regrets=0
|
||||
-- local prevSectTime=0
|
||||
-- local isInRoll=false
|
||||
-- local rollGrades=0
|
||||
|
||||
local decayRate={125,80,80,50,45,45,45,40,40,40,40,40,30,30,30,20,20,20,20,20,15,15,15,15,15,15,15,15,15,15,10,10,10,9,9,9,8,8,8,7,7,7,6}
|
||||
|
||||
local cool_time={3120,3120,2940,2700,2700,2520,2520,2280,2280,0}
|
||||
local regret_time= {5400,4500,4500,4080,3600,3600,3000,3000,3000,3000}
|
||||
local function getGrav(l)
|
||||
@@ -91,6 +85,7 @@ local function addGrade(D,row,cmb,lvl) -- IGS = internal grade system
|
||||
if D.grade_points>=100 then
|
||||
D.grade_points=0
|
||||
D.internal_grade=D.internal_grade+1
|
||||
D.decayTimer=0
|
||||
end
|
||||
end
|
||||
local function getRollGoal(D,isGreenLine)
|
||||
@@ -294,6 +289,7 @@ return {
|
||||
D.target=100
|
||||
D.int_grade=0
|
||||
D.grade_points=0
|
||||
D.decayTimer=0
|
||||
D.rollGrades=0
|
||||
D.spd_lvl=0
|
||||
D.cools=0
|
||||
@@ -304,8 +300,6 @@ return {
|
||||
D.prevDrop70=false
|
||||
D.nextSpeedUp=false
|
||||
D.coolList,D.regretList=TABLE.new(false,9),TABLE.new(false,10)
|
||||
local decayRate={125,80,80,50,45,45,45,40,40,40,40,40,30,30,30,20,20,20,20,20,15,15,15,15,15,15,15,15,15,15,10,10,10,9,9,9,8,8,8,7,7,7,6}
|
||||
local decayTimer=0
|
||||
|
||||
while true do
|
||||
coroutine.yield()
|
||||
@@ -344,10 +338,10 @@ return {
|
||||
D.prevSectTime=P.stat.frame
|
||||
end
|
||||
end
|
||||
if P.waiting<=0 and D.grade_points>0 and not D.isInRoll then
|
||||
decayTimer=decayTimer+1
|
||||
if decayTimer>=decayRate[math.min(D.internal_grade+1,#decayRate)] then
|
||||
decayTimer=0
|
||||
if P.waiting<=0 and D.grade_points>0 and P.combo<1 and not D.isInRoll then
|
||||
D.decayTimer=D.decayTimer+1
|
||||
if D.decayTimer>=decayRate[math.min(D.internal_grade+1,#decayRate)] then
|
||||
D.decayTimer=0
|
||||
D.grade_points=D.grade_points-1
|
||||
end
|
||||
elseif D.isInRoll and P.stat.frame>=D.prevSectTime+3599 then
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -162,7 +162,11 @@ do-- function applySettings()
|
||||
BG.unlock()
|
||||
BG.setDefault(SETTING.defaultBG)
|
||||
BG.set()
|
||||
if SETTING.lockBG then BG.lock() end
|
||||
if SETTING.lockBG then
|
||||
BG.lock()
|
||||
elseif reason=='lockBG' then -- Don't load theme too soon!
|
||||
THEME.set(THEME.calculate(),GAME.playing)
|
||||
end
|
||||
elseif SETTING.bg=='off' then
|
||||
BG.unlock()
|
||||
BG.set('fixColor',SETTING.bgAlpha,SETTING.bgAlpha,SETTING.bgAlpha)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
-- Automatically generated by a Python script, from a markdown source file.
|
||||
-- The script can be found here: https://github.com/user670/techmino-dictionary-converter/blob/master/tool.py
|
||||
-- **NOTE TO TRANSLATORS**: In English (and in this file) the symbol ~ (tilde) is commonly used to express "approximately". Some languages use this symbol to express ranges or "from/up to a value", but it is not commonly used in English.
|
||||
return {
|
||||
{"Translator Note 1",
|
||||
"",
|
||||
@@ -551,7 +552,7 @@ FNNS and {"Support 3",
|
||||
{"BiRS",
|
||||
"biasrs biasrotationsystem",
|
||||
"term",
|
||||
"Bias Rotation System, an original rotation system used in Techmino based on XRS and SRS.\nIn BiRS, a special offset is triggered when either the left, right, or softdrop key is pressed and the block touches the minoes or walls in that direction. This adds an extra block of offset in that direction, in addition to the normal offsets in the wall kick tables. If the tests fail, BiRS will attempt to remove the offsets and try again, removing the down offsets first, then the left and right offsets if the first fails. \nThe special offsets also obey these two rules: the distance of the offset must not exceed √5, and the offset must not be in the opposite direction to that indicated by the keypress.\nCompared to XRS, BiRS uses only a single kick table, making it easier to memorize, while retaining the climb-over-terrain feature of SRS.",
|
||||
"Bias Rotation System, an original rotation system used in Techmino based on XRS and SRS.\nIn BiRS, an extra offset is triggered when either the left, right, or softdrop key is pressed and the block touches the minoes or walls in that direction. This introduces an additional offset in the specified direction, in addition to the standard offsets listed on the wall kick tables. The horizontal extra offsets indicated by the keypress must not be in the opposite direction to the composite horizontal offset, and the distance of the composite offset must not exceed √5. If the test fails, the system will perform another test without the horizontal offsets; should this also fail, a further test will be conducted without downward offsets. In contrast to XRS, BiRS uses only a single kick table, making it easier to memorize while retaining the climb-over-terrain feature of SRS.",
|
||||
},
|
||||
{"C2RS",
|
||||
"c2rs cultris2",
|
||||
|
||||
@@ -612,7 +612,7 @@ FNNS and {"サポート3",
|
||||
{"BiRS",
|
||||
"biasrs biasrotationsystem",
|
||||
"term",
|
||||
"*Techmino用語*\nBias Rotation System\nXRSとSRSを基に作られたTechmino独自の回転法則\n回転時に右や左、ソフトドロップを入力しているとその方向にミノがズレるように回転に補正がかけられます\n下方向に補正がかかっているときに回転に失敗(既存のマスと重なる)と下方向への補正をかけずに再試行します\nそしてそれにも失敗した場合は右、または左の補正をかけずに再試行します\nそれにも失敗した場合には回転されません\n\nBiRSはXRSに比べてキックテーブルが1つのため覚えやすく、さらにSRSの特徴である地形に沿った壁超え等も備えています\n\n追加事項:最後の回転補正を試行する時のルールとして移動するユークリッド距離が√5を超えてはいけない、また右または左に補正がかかっている場合には最後の回転補正はもう一方の方向には行かないという2つのルールがBiRSにあります",
|
||||
"*Techmino用語*\nBias Rotation System\nXRSとSRSを基に作られたTechmino独自の回転法則\n回転時に右や左、ソフトドロップを入力しているとその方向にミノがズレるように回転に補正がかけられます\n下方向に補正がかかっているときに回転に失敗(既存のマスと重なる)と下方向への補正をかけずに再試行します\nそしてそれにも失敗した場合は右、または左の補正をかけずに再試行します\nそれにも失敗した場合には回転されません\n\nBiRSはXRSに比べてキックテーブルが1つのため覚えやすく、さらにSRSの特徴である地形に沿った壁超え等も備えています\n\n追加事項:最後の回転補正を試行する時のルールとして移動するユークリッド距離が√5を超えてはいけない、また右または左に補正がかかっている場合には最後の回転補正はもう一方の方向には行かないという2つのルールがBiRSにあります",-- TODO
|
||||
},
|
||||
{"C2RS",
|
||||
"c2rs cultris 2 カルトリス",
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
local tetromino = " tetromino tetramino tetrimino"
|
||||
local function replaceCheckCrossMark(str)
|
||||
return STRING.repD(str,CHAR.icon.checkMark,CHAR.icon.crossMark)
|
||||
end
|
||||
|
||||
return {
|
||||
{
|
||||
@@ -374,7 +377,7 @@ Hệ thống mô tả cách xoay như sau:
|
||||
[[
|
||||
Một hệ thống để xác định cách gạch xoay.
|
||||
|
||||
Ở các trò xếp gạch hiện đại, mỗi gạch có thể xoay dựa trên một tâm xoay cố định (vài game có thể không có tâm xoay cố định).
|
||||
Ở các trò xếp gạch hiện đại, mỗi gạch có thể xoay dựa trên một tâm xoay cố định (vài game có thể không có cái này).
|
||||
Nếu gạch sau khi xoay đè lên gạch khác / ra ngoài bảng, hệ thống sẽ thử "wall-kicking" (đẩy gạch sang các vị trí xung quanh).
|
||||
Tuy nhiên, nếu khoảng cách quá lớn thì hệ thống xoay không thể đá gạch được
|
||||
|
||||
@@ -410,14 +413,16 @@ Bias Rotation System | Hệ thống xoay Bias.
|
||||
|
||||
Một hệ thống xoay dựa trên SRS và XRS
|
||||
|
||||
Để kích hoạt offset đặc biệt trong BiRS, cần phải thực hiện cùng lúc các điều kiện sau:
|
||||
Để kích hoạt offset bổ sung trong BiRS, cần phải thỏa hai điều kiện sau cùng lúc:
|
||||
1. Một nút di chuyển (Trái / Phải / Thả nhẹ) phải được giữ
|
||||
2. Gạch hiện tại phải chạm một ô gạch bất kỳ hoặc chạm tường ở hướng đang được giữ ở bước 1
|
||||
|
||||
Nếu thực hiện thành công, offset ở hướng đang được giữ ở bước 1 sẽ được thêm 1 ô. Tuy nhiên, để kick được thì cần phải tuân thêm hai điều kiện:
|
||||
|
||||
1. Khoảng cách euclide (ơclit) từ tâm tới vị trí đá tới được chọn phải bé hơn √5
|
||||
2. Hướng của cú đá không phải là hướng đối của hướng đã được xác định bằng phím bấm.
|
||||
1. Khoảng cách Euclide từ tâm tới vị trí đá tới được chọn phải bé hơn √5
|
||||
2. Hướng của cú đá không phải là hướng đối diện với hướng đã được xác định bằng phím bấm.
|
||||
|
||||
Nếu không dùng kick đó được, offset trái phải sẽ bị hủy và thử lại, nếu không được nữa thì hủy luôn offset dưới.
|
||||
|
||||
So với XRS, BiRS dễ nhớ hơn vì chỉ dùng một bảng wall-kick; nhưng vẫn giữ được khả năng vượt địa hình của SRS.
|
||||
]],
|
||||
@@ -455,7 +460,7 @@ So với XRS, BiRS dễ nhớ hơn vì chỉ dùng một bảng wall-kick; nhưn
|
||||
{"TRS",
|
||||
"nhom05b techminorotationsystem",
|
||||
"term",
|
||||
"Techmino Rotation System | Hệ thống xoay Techmino\n*Chỉ có trên Techmino*\n\nMột hệ thống xoay dựa trên SRS.\nHệ thống này khắc phục được hiện tượng gạch S / Z bị kẹt trong một số trường hợp.\n\nHơn nữa, TRS có thêm các bảng wall-kick dành cho Pentomino dựa trên logic của SRS với Tetromino.\n\nHệ thống cũng hỗ trợ O-Spin, cho phép gạch chữ O có thể đá hoặc \"biến hình\".",
|
||||
"Techmino Rotation System | Hệ thống xoay Techmino\n*Chỉ có trên Techmino*\n\nMột hệ thống xoay dựa trên SRS.\nHệ thống này khắc phục được hiện tượng gạch S / Z bị kẹt trong một số trường hợp.\n\nHơn nữa, TRS có thêm các bảng wall-kick dành cho Pentomino dựa trên logic của SRS với Tetromino.\n\nHệ thống cũng hỗ trợ O-Spin, cho phép gạch O có thể đá hoặc \"biến hình\".",
|
||||
},
|
||||
{"XRS",
|
||||
"nhom05b xrs",
|
||||
@@ -495,17 +500,17 @@ So với XRS, BiRS dễ nhớ hơn vì chỉ dùng một bảng wall-kick; nhưn
|
||||
{"His",
|
||||
"nhom05d historygenerator hisgenerator",
|
||||
"term",
|
||||
[[
|
||||
replaceCheckCrossMark[[
|
||||
Một kiểu xáo gạch được sử dụng nhiều trong series game Tetris: The Grand Master.
|
||||
|
||||
Trong kiểu xáo này, cách chọn gạch diễn ra như nhau:
|
||||
- Bước 1: Chọn ngẫu nhiên một trong bảy Tetromino.
|
||||
- Bước 2: Kiểm tra xem liệu gạch đã bốc trúng có phải là một trong những gạch đã xuất hiện gần nhất không.
|
||||
-- Đúng: Tới Bước 3
|
||||
-- Sai: Nhảy tới Bước 4
|
||||
$1: Tới Bước 3
|
||||
$2: Nhảy tới Bước 4
|
||||
- Bước 3: Cộng 1 vào số lần đã bốc lại, kiểm tra xem liệu số lần đã bốc lại có vượt qua giới hạn tối đa hay không?
|
||||
-- Đúng: Tới Bước 4
|
||||
-- Sai: nhảy về Bước 1
|
||||
$1: Tới Bước 4
|
||||
$2: Nhảy về Bước 1
|
||||
- Bước 4: Dùng gạch đã bốc trúng
|
||||
|
||||
Kiểu xáo này hay được mô tả bằng "His [A] Roll [B]"
|
||||
@@ -529,21 +534,25 @@ Kiểu xáo His là phiên bản cải tiến so với kiểu xáo ngẫu nhiên
|
||||
{"HisPool [2/2]",
|
||||
"nhom05d hispool historypoolgenerator kiểu xáo hispool",
|
||||
"term",
|
||||
[[
|
||||
replaceCheckCrossMark[[
|
||||
[Sea: Phần này không có trong Zictionary ngôn ngữ khác!]
|
||||
Cách hoạt động của kiểu xáo HisPool diễn ra tuần tự như sau:
|
||||
|
||||
Bước 1: Lấy một viên gạch ngẫu nhiên trong cái Rổ.
|
||||
- Nếu gạch đó là một trong những gạch đã bốc ra trước đó: bốc lại cho tới khi gạch đó không còn là một trong những viên gạch kia, hoặc là hết lượt bốc lại.
|
||||
- Kiểm tra xem gạch vừa bốc có nằm trong số gạch đã chọn hay không?
|
||||
$2: Chọn gạch vừa bốc và tới bước 2
|
||||
$1: Lặp lại bước 1 cho tới khi thỏa một trong hai điều kiện sau:
|
||||
-- Gạch vừa bốc không nằm trong số gạch đã chọn gần nhất.
|
||||
-- Hết lượt bốc lại
|
||||
Sau khi hết lặp, chọn gạch được bốc trúng gần nhất.
|
||||
|
||||
Bước 2: Gạch được bốc trúng sẽ được lấy ra khỏi Rổ.
|
||||
- Với mỗi gạch còn lại, cộng 1 vào số lần chưa bốc trúng.
|
||||
- Rổ lúc này còn 34 gạch.
|
||||
|
||||
Bước 3: Thêm gạch có số lần chưa bốc trúng nhiều nhất vào lại rổ để đảm bảo số lượng là 35 gạch.
|
||||
- Sau khi gạch đó đã thêm vào Rổ, số lần chưa bốc trúng của nó sẽ bị đặt lại về 0
|
||||
Bước 3: Thêm gạch có số lần chưa bốc trúng nhiều nhất vào lại rổ (để đảm bảo số lượng là 35 gạch), và đặt lại số lần chưa bốc trúng của nó về 0
|
||||
|
||||
Bước 4: Thêm gạch vào chuỗi NEXT và quay về Bước 1.
|
||||
Bước 4: Thêm gạch đã chọn vào chuỗi NEXT cũng như chuỗi gạch đã chọn gần nhất, rồi quay về Bước 1.
|
||||
]],
|
||||
},
|
||||
{"bagES",
|
||||
@@ -564,7 +573,7 @@ Bước 4: Thêm gạch vào chuỗi NEXT và quay về Bước 1.
|
||||
{"H. tg. Drought",
|
||||
"drought",
|
||||
"term",
|
||||
"Một hiện tượng mà một viên gạch người chơi muốn nhưng lại không xuất hiện. Thường dùng để chỉ hiện tượng khát gạch I trong mấy game cổ điển vì chúng thường dùng bộ xáo gạch ngẫu nhiên đơn giản.\n\nTuy nhiên, trong các game hiện đại, hiện tượng drought không thể xảy ra vì khoảng cách tối đa giữa 2 gạch cùng loại là 13 gạch. ",
|
||||
"Hiện tượng gạch người chơi đang rất cần nhưng lại không xuất hiện trong thời gian quá dài. Thường dùng để chỉ hiện tượng khát gạch I trong mấy game cổ điển vì chúng thường dùng bộ xáo gạch ngẫu nhiên đơn giản.\n\nHiện nay, ở các game hiện đại, hiện tượng drought không thể xảy ra vì khoảng cách tối đa giữa 2 gạch cùng loại là 13 gạch.",
|
||||
},
|
||||
{">E|Thông số",
|
||||
"nhom05e",
|
||||
@@ -706,10 +715,10 @@ Một kỹ thuật di chuyển gạch vào vị trí mong muốn với chuỗi p
|
||||
Bạn sẽ không bị mất Finesse khi bạn nhét gạch hay thực hiện Spin vì Techmino chỉ kiểm tra những vị trí không yêu cầu soft drop
|
||||
|
||||
Techmino cũng có finesse rate (%) (tỉ lệ *không* mắc lỗi di chuyển), được tính như sau:
|
||||
- 100% (Hoàn hảo - Perfect) khi số lần nhấn phím bằng hoặc ít hơn mức chuẩn
|
||||
- 50% (Tuyệt vời - Great) khi số lần nhấn phím cao hơn mức chuẩn 1 phím
|
||||
- 25% (Xấu - Bad) khi số lần nhấn phím cao hơn mức chuẩn 2 phím
|
||||
- 0% (Truợt - Miss) khi số lần nhấn phím cao hơn mức chuẩn 3 phím
|
||||
- 100% (Perfect) khi số lần nhấn phím bằng hoặc ít hơn mức chuẩn
|
||||
- 50% (Great) khi số lần nhấn phím cao hơn mức chuẩn 1 phím
|
||||
- 25% (Bad) khi số lần nhấn phím cao hơn mức chuẩn 2 phím
|
||||
- 0% (Miss) khi số lần nhấn phím cao hơn mức chuẩn 3 phím
|
||||
Một Bad hoặc Miss sẽ phá combo finesse.
|
||||
|
||||
Lưu ý:
|
||||
@@ -774,7 +783,7 @@ Phương pháp này lần đầu tiên được tìm thấy bởi Cheez-fish - n
|
||||
{"APL",
|
||||
"nhom05g attackperline efficiency; số hàng tấn công; số hàng đã xóa; độ hiệu quả",
|
||||
"term",
|
||||
"Attack per line (cleared) | Số hàng tấn công / Số hàng đã xóa\n\nCòn được biết với tên \"efficiency\" (độ hiệu quả). Phản ánh độ hiệu quả khi tấn công sau mỗi lần xóa hàng.\nVí dụ Tetris và T-spin có độ hiệu quả cao hơn so với xóa 2 / 3 hàng.",
|
||||
"Attack per line (cleared)\n\tSố hàng tấn công / Số hàng đã xóa\n\nCòn được biết với tên \"efficiency\" (độ hiệu quả). Phản ánh độ hiệu quả khi tấn công sau mỗi lần xóa hàng.\nVí dụ Tetris và T-spin có độ hiệu quả cao hơn so với xóa 2 / 3 hàng.",
|
||||
},
|
||||
{"Tấn công&Phg thủ",
|
||||
"nhom05g attacking defending phòng thủ; tấn công & phòng thủ; tấn công và phòng thủ",
|
||||
@@ -847,7 +856,7 @@ Trong hầu hết các game, tấn công và phòng thủ là tương đương n
|
||||
{"Fin, Neo, Iso",
|
||||
"nhom05i fin neo iso",
|
||||
"pattern",
|
||||
"Tên của 3 kiểu T-spin sử dụng wall-kick table đặc biệt của gạch T. Các game khác nhau có cách phản công khác nhau với loại này: có game tính là Mini-spin, nhưng cũng có game không tính luôn =))).\n\nTrên thực tế chúng không được sử dụng nhiều vì game thường sẽ nerf loại T-spin này; hơn nữa setup của ba loại này khá là phức tạp."
|
||||
"Tên của 3 kiểu T-spin sử dụng wall-kick table đặc biệt của gạch T. Chúng không được sử dụng nhiều trong game bởi vì độ phức tạp và thường hay bị nerf bởi đa số game."
|
||||
},
|
||||
{"Freestyle",
|
||||
"nhom05i",
|
||||
@@ -894,7 +903,7 @@ Trong hầu hết các game, tấn công và phòng thủ là tương đương n
|
||||
{"Back to Back",
|
||||
"nhom05j b2b btb backtoback",
|
||||
"term",
|
||||
"Hay còn gọi là B2B. Xóa 2 hoặc nhiều lần xóa theo kiểu nâng cao (như Tetris hay Spin) liên tiếp (nhưng không được xóa theo kiểu 'bình thường' giữa chừng).\nKhông như combo, Back To Back sẽ không bị mất khi đặt gạch.\n\nỞ Techmino, B2B được tính bằng thanh năng lượng, chứ không tính theo số lần xóa theo kiểu nâng cao.\nCũng trong Techmino, nhiều B2B liên tiếp được tính là Back-to-back-to-back (B3B) (xem mục B2B2B để biết thêm).\n\nTechmino cũng tính cả PC và HPC liên tiếp là B2B và B3B",
|
||||
"Hay còn gọi là B2B. Xóa 2 hoặc nhiều lần xóa theo kiểu nâng cao (như Tetris hay Spin) liên tiếp (nhưng không được kiểu xóa bình thường giữa chừng).\nKhông như combo, Back To Back sẽ không bị mất khi đặt gạch.\n\nỞ Techmino, B2B được tính bằng thanh năng lượng, chứ không tính theo số lần xóa kiểu đặc biệt.\nCũng trong Techmino, nhiều B2B liên tiếp được tính là Back-to-back-to-back (B3B) (xem mục B2B2B để biết thêm).\n\nTechmino cũng tính cả PC và HPC liên tiếp là B2B và B3B",
|
||||
},
|
||||
{"B2B2B",
|
||||
"nhom05j b3b backtobacktoback",
|
||||
@@ -932,13 +941,13 @@ Trong hầu hết các game, tấn công và phòng thủ là tương đương n
|
||||
[[
|
||||
Đây là skin được dùng trong những phiên bản đời đầu của Tetris
|
||||
|
||||
Trước đây, tất cả máy tính đều sử dụng Giao diện Dòng lệnh (Command-Line Interfaces, gần giống như cmd trên Windows, Terminal trên Mac, hay Console trên Linux), cho nên mỗi ô gạch đều được hiển thị dưới dạng 2 ngoặc vuông (như thế này: [ ]).
|
||||
Trước đây, tất cả máy tính đều sử dụng Giao diện Dòng lệnh (Command-Line Interfaces), cho nên mỗi ô gạch đều được hiển thị dưới dạng 2 ngoặc vuông (như thế này: ]]..CHAR.icon.bone..[[).
|
||||
Trông nó nhìn rất giống cục xương, nên đôi khi được gọi là skin bone block (gạch xương).
|
||||
|
||||
Trong Techmino, bone block được mô tả là "một skin gạch duy nhất, lạ mắt mà tất cả các gạch đều sử dụng".
|
||||
Skin khác nhau sẽ có skin bone block khác nhau.
|
||||
|
||||
Cũng trong Techmino nhưng ở tiếng Việt, từ "gạch []" được dùng để chỉ bone block.
|
||||
Cũng trong Techmino nhưng ở tiếng Việt, từ "gạch ]]..CHAR.icon.bone..[[" được dùng để chỉ bone block.
|
||||
]],
|
||||
},
|
||||
{"=[NHÓM 06]=",
|
||||
@@ -1048,7 +1057,7 @@ Gọi tắt là WWC. Có chế độ 1 đấu 1 toàn cầu: chơi với ngườ
|
||||
[[
|
||||
Chơi trên trình duyệt / client chính thức | Chơi đơn / Chơi trực tuyến
|
||||
|
||||
Gọi tắt là TF. Một game xếp gạch dùng engine là một plugin đã nghỉ hưu từ năm 2021 (vì vấn đề bảo mật). Từng rất phổ biến trong quá khứ, nhưng tất cả máy chủ chính thức đã đóng cửa từ mấy năm trước. Hiện giờ vẫn còn một máy chủ riêng tên là \"Notris Foes\". Nhấn vào nút hình địa cầu để mở ở trong trình duyệt
|
||||
Gọi tắt là TF. Một game xếp gạch dùng engine là một plugin đã nghỉ hưu từ năm 2021 (vì vấn đề bảo mật). Từng rất phổ biến trong quá khứ, nhưng tất cả máy chủ chính thức đã đóng cửa từ mấy năm trước. Hiện giờ vẫn còn một máy chủ riêng tên là "Notris Foes". Nhấn vào nút hình địa cầu để mở ở trong trình duyệt
|
||||
]],
|
||||
"https://notrisfoes.com",
|
||||
},
|
||||
@@ -1138,9 +1147,11 @@ Một trò chơi do fan làm đang được phát triển với hệ thống xoa
|
||||
"nhom06 tetrisgrandmaster tetristhegrandmaster",
|
||||
"game",
|
||||
[[
|
||||
Chỉ có trên máy thùng | Chơi đơn / Chơi hai người
|
||||
Máy thùng, và các hệ máy khác* | Chơi đơn / Chơi hai người
|
||||
|
||||
Tetris: The Grand Master, một series Tetris dành cho máy thùng, nổi tiếng với độ khó cực cao - được xem là series game khó nhất (tại thời điểm ra mắt). Những thứ như S13 hay GM cũng từ chính series này. TGM3 được coi là tựa game nổi tiếng nhất của series này.
|
||||
|
||||
(*): Hiện TGM1 và TGM2 đã được port sang PS và Switch dưới gói Arcade Archives.
|
||||
]],
|
||||
},
|
||||
{"DTET",
|
||||
@@ -1172,10 +1183,9 @@ Một game với phong cách chơi máy thùng, có khả năng mô phỏng nhi
|
||||
[[
|
||||
Windows | Chơi đơn
|
||||
|
||||
Một game bao gồm tất cả chế độ trong TGM để có thể sử dụng để luyện chơi TGM. Lưu ý rằng World Rule trong Texmaster hơi khác một chút so với TGM, ví dụ như game sử dụng cơ chế "Thả nhẹ-khóa tức thì"* thay vì sử dụng cơ chế "Thả nhẹ" thông thường và bảng kick cũng có đôi chút khác biệt
|
||||
Một game có tất cả chế độ trong TGM để có thể sử dụng để luyện chơi TGM. Cần lưu ý rằng World Rule trong Texmaster sẽ hơi khác một chút so với TGM, ví dụ như game sử dụng cơ chế "Thả nhẹ-khóa tức thì"* thay vì sử dụng cơ chế "Thả nhẹ" thông thường và bảng kick cũng có đôi chút khác biệt
|
||||
|
||||
(*): Bản Zictionary tiếng Anh ghi là "instant-lock soft drop(s)".
|
||||
Có thể hiểu là bạn giữ nút Thả nhẹ, gạch vừa chạm đất là chốt vị trí đó luôn - giống với các game xếp gạch cổ điển ấy!
|
||||
(*): Bản Zictionary tiếng Anh ghi là "instant-lock soft drop(s)". Có thể hiểu là bạn giữ nút Thả nhẹ, gạch vừa chạm đất là chốt vị trí đó luôn - giống với các game xếp gạch cổ điển.
|
||||
]],
|
||||
},
|
||||
{"Tetris Effect",
|
||||
@@ -1202,7 +1212,7 @@ Một trò chơi nổi tiếng với chế độ Battle Royale 99 người và c
|
||||
[[
|
||||
PS / NS / Xbox / Windows | Chơi đơn / Chơi trực tuyến
|
||||
|
||||
Đây là một tựa game ghép từ hai trò chơi giải đố: Tetris và Puyo Puyo, và bạn có thể chơi đối đầu trong cả hai game này. Có nhiều chế độ chơi đơn và chơi trực tuyến.
|
||||
Đây là một game được ghép từ hai trò chơi giải đố: Tetris và Puyo Puyo, và bạn có thể chơi đối đầu trong cả hai game này. Có nhiều chế độ chơi đơn và chơi trực tuyến.
|
||||
|
||||
[MrZ: Bản PC (Steam) có cơ chế điều khiển và trải nghiệm trực tuyến khá là tệ.]
|
||||
]],
|
||||
|
||||
@@ -10,12 +10,12 @@ return {
|
||||
{"新人学习/练习路线",
|
||||
"读我 必读 萌新 xinren new noob readme",
|
||||
"help",
|
||||
"以下是关于提升真正打块能力的指引,如果在以下任何项目练习过程中感到有困难,可以适当回去玩玩自己喜欢的项目。别忘了你是来 “玩” 游戏的,兴趣最重要。\n以下给出几个新手时期的主线任务树,前期主要就应该练习以下内容,学定式和T-Spin什么的对实力帮助很小(我们不认为靠定式对战秒其他萌新是有效实力):\n(注意,三段应当同时进行,不是A→B→C)\nA. 堆叠能力练习方法\n\tA1. 手上的块可以放的时候先别急着放,看看下一块有没有地方,如果放不下去就看看手上的能不能换个地方\n\tA2. 尝试把地形尽量控制得平整,因为大多数情况比较平的地形来啥块都比较容易放得下去\n\tA3. 允许hold的时候可以多想想手里和hold的块和后续几块应该怎么安排顺序,长远地使地形平整\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能力可以让你快速上手任何变种玩法。",
|
||||
"以下是关于提升真正打块能力的指引,如果在以下任何项目练习过程中感到有困难,可以适当回去玩玩自己喜欢的项目。别忘了你是来 “玩” 游戏的,兴趣最重要。\n以下给出几个新手时期的主线任务树,前期主要就应该练习以下内容,学定式和T-Spin什么的对实力帮助很小(我们不认为靠定式对战秒其他萌新是有效实力):\n(注意,三段应当同时进行,不是A→B→C)\nA. 堆叠能力练习方法\n\tA1. 手上的块可以放的时候先别急着放,看看下一块有没有地方,如果放不下去就看看手上的能不能换个地方\n\tA2. 尝试把地形尽量控制得平整,因为大多数情况比较平的地形来啥块都比较容易放得下去\n\tA3. 允许hold的时候可以多想想手里和hold的块和后续几块应该怎么安排顺序,长远地使地形平整\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",
|
||||
"help",
|
||||
"首先指出:要能熟练做出各种T-spin并不是只看着T-spin的那一小部分地形就可以玩好的,对玩家堆叠能力和计算next能力同样也有较高的要求。\n\n如果不只是出于娱乐、随便玩玩的目的,是真的想不断提升T-spin能力变强,请在基础能力达到一定要求前不要刻意去学习太多的T-spin,而先把重点放在堆叠等基本功上。\n\n参考学T门槛水平:40L达到60s以内(可以视个人情况调整为40~120s)、能够轻松完成全消四的40L、不使用Hold不降太多速度的前提下比较轻松完成全消四的40L(培养看next的意识和算力)。",
|
||||
"首先指出:要能熟练做出各种T-spin并不是只看着T-spin的那一小部分地形就可以玩好的,对玩家堆叠能力和计算next能力同样也有较高的要求。\n\n如果不只是出于娱乐、随便玩玩的目的,是真的想不断提升T-spin能力变强,请在基础能力达到一定要求前不要刻意去学习太多的T-spin,而先把重点放在堆叠等基本功上。\n\n参考学T门槛水平:40L达到60s以内(可以视个人情况调整为40~120s)、能够轻松完成全程消四的40L、不使用Hold不降太多速度的前提下比较轻松完成全程消四的40L(培养看next的意识和算力)。",
|
||||
},
|
||||
{"游戏官网",
|
||||
"official website homepage mainpage guanwang",
|
||||
@@ -543,7 +543,7 @@ FNNS and {"赞助3",
|
||||
{"BiRS",
|
||||
"旋转系统 rotate",
|
||||
"term",
|
||||
"Bias Rotation System\nTechmino原创旋转系统,基于XRS和SRS设计。\n当左/右/下(软降)被按下并且那个方向顶住了墙,按旋转后会先设定一个偏移(三个键朝各自方向加1格),在偏移的基础上试踢墙表里的位移(全都失败了会先取消向下的偏移再把踢墙重新试一遍,再都不行就取消左右,再不行就失败)。\nBiRS相比XRS只使用一个踢墙表更容易记忆,并且保留了SRS翻越地形的功能。\n\n细节补充:在测试踢墙时要满足两个条件,最终位移欧氏距离不能超过√5,并且存在水平偏移时最终水平位移必须和它不反向。",
|
||||
"Bias Rotation System\nTechmino原创旋转系统,基于XRS和SRS设计。\n当左/右/下(软降)被按下并且那个方向顶住了墙,会在旋转时添加一个额外偏移(三个键朝各自方向加1格),和基础踢墙表叠加(额外偏移和叠加偏移的水平方向不能相反,且叠加偏移的位移大小不能超过√5)。如果失败,会取消向左右的偏移然后重试,还不行就取消向下的偏移。\nBiRS相比XRS只使用一个踢墙表更容易记忆,并且保留了SRS翻越地形的功能。",
|
||||
},
|
||||
{"C2RS",
|
||||
"旋转系统 rotate cultris2",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user