Compare commits
44 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f1a08ca325 | ||
|
|
28ec031afa | ||
|
|
d9f606c56f | ||
|
|
de4b73cf83 | ||
|
|
beff0c9d99 | ||
|
|
4a76a929f5 | ||
|
|
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 |
@@ -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,14 +125,14 @@ 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])
|
||||
|
||||
local outputStr=''
|
||||
for i=1,#timeUnits do
|
||||
if timeUnits>0 then
|
||||
if timeUnits[i]>0 then
|
||||
return timeUnits[i]..timeLetters[i]..' '..timeUnits[i+1]..timeLetters[i+1]
|
||||
end
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
@@ -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.
@@ -161,12 +161,12 @@ do-- function applySettings()
|
||||
if SETTING.bg=='on' then
|
||||
BG.unlock()
|
||||
BG.setDefault(SETTING.defaultBG)
|
||||
BG.set()
|
||||
if SETTING.lockBG then
|
||||
BG.lock()
|
||||
elseif reason=='lockBG' then -- Don't load theme too soon!
|
||||
THEME.set(THEME.calculate(),GAME.playing)
|
||||
end
|
||||
BG.set()
|
||||
elseif SETTING.bg=='off' then
|
||||
BG.unlock()
|
||||
BG.set('fixColor',SETTING.bgAlpha,SETTING.bgAlpha,SETTING.bgAlpha)
|
||||
|
||||
@@ -552,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",
|
||||
@@ -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",
|
||||
|
||||
@@ -43,19 +43,19 @@ return {
|
||||
infHeightOn="Infinite Height ON",
|
||||
infHeightOff="Infinite Height OFF",
|
||||
infHeightHint="Toggle with Function 1 key",
|
||||
highest="(highest: $1)",
|
||||
highestGrade="(highest: $1)",
|
||||
|
||||
speedLV="Speed Level",
|
||||
piece="Piece",line="Lines",atk="Attack",eff="Efficiency",
|
||||
piece="Pieces",line="Lines",atk="Attack",eff="Efficiency",
|
||||
rpm="RPM",tsd="TSD",
|
||||
grade="Grade",techrash="Techrash",
|
||||
grade="Grade",techrash="Techrashes",
|
||||
wave="Wave",nextWave="Next",
|
||||
combo="Combo",maxcmb="Max Combo",
|
||||
pc="Perfect Clear",ko="KOs",
|
||||
pc="Perfect Clears",ko="KOs",
|
||||
|
||||
win="Win!",
|
||||
lose="Lose",
|
||||
torikan="Ended",
|
||||
torikan="The End",
|
||||
finish="Finished",
|
||||
gamewin="You Won",
|
||||
gameover="Game Over",
|
||||
@@ -67,14 +67,14 @@ return {
|
||||
|
||||
page="Page ",
|
||||
|
||||
ai_puzzle="AI is incompatible with puzzle game mode",
|
||||
ai_puzzle="AI is incompatible with the Puzzle gamemode.",
|
||||
ai_mission="AI is incompatible with custom missions.",
|
||||
ai_badPiece="AI is incompatible with custom sequences that contain non-tetrominoes.",
|
||||
cc_fixed="CC is incompatible with fixed sequences.",
|
||||
cc_swap="CC is incompatible when the hold mode is set to Swap.",
|
||||
cc_solid="CC is incompatible with filled line in the field.",
|
||||
cc_solid="CC is incompatible with filled lines in the field.",
|
||||
cc_field_too_high="CC is incompatible with fields higher than 40.",
|
||||
switchSpawnSFX="Please turn on the block spawn SFX!",
|
||||
switchSpawnSFX="Please turn on the piece spawn SFX!",
|
||||
needRestart="Restart to apply all changes.",
|
||||
|
||||
loadError_errorMode="Failed to load '$1': no load mode called '$2'",
|
||||
@@ -96,7 +96,7 @@ return {
|
||||
pasteWrongPlace="Did you paste in the wrong place?",
|
||||
noFile="File missing",
|
||||
invalidSequence="Invalid sequence mode",
|
||||
tooHighField="Field data exceeded 126 lines discarded",
|
||||
tooHighField="Field data exceeds 126 lines - higher lines discarded",
|
||||
|
||||
nowPlaying="Now playing:",
|
||||
|
||||
@@ -214,8 +214,8 @@ return {
|
||||
hold="HOLD\nOverrides the number of Hold pieces displayed.",
|
||||
hideNext="Hidden NEXT\nHides the specified number of pieces in the Next queue.",
|
||||
infHold="InfiniHold\nAllows you to hold pieces infinitely.",
|
||||
hideBlock="Hide Current Piece\nMakes the current pieces invisible.",
|
||||
hideGhost="No Ghost\nMakes the ghost pieces invisible.",
|
||||
hideBlock="Hide Active Piece\nMakes the active piece invisible.",
|
||||
hideGhost="No Ghost\nMakes the ghost piece invisible.",
|
||||
hidden="Hide Locked Pieces\nHides locked pieces after a certain amount of time.",
|
||||
hideBoard="Hide Board\nPartially or completely hides the board.",
|
||||
flipBoard="Flip Board\nFlips or rotates the board.",
|
||||
@@ -229,7 +229,7 @@ return {
|
||||
tele="Teleport\nForces 0 DAS and 0 ARR.",
|
||||
noRotation="No Rotation\nDisables piece rotation.",
|
||||
noMove="No Movement\nDisables sideways movement.",
|
||||
customSeq="Randomizer\nOverrides the block sequence randomizer.",
|
||||
customSeq="Randomizer\nOverrides the piece sequence randomizer.",
|
||||
pushSpeed="Garbage Speed\nOverride the rising speed of the garbage lines (in blocks per frame).",
|
||||
boneBlock="Bone Block\nPlay with bone blocks ([ ]).",
|
||||
},
|
||||
@@ -237,9 +237,9 @@ return {
|
||||
"Time:",
|
||||
"Key/Rot./Hold:",
|
||||
"Pieces:",
|
||||
"Row/Dig:",
|
||||
"Lines/Dig:",
|
||||
"Attack/DigAtk:",
|
||||
"Rise(Receive-Offset):",
|
||||
"Rise (Receive-Offset):",
|
||||
"Clears:",
|
||||
"Spins:",
|
||||
"B2B/B3B/PC/HPC:",
|
||||
@@ -252,7 +252,7 @@ return {
|
||||
"Play Count:",
|
||||
"Play Time:",
|
||||
"Key/Rot./Hold:",
|
||||
"Block/Row/Atk.:",
|
||||
"Pieces/Lines/Atk.:",
|
||||
"Receive/Offset/Rise:",
|
||||
"Dig/Dig Atk.:",
|
||||
"Eff./Dig Eff.:",
|
||||
@@ -509,7 +509,7 @@ C. Gamepad
|
||||
fineKill="100% Finesse",
|
||||
b2bKill="No B2B Breaks",
|
||||
lockout="Fail on Lock Out",
|
||||
easyFresh="Normal Lock Reset",
|
||||
easyFresh="Reset Lock Delay on move",
|
||||
deepDrop="Deep Drop",
|
||||
bone="Bone Blocks",
|
||||
|
||||
@@ -549,16 +549,16 @@ C. Gamepad
|
||||
sound="←Audio",
|
||||
game="Game→",
|
||||
|
||||
block="Draw Blocks",
|
||||
block="Draw Active Piece",
|
||||
smooth="Smooth Falling",
|
||||
upEdge="3D Block",
|
||||
upEdge="3D Blocks",
|
||||
bagLine="Bag Separators",
|
||||
|
||||
ghostType="Ghost Type",
|
||||
ghost="Ghosts",
|
||||
center="Rotation Centers",
|
||||
grid="Grid",
|
||||
lineNum="line No.",
|
||||
lineNum="Line Numbers",
|
||||
|
||||
lockFX="Lock FX",
|
||||
dropFX="Drop FX",
|
||||
@@ -585,12 +585,12 @@ C. Gamepad
|
||||
portrait="Portrait",
|
||||
msaa="MSAA level",
|
||||
|
||||
bg_on="Normal B.G.",
|
||||
bg_off="No B.G.",
|
||||
bg_custom="Custom B.G.",
|
||||
defaultBG="Default B.G.",
|
||||
bg_on="Normal BG",
|
||||
bg_off="No BG",
|
||||
bg_custom="Custom BG",
|
||||
defaultBG="Default BG",
|
||||
resetDbg="Reset to default",
|
||||
lockBG="Lock B.G.",
|
||||
lockBG="Lock BG",
|
||||
noTheme="Disable theme",
|
||||
|
||||
blockSatur="Block Saturation",
|
||||
@@ -622,8 +622,8 @@ C. Gamepad
|
||||
preview="Preview",
|
||||
|
||||
das="DAS",arr="ARR",
|
||||
dascut="DAS cut",
|
||||
dropcut="Auto-lock cut",
|
||||
dascut="DAS Cut",
|
||||
dropcut="Auto-lock Cut",
|
||||
sddas="Soft Drop DAS",sdarr="Soft Drop ARR",
|
||||
ihs="Initial Hold",
|
||||
irs="Initial Rotation",
|
||||
@@ -689,7 +689,7 @@ C. Gamepad
|
||||
|
||||
drop="Drop Delay",
|
||||
lock="Lock Delay",
|
||||
wait="Entry Delay",
|
||||
wait="Entry Delay (ARE)",
|
||||
fall="Line Delay",
|
||||
hang="Death Delay",
|
||||
hurry="ARE Interruption",
|
||||
@@ -722,13 +722,13 @@ C. Gamepad
|
||||
freshLimit="Lock Reset Limit",
|
||||
opponent="Opponent",
|
||||
life="Lives",
|
||||
pushSpeed="Push Speed",
|
||||
pushSpeed="G. Push Speed",
|
||||
garbageSpeed="Garbage Speed",
|
||||
|
||||
bufferLimit="Buffer Limit",
|
||||
bufferLimit="G. Buffer Limit",
|
||||
heightLimit="Height Limit",
|
||||
ospin="TRS O-Spin",
|
||||
fineKill="100% Finesse",
|
||||
fineKill="No Finesse Errors",
|
||||
b2bKill="No B2B Breaks",
|
||||
lockout="Fail on Lock Out",
|
||||
easyFresh="Normal Lock Reset",
|
||||
@@ -888,22 +888,22 @@ C. Gamepad
|
||||
['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", "100L but without I blocks"},
|
||||
['drought_l']= {"Drought+", "100L", "W. T. F."},
|
||||
['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Dig 10 garbage lines while only clearing Techrashes!"},
|
||||
['drought_n']= {"Drought", "100L", "100L but without I pieces"},
|
||||
['drought_l']= {"Drought+", "100L", "WTF"},
|
||||
['marathon_n']= {"Marathon", "NORMAL", "200-line marathon with increasing speed"},
|
||||
['marathon_h']= {"Marathon", "HARD", "200-line high-speed marathon"},
|
||||
['solo_e']= {"Battle", "EASY", "Defeat the AI!"},
|
||||
['solo_n']= {"Battle", "NORMAL", "Defeat the AI!"},
|
||||
['solo_h']= {"Battle", "HARD", "Defeat the AI!"},
|
||||
['solo_e']= {"Battle", "EASY", "Defeat the AI as fast as you can!"},
|
||||
['solo_n']= {"Battle", "NORMAL", "Defeat the AI as fast as you can!"},
|
||||
['solo_h']= {"Battle", "HARD", "Defeat the AI as fast as you can!"},
|
||||
['solo_l']= {"Battle", "LUNATIC", "Defeat the AI!"},
|
||||
['solo_u']= {"Battle", "ULTIMATE", "Defeat the AI!"},
|
||||
['techmino49_e']= {"Tech VS 49", "EASY", "49-player battle.\nThe last one standing wins"},
|
||||
['techmino49_h']= {"Tech VS 49", "HARD", "49-player battle.\nThe last one standing wins"},
|
||||
['techmino49_u']= {"Tech VS 49", "ULTIMATE", "49-player battle.\nThe last one standing wins"},
|
||||
['techmino99_e']= {"Tech VS 99", "EASY", "99-player battle.\nThe last one standing wins"},
|
||||
['techmino99_h']= {"Tech VS 99", "HARD", "99-player battle.\nThe last one standing wins"},
|
||||
['techmino99_u']= {"Tech VS 99", "ULTIMATE", "99-player battle.\nThe last one standing wins"},
|
||||
['techmino49_e']= {"Techmino 49", "EASY", "49-player battle.\nThe last one standing wins"},
|
||||
['techmino49_h']= {"Techmino 49", "HARD", "49-player battle.\nThe last one standing wins"},
|
||||
['techmino49_u']= {"Techmino 49", "ULTIMATE", "49-player battle.\nThe last one standing wins"},
|
||||
['techmino99_e']= {"Techmino 99", "EASY", "99-player battle.\nThe last one standing wins"},
|
||||
['techmino99_h']= {"Techmino 99", "HARD", "99-player battle.\nThe last one standing wins"},
|
||||
['techmino99_u']= {"Techmino 99", "ULTIMATE", "99-player battle.\nThe last one standing wins"},
|
||||
['round_e']= {"Turn-Based", "EASY", "Take turns to play against the AI!"},
|
||||
['round_n']= {"Turn-Based", "NORMAL", "Take turns to play against the AI!"},
|
||||
['round_h']= {"Turn-Based", "HARD", "Take turns to play against the AI!"},
|
||||
@@ -931,10 +931,10 @@ C. Gamepad
|
||||
['blind_l']= {"Invisible", "NO GHOST", "For professionals"},
|
||||
['blind_u']= {"Invisible", "NO FIELD", "Are you ready?"},
|
||||
['blind_wtf']= {"Invisible", "VOID", "You're not ready."},
|
||||
['classic_e']= {"Classic", "EASY", "A low-speed recreation game from the 80s"},
|
||||
['classic_h']= {"Classic", "HARD", "A medium-speed recreation game from the 80s"},
|
||||
['classic_l']= {"Classic", "LUNATIC", "A high-speed recreation game from the 80s"},
|
||||
['classic_u']= {"Classic", "ULTIMATE", "An extreme-speed recreation game from the 80s"},
|
||||
['classic_e']= {"Classic", "EASY", "A low-speed recreation of a game from the 80s"},
|
||||
['classic_h']= {"Classic", "HARD", "A medium-speed recreation of a game from the 80s"},
|
||||
['classic_l']= {"Classic", "LUNATIC", "A high-speed recreation of a game from the 80s"},
|
||||
['classic_u']= {"Classic", "ULTIMATE", "An extreme-speed recreation of a game from the 80s"},
|
||||
['survivor_e']= {"Survival", "EASY", "How long can you survive?"},
|
||||
['survivor_n']= {"Survival", "NORMAL", "How long can you survive?"},
|
||||
['survivor_h']= {"Survival", "HARD", "How long can you survive?"},
|
||||
@@ -946,36 +946,37 @@ C. Gamepad
|
||||
['defender_l']= {"Defender", "LUNATIC", "Practice your defending skills!"},
|
||||
['dig_h']= {"Driller", "HARD", "Digging practice!"},
|
||||
['dig_u']= {"Driller", "ULTIMATE", "Digging practice!"},
|
||||
['c4wtrain_n']= {"C4W Training", "NORMAL", "Infinite combos"},
|
||||
['c4wtrain_l']= {"C4W Training", "LUNATIC", "Infinite combos"},
|
||||
['pctrain_n']= {"PC Training", "NORMAL", "Perfect Clear practice"},
|
||||
['pctrain_l']= {"PC Training", "LUNATIC", "A harder Perfect Clear practice"},
|
||||
['pc_n']= {"PC Challenge", "NORMAL", "Get PCs within 100 lines!"},
|
||||
['pc_h']= {"PC Challenge", "HARD", "Get PCs within 100 lines!"},
|
||||
['pc_l']= {"PC Challenge", "LUNATIC", "Get PCs within 100 lines!"},
|
||||
['pc_inf']= {"Inf. PC Challenge", "", "Get PCs as much as you can"},
|
||||
['tech_n']= {"Tech B2B", "NORMAL", "Try to keep the\nBack-to-Back chain!"},
|
||||
['tech_n_plus']= {"Tech B2B", "NORMAL+", "Spins & PCs only"},
|
||||
['tech_h']= {"Tech B2B", "HARD", "Try to keep the\nBack-to-Back chain!"},
|
||||
['tech_h_plus']= {"Tech B2B", "HARD+", "Spins & PCs only"},
|
||||
['tech_l']= {"Tech B2B", "LUNATIC", "Try to keep the\nBack-to-Back chain!"},
|
||||
['tech_l_plus']= {"Tech B2B", "LUNATIC+", "Spins & PCs only"},
|
||||
['tech_finesse']= {"Tech Finesse", "", "No finesse errors!"},
|
||||
['tech_finesse_f']= {"Tech Finesse", "PLUS", "No normal clears and finesse errors!"},
|
||||
['tsd_e']= {"TSD Challenge", "EASY", "T-Spin Doubles only!"},
|
||||
['tsd_h']= {"TSD Challenge", "HARD", "T-Spin Doubles only!"},
|
||||
['tsd_u']= {"TSD Challenge", "ULTIMATE", "T-Spin Doubles only!"},
|
||||
['backfire_n']= {"Backfire", "NORMAL", "Hold back the backfiring garbage lines"},
|
||||
['backfire_h']= {"Backfire", "HARD", "Hold back the backfiring garbage lines"},
|
||||
['backfire_l']= {"Backfire", "LUNATIC", "Hold back the backfiring garbage lines"},
|
||||
['backfire_u']= {"Backfire", "ULTIMATE", "Hold back the backfiring garbage lines"},
|
||||
['sprintAtk']= {"Sprint", "100 Attack", "Send 100 lines!"},
|
||||
['sprintEff']= {"Sprint", "Efficiency", "Send more attack in 40 lines!"},
|
||||
['zen']= {'Zen', "200", "A 200-line run with no time limit"},
|
||||
['c4wtrain_n']= {"C4W Training", "NORMAL", "Clear 100 lines!"},
|
||||
['c4wtrain_l']= {"C4W Training", "LUNATIC", "Perform as many combos as you can within 100 lines!"},
|
||||
['pctrain_n']= {"PC Training", "NORMAL", "Practice filling 3×4 boxes, PCO shapes and 4×4 boxes!"},
|
||||
['pctrain_l']= {"PC Training", "LUNATIC", "Practice filling 5×4 and 6×4 boxes!"},
|
||||
['pc_n']= {"PC Challenge", "NORMAL", "Get as many PCs as you can within 100 lines!"},
|
||||
['pc_h']= {"PC Challenge", "HARD", "Get as many PCs as you can within 100 lines!"},
|
||||
['pc_l']= {"PC Challenge", "LUNATIC", "Get as many PCs as you can within 100 lines!"},
|
||||
['pc_inf']= {"PC Challenge", "INFINITE", "Get as many PCs in a row as you can!"},
|
||||
['tech_n']= {"Tech", "NORMAL", "Send 100 lines as fast as you can while keeping the Back-to-Back chain!"},
|
||||
['tech_n_plus']= {"Tech", "NORMAL+", "Send 100 lines as fast as you can using only spins and PCs!"},
|
||||
['tech_h']= {"Tech", "HARD", "Send 100 lines as fast as you can while keeping the Back-to-Back chain!"},
|
||||
['tech_h_plus']= {"Tech", "HARD+", "Send 100 lines as fast as you can using only spins and PCs!"},
|
||||
['tech_l']= {"Tech", "LUNATIC", "Send 100 lines as fast as you can while keeping the Back-to-Back chain!"},
|
||||
['tech_l_plus']= {"Tech", "LUNATIC+", "Send 100 lines as fast as you can using only spins and PCs!"},
|
||||
['tech_finesse']= {"Tech Finesse", "", "Send 100 lines as fast as you can while keeping perfect finesse!"},
|
||||
['tech_finesse_f']= {"Tech Finesse", "PLUS", "Send 100 lines as fast as you can while keeping perfect finesse and not performing normal clears!"},
|
||||
['tsd_e']= {"TSD Challenge", "EASY", "Get as many T-Spin Doubles in a row as you can!"},
|
||||
['tsd_h']= {"TSD Challenge", "HARD", "Get as many T-Spin Doubles in a row as you can!"},
|
||||
['tsd_u']= {"TSD Challenge", "ULTIMATE", "Get as many T-Spin Doubles in a row as you can!"},
|
||||
['backfire_n']= {"Backfire", "NORMAL", "Send 100 lines as fast as you can while attacking yourself!"},
|
||||
['backfire_h']= {"Backfire", "HARD", "Send 100 lines as fast as you can while attacking yourself!"},
|
||||
['backfire_l']= {"Backfire", "LUNATIC", "Send 100 lines as fast as you can while attacking yourself!"},
|
||||
['backfire_u']= {"Backfire", "ULTIMATE", "Send 100 lines as fast as you can while attacking yourself!"},
|
||||
['sprintAtk']= {"Sprint", "100 ATTACK", "Send 100 lines as fast as you can!"},
|
||||
['sprintEff']= {"Efficiency", "40L", "Send more attack in 40 lines!"},
|
||||
['zen']= {'Zen', "200L", "A 200-line score attack with no time limit"},
|
||||
['ultra']= {'Ultra', "EXTRA", "A 2-minute score attack"},
|
||||
['infinite']= {"Infinite", "", "Just a sandbox"},
|
||||
['infinite_dig']= {"Infinite: Dig", "", "Dig-diggin'-dug"},
|
||||
['marathon_inf']= {"Marathon", "INFINITE", "Infinite marathon."},
|
||||
['infinite']= {"Infinite", "", "Just a sandbox"},
|
||||
['infinite_dig']= {"Dig", "INFINITE", "Dig-diggin'-dug"},
|
||||
['marathon_inf']= {"Marathon", "INFINITE", "Infinite marathon."},
|
||||
['spinren']= {"Spin Combo", "EFFICIENCY", "Spike in a blink"},
|
||||
|
||||
['custom_clear']= {"Custom", "NORMAL"},
|
||||
['custom_puzzle']= {"Custom", "PUZZLE"},
|
||||
@@ -995,7 +996,7 @@ C. Gamepad
|
||||
"1 next 1 hold!",
|
||||
"1 next 6 hold!",
|
||||
"20G is actually a brand new game rule!",
|
||||
"40-line Sprint WR: 14.188s by Lurny",
|
||||
"40-line Sprint WR: 13.650s by WestL",
|
||||
"6 next 1 hold!",
|
||||
"6 next 6 hold?!",
|
||||
"A choke a day keeps record away",
|
||||
@@ -1023,7 +1024,7 @@ C. Gamepad
|
||||
"git commit",
|
||||
"git push -f",
|
||||
"Got a suggestion? Post it on our Discord server!",
|
||||
"Have you noticed what a \"rotation\" does do to a block?",
|
||||
"Have you noticed what a \"rotation\" does do to a piece?",
|
||||
"Headphones recommended for a better experience.",
|
||||
"Hello world!",
|
||||
"I3 and L3 are the only two possible triminoes.",
|
||||
|
||||
@@ -910,7 +910,7 @@ return {
|
||||
['defender_l']= {"Defensor", "Lunático", "¡Practica la defensa!"},
|
||||
['dig_h']= {"Downstack", "Difícil", "¡Practica el downstackeo!"},
|
||||
['dig_u']= {"Downstack", "Supremo", "¡Practica el downstackeo!"},
|
||||
['c4wtrain_n']= {"Entrenar C4W", "Normal", "Combos infinitos."},
|
||||
['c4wtrain_n']= {"Entrenar C4W", "Normal", "¡Limpia 100 líneas!"},
|
||||
['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 complejo para practicar Perfect Clears."},
|
||||
@@ -941,6 +941,7 @@ return {
|
||||
['infinite']= {"Infinito", "", "Modo Sandbox."},
|
||||
['infinite_dig']= {"Infinito: Queso", "", "Limpia, limpia, más limpia que tú."},
|
||||
['marathon_inf']= {"Maratón", "Infinito", "Maratón infinita."},
|
||||
-- ['spinren']= {"Spin Combo", "EFFICIENCY", "Spike in a blink"},
|
||||
|
||||
['custom_clear']= {"Personalizado", "Normal"},
|
||||
['custom_puzzle']= {"Personalizado", "Puzzle"},
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user