Compare commits
33 Commits
pre0.17.1-
...
pre0.17.2-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
856c490a2b | ||
|
|
5e9dcc27aa | ||
|
|
3f129a9585 | ||
|
|
e682ff1de5 | ||
|
|
2c064d5809 | ||
|
|
e0573382e8 | ||
|
|
5a514ce495 | ||
|
|
ba4fb00c85 | ||
|
|
ab02d2063f | ||
|
|
a6c87d3a1a | ||
|
|
f15541db4a | ||
|
|
dadd09d25a | ||
|
|
a7dea4dafe | ||
|
|
34ac5eed93 | ||
|
|
89134d4f07 | ||
|
|
58d068b776 | ||
|
|
dacefb2b01 | ||
|
|
efe4f5a210 | ||
|
|
000188ac86 | ||
|
|
de6814bd34 | ||
|
|
fac020db8c | ||
|
|
d4ec3eefbb | ||
|
|
d43e58f450 | ||
|
|
6e9bf97d89 | ||
|
|
e41aefd17c | ||
|
|
d96c5ca0fa | ||
|
|
4953abbb8c | ||
|
|
637e1a7602 | ||
|
|
55cc3c48be | ||
|
|
d7d9e60b1e | ||
|
|
61218bb942 | ||
|
|
d24888cff5 | ||
|
|
79cf1cf238 |
4
.gitmodules
vendored
4
.gitmodules
vendored
@@ -1,3 +1,3 @@
|
||||
[submodule "Zframework"]
|
||||
path = Zframework
|
||||
url = git@github.com:26F-Studio/Zframework.git
|
||||
path = Zframework
|
||||
url = git@github.com:26F-Studio/Zframework.git
|
||||
|
||||
Submodule Zframework updated: f1deed1a71...deaa9ff03b
3
main.lua
3
main.lua
@@ -159,7 +159,7 @@ do--Z.setCursor
|
||||
_=BLOCK_COLORS[SETTING.skin[R]]
|
||||
gc_setColor(_[1],_[2],_[3],min(abs(1-time%2),.3))
|
||||
_=DSCP[R][0]
|
||||
gc_draw(TEXTURE.miniBlock[R],x,y,time%3.14159265359*4,16,16,_[2]+.5,#BLOCKS[R][0]-_[1]-.5)
|
||||
gc_draw(TEXTURE.miniBlock[R],x,y,time%3.14159265359*4,8,8,2*_[2]+1,2*(#BLOCKS[R][0]-_[1])-1)
|
||||
gc_setColor(1,1,1)
|
||||
gc_draw(ms.isDown(1)and holdImg or normImg,x,y,nil,nil,nil,8,8)
|
||||
end
|
||||
@@ -683,3 +683,4 @@ if TABLE.find(arg,'--test')then
|
||||
love.event.quit(1)
|
||||
end)
|
||||
end
|
||||
WS.switchHost('101.43.110.22','10026','/tech/socket/v1')
|
||||
|
||||
BIN
media/effect/chiptune/achievement.ogg
Normal file
BIN
media/effect/chiptune/achievement.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -20,7 +20,7 @@ function back.update()
|
||||
color=BLOCK_COLORS[SETTING.skin[r]],
|
||||
x=SCR.w*rnd(),
|
||||
y=SCR.h*-.05,
|
||||
k=SCR.rad/100,
|
||||
k=SCR.rad/200,
|
||||
ang=rnd()*6.2832,
|
||||
vy=.5+rnd()*.4,
|
||||
vx=rnd()*.4-.2,
|
||||
|
||||
@@ -47,7 +47,7 @@ function back.draw()
|
||||
local M=mino[i]
|
||||
local c=M.color
|
||||
gc_setColor(c[1],c[2],c[3],.2)
|
||||
gc_draw(M.block,M.d*cos(M.ang),M.d*sin(M.ang),M.rotate,(18*M.d/SCR.rad)^1.6,nil,M.block:getWidth()/2,M.block:getHeight()/2)
|
||||
gc_draw(M.block,M.d*cos(M.ang),M.d*sin(M.ang),M.rotate,(12*M.d/SCR.rad)^1.6,nil,M.block:getWidth()/2,M.block:getHeight()/2)
|
||||
end
|
||||
gc_translate(-SCR.cx,-SCR.cy)
|
||||
end
|
||||
|
||||
@@ -6,7 +6,6 @@ local back={}
|
||||
local t
|
||||
local colorLib=BLOCK_COLORS
|
||||
local blocks=BLOCKS
|
||||
local scs=RSlist.TRS.centerPos
|
||||
function back.init()
|
||||
t=rnd()*2600
|
||||
end
|
||||
@@ -21,6 +20,6 @@ function back.draw()
|
||||
end
|
||||
local _=colorLib[SETTING.skin[R]]
|
||||
gc.setColor(_[1],_[2],_[3],.12)
|
||||
gc.draw(TEXTURE.miniBlock[R],SCR.cx,SCR.cy,t%3.1416*6,400*SCR.k,nil,scs[R][0][2]+.5,#blocks[R][0]-scs[R][0][1]-.5)
|
||||
gc.draw(TEXTURE.miniBlock[R],SCR.cx,SCR.cy,t%3.1416*6,200*SCR.k,nil,2*DSCP[R][0][2]+1,2*(#blocks[R][0]-DSCP[R][0][1])-1)
|
||||
end
|
||||
return back
|
||||
|
||||
@@ -38,7 +38,7 @@ return{
|
||||
local D=P.modeData
|
||||
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
|
||||
if P.stat.row>=D.target then
|
||||
if D.target==110 then
|
||||
if D.target==100 then
|
||||
P.gameEnv.drop,P.gameEnv.lock=2,2
|
||||
P.gameEnv.sddas,P.gameEnv.sdarr=2,2
|
||||
SFX.play('warn_1')
|
||||
|
||||
296
parts/eventsets/master_g.lua
Normal file
296
parts/eventsets/master_g.lua
Normal file
@@ -0,0 +1,296 @@
|
||||
local gc=love.graphics
|
||||
local regretDelay=-1
|
||||
local int_grade=0
|
||||
local grade_points=0
|
||||
local int_grade_boosts={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 gradeList={
|
||||
"9","8","7","6","5","4","3","2","1",
|
||||
"S1","S2","S3","S4","S5","S6","S7","S8","S9",
|
||||
"m1","m2","m3","m4","m5","m6","m7","m8","m9",
|
||||
"M","MK","MV","MO","MM-","MM","MM+","GM-","GM","GM+","TM-","TM","TM+"
|
||||
}
|
||||
local spd_lvl=0
|
||||
local cools=0
|
||||
local regrets=0
|
||||
local prevSectTime=0
|
||||
local isInRoll=false
|
||||
local rollGrades=0
|
||||
local cool_time={3120,3120,2940,2700,2700,2520,2520,2280,2280,0}
|
||||
local reg_time= {5400,4500,4500,4080,3600,3600,3000,3000,3000,3000}
|
||||
local prevDrop70=false --determines if previous piece has level less than __70
|
||||
local nextSpeedUp=false --determines if the next section speed should be boosted by 100
|
||||
local isInRollTrans=false
|
||||
local function getGrav(l)
|
||||
return
|
||||
l<30 and 64 or
|
||||
l<35 and 43 or
|
||||
l<40 and 32 or
|
||||
l<50 and 26 or
|
||||
l<60 and 21 or
|
||||
l<70 and 16 or
|
||||
l<80 and 8 or
|
||||
l<90 and 6 or
|
||||
l<120 and 4 or
|
||||
l<160 and 3 or
|
||||
l<200 and 2 or
|
||||
l<220 and 64 or
|
||||
l<230 and 8 or
|
||||
l<233 and 4 or
|
||||
l<236 and 3 or
|
||||
l<243 and 2 or
|
||||
l<300 and 1 or
|
||||
l<360 and 0.5 or
|
||||
l<450 and 0.25 or
|
||||
0
|
||||
end
|
||||
local function getLock(l)
|
||||
return
|
||||
l<900 and 30 or
|
||||
l<1100 and 19 or
|
||||
15
|
||||
end
|
||||
local function getWait(l)
|
||||
return
|
||||
l<700 and 23 or
|
||||
l<800 and 16 or
|
||||
l<1000 and 12 or
|
||||
l<1100 and 7 or
|
||||
6
|
||||
end
|
||||
local function getFall(l)
|
||||
return
|
||||
l<500 and 25 or
|
||||
l<600 and 18 or
|
||||
l<700 and 12 or
|
||||
l<800 and 8 or
|
||||
4
|
||||
end
|
||||
local function getDas(l)
|
||||
return
|
||||
l<500 and 10 or
|
||||
l<900 and 8 or
|
||||
6
|
||||
end
|
||||
local function getGrade()
|
||||
if int_grade==nil then int_grade=0 end
|
||||
if rollGrades==nil then rollGrades=0 end
|
||||
return gradeList[math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList)]
|
||||
end
|
||||
local function addGrade(row, cmb, lvl) -- IGS = internal grade system
|
||||
if row<1 then return end
|
||||
local pts=0
|
||||
local cmb_mult=1.0
|
||||
local lvl_mult=math.floor(lvl/250)+1
|
||||
|
||||
if row==1 then
|
||||
pts=int_grade<5 and 10 or int_grade<10 and 5 or 2
|
||||
cmb_mult=1.0
|
||||
elseif row==2 then
|
||||
pts=int_grade<3 and 20 or int_grade<6 and 15 or int_grade<10 and 10 or 12
|
||||
cmb_mult=cmb==1 and 1 or cmb<4 and 1.2 or cmb<8 and 1.4 or cmb<10 and 1.5 or 2.0
|
||||
elseif row==3 then
|
||||
pts=int_grade==0 and 40 or int_grade<4 and 30 or int_grade<7 and 20 or int_grade<10 and 15 or 13
|
||||
cmb_mult=cmb==1 and 1 or cmb<10 and 1+(cmb+2)*0.1 or 2
|
||||
else
|
||||
pts=int_grade==0 and 50 or int_grade<5 and 40 or 30
|
||||
cmb_mult=cmb==1 and 1 or cmb==2 and 1.5 or cmb<6 and (0.2*cmb)+1.2 or cmb<10 and (0.1*cmb)+1.7 or 3
|
||||
end
|
||||
|
||||
grade_points=grade_points+(pts*cmb_mult*lvl_mult)
|
||||
if grade_points>=100 then
|
||||
grade_points=0
|
||||
int_grade=int_grade+1
|
||||
end
|
||||
end
|
||||
|
||||
return{
|
||||
drop=64,
|
||||
lock=30,
|
||||
wait=23,
|
||||
fall=25,
|
||||
noTele=true,
|
||||
das=16,arr=1,
|
||||
minsdarr=1,
|
||||
ihs=true,irs=true,ims=false,
|
||||
RS='SRS_plus',
|
||||
mesDisp=function(P)
|
||||
gc.setColor(1,1,1,1)
|
||||
setFont(45)
|
||||
mText(TEXTOBJ.grade,63,180)
|
||||
setFont(60)
|
||||
mStr(getGrade(),63,110)
|
||||
if isInRoll then
|
||||
setFont(20)
|
||||
mStr(("%.1f"):format(rollGrades),63,208)
|
||||
gc.setLineWidth(2)
|
||||
gc.setColor(.98,.98,.98,.8)
|
||||
gc.rectangle('line',0,240,126,80,4)
|
||||
gc.setColor(.98,.98,.98,.4)
|
||||
gc.rectangle('fill',0+2,240+2,126-4,80-4,2)
|
||||
setFont(45)
|
||||
local t=(P.stat.frame-prevSectTime)/60
|
||||
local T=("%.1f"):format(60-t)
|
||||
gc.setColor(COLOR.dH)
|
||||
mStr(T,65,250)
|
||||
t=t/60
|
||||
gc.setColor(1.7*t,2.3-2*t,.3)
|
||||
mStr(T,63,248)
|
||||
else
|
||||
setFont(20)
|
||||
mStr(grade_points,63,208)
|
||||
setFont(45)
|
||||
PLY.draw.drawProgress(P.modeData.pt,P.modeData.target)
|
||||
end
|
||||
end,
|
||||
hook_drop=function(P)
|
||||
local D=P.modeData
|
||||
|
||||
local c=#P.clearedRow
|
||||
|
||||
if cools>8 and isInRoll then
|
||||
rollGrades=rollGrades+(c==4 and 1 or 0.1*c)
|
||||
return
|
||||
elseif isInRoll then
|
||||
rollGrades=rollGrades+(c==4 and 0.26 or 0.04*c)
|
||||
return
|
||||
end
|
||||
|
||||
if c==0 and D.pt+1>=D.target then return end
|
||||
local s=c<3 and c+1 or c==3 and 5 or 7
|
||||
if P.combo>7 then s=s+2
|
||||
elseif P.combo>3 then s=s+1
|
||||
end
|
||||
|
||||
addGrade(c,P.combo,D.pt)
|
||||
|
||||
D.pt=D.pt+s
|
||||
spd_lvl=spd_lvl+1
|
||||
|
||||
P.gameEnv.drop=getGrav(spd_lvl)
|
||||
|
||||
if(P.gameEnv.drop==0) then
|
||||
P:set20G(true)
|
||||
end
|
||||
|
||||
if D.pt%100>70 and not prevDrop70 then
|
||||
if P.stat.frame-prevSectTime < cool_time[math.ceil(D.pt/100)] then
|
||||
cools=cools+1
|
||||
P:_showText("COOL!",0,-120,80,'fly',.8)
|
||||
nextSpeedUp=true
|
||||
end
|
||||
prevDrop70=true
|
||||
end
|
||||
|
||||
if D.pt+1==D.target then
|
||||
SFX.play('warn_1')
|
||||
elseif D.pt>=D.target then--Level up!
|
||||
spd_lvl=nextSpeedUp and spd_lvl+100 or spd_lvl
|
||||
nextSpeedUp=false
|
||||
prevDrop70=false
|
||||
s=D.target/100
|
||||
local E=P.gameEnv
|
||||
E.lock=getLock(spd_lvl)
|
||||
E.wait=getWait(spd_lvl)
|
||||
E.fall=getFall(spd_lvl)
|
||||
E.das=getDas(spd_lvl)
|
||||
|
||||
if P.stat.frame-prevSectTime > reg_time[math.ceil(s)] then
|
||||
regrets=regrets+1
|
||||
regretDelay=60
|
||||
end
|
||||
prevSectTime=P.stat.frame
|
||||
if s==2 then
|
||||
BG.set('rainbow')
|
||||
elseif s==4 then
|
||||
BG.set('rainbow2')
|
||||
elseif s==5 then
|
||||
if P.stat.frame>420*60 then
|
||||
D.pt=500
|
||||
P:win('finish')
|
||||
return
|
||||
else
|
||||
BG.set('glow')
|
||||
BGM.play('secret7th remix')
|
||||
end
|
||||
elseif s==6 then
|
||||
BG.set('lightning')
|
||||
elseif s>9 then
|
||||
if cools>8 then
|
||||
E.lockFX=E.lockFX>1 and 1 or E.lockFX
|
||||
P:setInvisible(5)
|
||||
else
|
||||
P:setInvisible(300)
|
||||
end
|
||||
D.pt=999
|
||||
P.waiting=240
|
||||
BGM.stop()
|
||||
isInRollTrans=true
|
||||
return
|
||||
end
|
||||
D.target=D.target<900 and D.target+100 or 999
|
||||
P:stageComplete(s)
|
||||
SFX.play('reach')
|
||||
end
|
||||
end,
|
||||
task=function(P)
|
||||
regretDelay=-1
|
||||
P.modeData.pt=0
|
||||
P.modeData.target=100
|
||||
int_grade=0
|
||||
grade_points=0
|
||||
rollGrades=0
|
||||
spd_lvl=0
|
||||
cools=0
|
||||
regrets=0
|
||||
prevSectTime=0
|
||||
isInRoll=false
|
||||
isInRollTrans=false
|
||||
prevDrop70=false
|
||||
nextSpeedUp=false
|
||||
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
|
||||
YIELD()
|
||||
P.modeData.grade=getGrade()
|
||||
P.modeData.gradePts=math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList)
|
||||
if regretDelay>-1 then
|
||||
regretDelay=regretDelay-1
|
||||
if regretDelay==-1 then P:_showText("REGRET!!",0,-120,80,'beat',.8) end
|
||||
end
|
||||
if isInRollTrans then
|
||||
if P.waiting>=220 then
|
||||
--Make field invisible
|
||||
for y=1,#P.field do for x=1,10 do
|
||||
P.visTime[y][x]=P.waiting-220
|
||||
end end
|
||||
elseif P.waiting==190 then
|
||||
TABLE.cut(P.field)
|
||||
TABLE.cut(P.visTime)
|
||||
elseif P.waiting==180 then
|
||||
playReadySFX(3,3)
|
||||
elseif P.waiting==120 then
|
||||
playReadySFX(2,1)
|
||||
elseif P.waiting==60 then
|
||||
playReadySFX(1,1)
|
||||
elseif P.waiting==1 then
|
||||
playReadySFX(0,1)
|
||||
isInRollTrans=false
|
||||
isInRoll=true
|
||||
BGM.play('hope')
|
||||
BG.set('blockspace')
|
||||
prevSectTime=P.stat.frame
|
||||
end
|
||||
end
|
||||
if P.waiting<=0 and grade_points>0 and not isInRoll then
|
||||
decayTimer=decayTimer+1
|
||||
if decayTimer>=decayRate[math.min(int_grade+1,#decayRate)] then
|
||||
decayTimer=0
|
||||
grade_points=grade_points-1
|
||||
end
|
||||
elseif isInRoll and P.stat.frame>=prevSectTime+3600 then
|
||||
rollGrades=rollGrades+(cools>8 and 1.6 or 0.5)
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
BIN
parts/fonts/japan.ttf
Normal file
BIN
parts/fonts/japan.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
1364
parts/language/dict_ja.lua
Normal file
1364
parts/language/dict_ja.lua
Normal file
File diff suppressed because it is too large
Load Diff
@@ -116,9 +116,9 @@ return{
|
||||
noPassword="Please enter your password",
|
||||
diffPassword="Passwords don't match",
|
||||
registerRequestSent="A sign up request has been sent.",
|
||||
registerSuccessed="Sign up successful!",
|
||||
loginSuccessed="You are now logged in!",
|
||||
accessSuccessed="Access granted",
|
||||
registerOK="Sign up successful!",
|
||||
loginOK="You are now logged in!",
|
||||
accessOK="Access granted",
|
||||
|
||||
wsConnecting="Websocket connecting…",
|
||||
wsFailed="WebSocket connection failed",
|
||||
@@ -143,7 +143,6 @@ return{
|
||||
customBGloadFailed="Unsupport image format for custom background",
|
||||
|
||||
errorMsg="Techmino ran into a problem and needs to restart.\nYou can send the error log to the developers.",
|
||||
tryAnotherBuild="[Invalid UTF-8] If you are on Windows, try downloading Techmino-win32 or Techmino-win64 (different from what you are using now).",
|
||||
|
||||
modInstruction="Choose your modifiers!\nMods allow you to change the game,\nbut they may also crash the game.\nScores will not be saved when using mods.",
|
||||
modInfo={
|
||||
@@ -276,6 +275,8 @@ return{
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"NOT_A_ROBOT",
|
||||
"sakurw",
|
||||
"Airun",
|
||||
"幽灵3383",
|
||||
"",
|
||||
"Performances",
|
||||
"Electric283",
|
||||
|
||||
@@ -105,9 +105,9 @@ return{
|
||||
noPassword="Por favor ingresa una contraseña",
|
||||
diffPassword="Las contraseñas no coinciden",
|
||||
registerRequestSent="Petición de registro enviada con éxito",
|
||||
registerSuccessed="¡Registro exitoso!",
|
||||
loginSuccessed="¡Ingreso con éxito!",
|
||||
accessSuccessed="¡Autorizado exitoso!",
|
||||
registerOK="¡Registro exitoso!",
|
||||
loginOK="¡Ingreso con éxito!",
|
||||
accessOK="¡Autorizado exitoso!",
|
||||
|
||||
wsConnecting="Websocket Conectando",
|
||||
wsFailed="WebSocket conexión fallida",
|
||||
|
||||
@@ -106,9 +106,9 @@ return{
|
||||
noPassword="Entrez votre mot de passe",
|
||||
diffPassword="Les mots de passe ne se correspondent pas",
|
||||
-- registerRequestSent="Registration request sent",
|
||||
registerSuccessed="Enregistré avec succès !",
|
||||
loginSuccessed="Connecté avec succès !",
|
||||
accessSuccessed="Autorisé avec succès !",
|
||||
registerOK="Enregistré avec succès !",
|
||||
loginOK="Connecté avec succès !",
|
||||
accessOK="Autorisé avec succès !",
|
||||
|
||||
-- wsConnecting="Websocket Connecting",
|
||||
wsFailed="WebSocket connection échouée",
|
||||
@@ -242,6 +242,8 @@ return{
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"NOT_A_ROBOT",
|
||||
"sakurw",
|
||||
"Airun",
|
||||
"幽灵3383",
|
||||
"",
|
||||
"Performance",
|
||||
"Electric283",
|
||||
|
||||
@@ -117,9 +117,9 @@ return{
|
||||
noPassword="Silahkan masukki kata sandi Anda",
|
||||
diffPassword="Kata sandi tidak sama",
|
||||
registerRequestSent="Permintaan daftar telah terkirim.",
|
||||
registerSuccessed="Pendaftaran sukses!",
|
||||
loginSuccessed="Anda sekarang tergabung!",
|
||||
accessSuccessed="Akses diberikan",
|
||||
registerOK="Pendaftaran sukses!",
|
||||
loginOK="Anda sekarang tergabung!",
|
||||
accessOK="Akses diberikan",
|
||||
|
||||
wsConnecting="Menghubungkan websocket…",
|
||||
wsFailed="Koneksi websocket gagal",
|
||||
@@ -277,6 +277,8 @@ return{
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"NOT_A_ROBOT",
|
||||
"sakurw",
|
||||
"Airun",
|
||||
"幽灵3383",
|
||||
"",
|
||||
"Pertunjukan",
|
||||
"Electric283",
|
||||
|
||||
@@ -2,22 +2,22 @@ local C=COLOR
|
||||
return{
|
||||
fallback='en',
|
||||
loadText={
|
||||
loadSFX="SEをロード中",
|
||||
loadSFX="効果音をロード中",
|
||||
loadSample="楽器のサンプル音をロード中",
|
||||
loadVoice="ボイスパックをロード中",
|
||||
loadFont="フォントをロード中",
|
||||
loadModeIcon="モードアイコンをロード中",
|
||||
loadMode="モードをロード中",
|
||||
loadOther="他の重要なアセットをロード中",
|
||||
loadOther="他の重要なアセット等をロード中",
|
||||
finish="好きなキーを押してスタート!",
|
||||
},
|
||||
sureQuit="終了するにはもう一度押してください",
|
||||
sureReset="リセットするにはもう一度押してください",
|
||||
sureDelete="削除するにはもう一度押してください",
|
||||
sureQuit="終了するにはもう一度押してください!",
|
||||
sureReset="リセットするにはもう一度押してください!",
|
||||
sureDelete="削除するにはもう一度押してください!",
|
||||
newDay="新しい1日、新しい始まりです!",
|
||||
playedLong="長時間プレイしています、適度に休憩を!",
|
||||
playedLong="長時間プレイしています、適度に休憩をして!",
|
||||
playedTooMuch="かなり長くプレイしています! Techminoは楽しいですが、休憩を忘れずに!",
|
||||
settingWarn="注意: 通常ではない設定に変更しました!",
|
||||
settingWarn="使用頻度の低い設定を変更しています。注意してください。",
|
||||
|
||||
atkModeName={"ランダム","バッジ狙い","トドメ撃ち","カウンター"},
|
||||
royale_remain="残り $1 人",
|
||||
@@ -36,49 +36,49 @@ return{
|
||||
awesome="すごい!",
|
||||
almost="あと少し!",
|
||||
continue="がんばれ!",
|
||||
maxspeed="再高速度!",
|
||||
speedup="スピードアップ!",
|
||||
maxspeed="最高速度!",
|
||||
speedup="スピードアップ!",
|
||||
missionFailed="失敗…",
|
||||
|
||||
speedLV="Speed Level",
|
||||
piece="Piece",line="Lines",atk="火力",eff="効率",
|
||||
speedLV="レベル",
|
||||
piece="ミノ数",line="ライン数",atk="火力",eff="効率",
|
||||
rpm="RPM",tsd="TSD",
|
||||
grade="Grade",techrash="Techrash",
|
||||
wave="Wave",nextWave="Next",
|
||||
combo="REN",maxcmb="Max REN",
|
||||
pc="Perfect Clear",ko="KOs",
|
||||
|
||||
win="勝利!",
|
||||
lose="負け…",
|
||||
win="Win!",
|
||||
lose="Lose",
|
||||
|
||||
finish="終了",
|
||||
gamewin="君の勝ち!",
|
||||
gameover="ゲームオーバー…",
|
||||
finish="Finished",
|
||||
gamewin="You Won",
|
||||
gameover="Game Over",
|
||||
|
||||
pause="ポーズ",
|
||||
pauseCount="ポーズした回数",
|
||||
finesse_ap="オールパーフェクト",
|
||||
finesse_fc="フルコンボ",
|
||||
finesse_ap="All Perfect",
|
||||
finesse_fc="Full Combo",
|
||||
|
||||
page="ページ:",
|
||||
|
||||
cc_fixed="CCは固定されたミノ順に非対応です!",
|
||||
cc_swap="CCはホールドモードがSwapの時には非対応です!",
|
||||
ai_prebag="AIは通常のテトロミノではない物やカスタマイズされたミノ順には非対応です!",
|
||||
cc_swap="CCはホールドモードがSwapの時に非対応です!",
|
||||
ai_prebag="AIは通常のテトロミノではない物やカスタマイズされたミノ順に非対応です!",
|
||||
ai_mission="AIはカスタムミッションに非対応です!",
|
||||
switchSpawnSFX="ブロック出現時のSFXをONにしてください!",
|
||||
needRestart="すべての変更を適用するために再起動してください!",
|
||||
switchSpawnSFX="ブロック出現時の効果音をONにしてください!",
|
||||
needRestart="すべての変更を適用する為に再起動してください!",
|
||||
|
||||
loadError_errorMode="'$1'の読み込みに失敗: ロードモード'$2'が存在しません",
|
||||
loadError_read="'$1'の読み込みに失敗: 読み込みに失敗しました",
|
||||
loadError_noFile="'$1'の読み込みに失敗: ファイルが存在しません",
|
||||
loadError_other="'$1'の読み込みに失敗: $2",
|
||||
loadError_unknown="'$1'の読み込みに失敗: 原因不明",
|
||||
loadError_unknown="'$1'の読み込みに失敗: 原因不明です",
|
||||
|
||||
saveError_duplicate="'$1'の保存に失敗: 既に同じ名前のファイルがあります",
|
||||
saveError_encode="'$1'の保存に失敗: エンコードエラー",
|
||||
saveError_other="'$1'の保存に失敗: $2",
|
||||
saveError_unknown="'$1'の保存に失敗: 原因不明",
|
||||
saveError_unknown="'$1'の保存に失敗: 原因不明です",
|
||||
|
||||
copyDone="コピーしました!",
|
||||
saveDone="データを保存しました!",
|
||||
@@ -96,8 +96,8 @@ return{
|
||||
|
||||
noScore="スコア無し",
|
||||
modeLocked="ロック",
|
||||
unlockHint="Rank B以上を取得すると解放されるよ!",
|
||||
highScore="ハイスコア",
|
||||
unlockHint="ランクB以上を取得すると解放されるよ!",
|
||||
highScore="最高得点",
|
||||
newRecord="新記録!",
|
||||
|
||||
replayBroken="リプレイが読み込めませんでした",
|
||||
@@ -105,10 +105,10 @@ return{
|
||||
dictNote="==TetroDictionaryからコピーしました==",
|
||||
|
||||
getNoticeFail="お知らせ情報を取得できませんでした",
|
||||
oldVersion="Version $1が取得できます!",
|
||||
needUpdate="最新のVersionを取得してください!",
|
||||
versionNotMatch="Versionsが一致しません!",
|
||||
notFinished="工事中!",
|
||||
oldVersion="バージョン$1のダウンロードが可能になりました",
|
||||
needUpdate="最新バージョンに更新してください",
|
||||
versionNotMatch="バージョンが一致しません",
|
||||
notFinished="未完成ですので、ご期待ください",
|
||||
|
||||
jsonError="JSONエラー",
|
||||
|
||||
@@ -117,16 +117,16 @@ return{
|
||||
noPassword="パスワードを入力してください!",
|
||||
diffPassword="パスワードが一致しません!",
|
||||
registerRequestSent="Sign Upリクエストを送信しました!",
|
||||
registerSuccessed="Sign Up成功!",
|
||||
loginSuccessed="ログインしています!",
|
||||
accessSuccessed="アクセス権限を取得しました!",
|
||||
registerOK="サインアップ成功!",
|
||||
loginOK="ログインしています!",
|
||||
accessOK="アクセス権限を取得しました!",
|
||||
|
||||
wsConnecting="ウェブソケットに接続中…",
|
||||
wsFailed="ウェブソケットとの通信に失敗しました",
|
||||
wsClose="ウェブソケットとの通信を終了:",
|
||||
netTimeout="接続がタイムアウトしました",
|
||||
|
||||
onlinePlayerCount="オンライン",
|
||||
onlinePlayerCount="オンライン人数",
|
||||
createRoomSuccessed="部屋を建てました",
|
||||
started="プレイ中",
|
||||
joinRoom="が入室しました",
|
||||
@@ -134,7 +134,7 @@ return{
|
||||
ready="準備OK",
|
||||
connStream="接続中……",
|
||||
waitStream="待機中……",
|
||||
spectating="観戦",
|
||||
spectating="観戦中",
|
||||
chatRemain="オンライン",
|
||||
chatStart="------チャットの先頭------",
|
||||
chatHistory="------新しいメッセージ------",
|
||||
@@ -169,10 +169,10 @@ return{
|
||||
noMove="No Movement\n左右移動が出来なくなります",
|
||||
customSeq="Randomizer\nミノの出現法則を変更します",
|
||||
pushSpeed="Garbage Speed\n下穴がせり上がるまでに置けるブロック数を変更します (ブロック数/フレーム)",
|
||||
boneBlock="[ ]\n[ ]ブロックで遊ぼう",
|
||||
boneBlock="[ ]\n骨ブロックで遊ぼう",
|
||||
},
|
||||
pauseStat={
|
||||
"Time:",
|
||||
"時間:",
|
||||
"入力数/回転数/ホールド数:",
|
||||
"ミノ数:",
|
||||
"列数/掘った列:",
|
||||
@@ -207,15 +207,15 @@ return{
|
||||
"ゲームは、必ず公式から入手してください",
|
||||
"他から入手した場合は、安全性を保証しません",
|
||||
"同時に作者は、責任を負いません",
|
||||
FNNS and"/"or"ゲーム自体は、無料ですが寄付をお願いします",
|
||||
FNNS and"/"or"ゲーム自体は無料ですが、寄付できるならありがたいです。",
|
||||
FNNS and"/"or"詳しくはZictionaryをご覧ください",
|
||||
},
|
||||
staff={
|
||||
"オリジナルは「MrZ」作",
|
||||
"E-Mail先は: 1046101471@qq.com",
|
||||
"作者「MrZ」",
|
||||
"Eメール先は: 「1046101471@qq.com」まで",
|
||||
"",
|
||||
"プログラム、開発、デザイン",
|
||||
"MrZ様",
|
||||
"MrZ",
|
||||
"",
|
||||
"楽曲作成ツール",
|
||||
"Beepbox",
|
||||
@@ -261,7 +261,7 @@ return{
|
||||
"(Aether)",
|
||||
"(Hailey)",
|
||||
"",
|
||||
"SFXとボイスパック",
|
||||
"効果音とボイスパック",
|
||||
"Miya",
|
||||
"Xiaoya",
|
||||
"Mono",
|
||||
@@ -276,6 +276,9 @@ return{
|
||||
"ScF",
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"NOT_A_ROBOT",
|
||||
"sakurw",
|
||||
"Airun",
|
||||
"幽灵3383",
|
||||
"",
|
||||
"パフォーマンス",
|
||||
"Electric283",
|
||||
@@ -351,9 +354,9 @@ return{
|
||||
tas="TAS (T)",
|
||||
},
|
||||
net_menu={
|
||||
league="リーグ",
|
||||
ffa="FFA",
|
||||
rooms="クラブ",
|
||||
league="テクリーグ",
|
||||
ffa="自由乱闘戦",
|
||||
rooms="ルーム・プライベート戦",
|
||||
logout="ログアウト",
|
||||
},
|
||||
net_league={
|
||||
@@ -361,7 +364,7 @@ return{
|
||||
},
|
||||
net_rooms={
|
||||
password="パスワード",
|
||||
refreshing="探索中",
|
||||
refreshing="探索中…",
|
||||
noRoom="部屋が存在しません",
|
||||
refresh="更新",
|
||||
new="部屋を建てる",
|
||||
@@ -369,9 +372,9 @@ return{
|
||||
},
|
||||
net_newRoom={
|
||||
title="部屋設定",
|
||||
roomName="部屋名 (デフォルト: \"[username]'s room\")",
|
||||
roomName="部屋名 (デフォルト名: \"[username]'s room\")",
|
||||
password="パスワード",
|
||||
description="部屋説明",
|
||||
description="部屋の説明",
|
||||
|
||||
life="残機数",
|
||||
pushSpeed="迫り上がり速度",
|
||||
@@ -404,7 +407,7 @@ return{
|
||||
eventSet="ルール設定",
|
||||
|
||||
holdMode="ホールド設定",
|
||||
nextCount="ネキスト数",
|
||||
nextCount="ネクスト数",
|
||||
holdCount="ホールド数",
|
||||
infHold="無限ホールド",
|
||||
phyHold="即ホールド",
|
||||
@@ -429,7 +432,7 @@ return{
|
||||
menuPos="メニューの位置",
|
||||
sysCursor="システムカーソル",
|
||||
autoPause="ゲーム中断時のオートポーズ",
|
||||
autoSave="オートセーブ",
|
||||
autoSave="最高得点を更新したときオートセーブ",
|
||||
autoLogin="オートログイン",
|
||||
simpMode="シンプルなホーム画面",
|
||||
},
|
||||
@@ -474,7 +477,7 @@ return{
|
||||
fullscreen="フルスクリーン",
|
||||
|
||||
bg_on="通常背景",
|
||||
bg_off="背景なし",
|
||||
bg_off="背景を閉じる ",
|
||||
bg_custom="カスタム背景",
|
||||
|
||||
blockSatur="ブロックデザイン",
|
||||
@@ -487,8 +490,8 @@ return{
|
||||
graphic="画面→",
|
||||
|
||||
mainVol="主音量",
|
||||
bgm="BGM",
|
||||
sfx="SFX",
|
||||
bgm="音楽",
|
||||
sfx="効果音",
|
||||
stereo="ステレオ",
|
||||
spawn="ブロックの出現音",
|
||||
warn="警告音",
|
||||
@@ -497,7 +500,7 @@ return{
|
||||
|
||||
autoMute="ゲーム中断時のオートミュート",
|
||||
fine="最適化失敗音",
|
||||
sfxPack="SFXパック",
|
||||
sfxPack="効果音パック",
|
||||
vocPack="ボイスパック",
|
||||
apply="適用",
|
||||
},
|
||||
@@ -547,7 +550,7 @@ return{
|
||||
default="デフォルト",
|
||||
snap="グリッドにスナップ",
|
||||
size="サイズ",
|
||||
shape="シャープ",
|
||||
shape="シェイプ",
|
||||
},
|
||||
setting_touchSwitch={
|
||||
b1= "左移動:", b2="右移動:", b3="右回転:", b4="左回転:",
|
||||
@@ -559,7 +562,7 @@ return{
|
||||
norm="ノーマル",
|
||||
pro="アドバンス",
|
||||
icon="アイコン",
|
||||
sfx="SFX",
|
||||
sfx="効果音",
|
||||
vib="VIB",
|
||||
alpha="Alpha",
|
||||
|
||||
@@ -596,7 +599,7 @@ return{
|
||||
eventSet="ルール設定",
|
||||
|
||||
holdMode="ホールド設定",
|
||||
nextCount="ネキスト数",
|
||||
nextCount="ネクスト数",
|
||||
holdCount="ホールド数",
|
||||
infHold="無限ホールド",
|
||||
phyHold="即ホールド",
|
||||
@@ -606,8 +609,8 @@ return{
|
||||
freshLimit="設置時間のリセット回数",
|
||||
opponent="相手",
|
||||
life="残機数",
|
||||
pushSpeed="せり上がり速度",
|
||||
garbageSpeed="せり上がり猶予",
|
||||
pushSpeed="迫り上がり速度",
|
||||
garbageSpeed="迫り上がり猶予",
|
||||
|
||||
bufferLimit="ダメージの保持上限",
|
||||
heightLimit="致死ラインの高さ",
|
||||
@@ -626,7 +629,7 @@ return{
|
||||
any="消しゴム",
|
||||
smart="自動着色",
|
||||
|
||||
push="せり上がり (K)",
|
||||
push="迫り上がり (K)",
|
||||
del="Line消去 (L)",
|
||||
|
||||
demo="×を非表示",
|
||||
@@ -657,7 +660,7 @@ return{
|
||||
about={
|
||||
staff="スタッフ",
|
||||
his="歴史",
|
||||
legals="法的な事",
|
||||
legals="法的情報",
|
||||
},
|
||||
dict={
|
||||
title="TetroDictionary",
|
||||
@@ -671,15 +674,15 @@ return{
|
||||
arrow="→",
|
||||
now="再生中:",
|
||||
|
||||
bgm="BGM",
|
||||
sound="SFX",
|
||||
bgm="音楽",
|
||||
sound="効果音",
|
||||
},
|
||||
launchpad={
|
||||
title="ミュージックルーム",
|
||||
bgm="BGM",
|
||||
sfx="SFX",
|
||||
bgm="音楽",
|
||||
sfx="効果音",
|
||||
voc="VOC",
|
||||
music="BGM",
|
||||
music="曲",
|
||||
label="ラベル",
|
||||
},
|
||||
login={
|
||||
@@ -755,105 +758,105 @@ return{
|
||||
},
|
||||
},
|
||||
modes={
|
||||
['sprint_10l']= {"スプリント", "10L", "10 Line消せ!"},
|
||||
['sprint_20l']= {"スプリント", "20L", "20 Line消せ!"},
|
||||
['sprint_40l']= {"スプリント", "40L", "40 Line消せ!"},
|
||||
['sprint_100l']= {"スプリント", "100L", "100 Line消せ!"},
|
||||
['sprint_400l']= {"スプリント", "400L", "400 Line消せ!"},
|
||||
['sprint_1000l']= {"スプリント", "1,000L", "1,000 Line消せ!"},
|
||||
['sprintPenta']= {"スプリント", "PENTOMINO", "ペントミノで40 Line消去!"},
|
||||
['sprintMPH']= {"スプリント", "MPH", "ミノ順なし\nNextなし\nHoldなし"},
|
||||
['dig_10l']= {"掘り", "10L", "10 Line下穴を掘れ!"},
|
||||
['dig_40l']= {"掘り", "40L", "40 Line下穴を掘れ!"},
|
||||
['dig_100l']= {"掘り", "100L", "100 Line下穴を掘れ!"},
|
||||
['dig_400l']= {"掘り", "400L", "400 Line下穴を掘れ!"},
|
||||
['drought_n']= {"ドラウト", "100L", "Iミノ一切無し!"},
|
||||
['drought_l']= {"ドラウト+", "100L", "わったーふ◯っく!"},
|
||||
['marathon_n']= {"マラソン", "NORMAL", "加速する中で200 Lineマラソン!"},
|
||||
['marathon_h']= {"マラソン", "HARD", "高速の中で200 Lineマラソン!"},
|
||||
['solo_e']= {"バトル", "EASY", "弱めのAIに勝て!"},
|
||||
['solo_n']= {"バトル", "NORMAL", "普通のAIに勝て!"},
|
||||
['solo_h']= {"バトル", "HARD", "強めのAIに勝て!"},
|
||||
['solo_l']= {"バトル", "LUNATIC", "プロレベルのAIに勝て!"},
|
||||
['solo_u']= {"バトル", "ULTIMATE", "神レベルのAIに勝て!"},
|
||||
['techmino49_e']= {"テック 49", "EASY", "弱めの49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino49_h']= {"テック 49", "HARD", "強めの49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino49_u']= {"テック 49", "ULTIMATE", "神レベルの49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_e']= {"テック 99", "EASY", "弱めの99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_h']= {"テック 99", "HARD", "強めの99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_u']= {"テック 99", "ULTIMATE", "神レベルの99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['round_e']= {"ターン制", "EASY", "ターン制で弱めのAIと勝負!"},
|
||||
['round_n']= {"ターン制", "NORMAL", "ターン制で普通のAIと勝負!"},
|
||||
['round_h']= {"ターン制", "HARD", "ターン制で強めのAIと勝負!"},
|
||||
['round_l']= {"ターン制", "LUNATIC", "ターン制でプロレベルのAIと勝負!"},
|
||||
['round_u']= {"ターン制", "ULTIMATE", "ターン制で神レベルのAIと勝負!"},
|
||||
['master_n']= {"マスター", "NORMAL", "20G 初心者方へ"},
|
||||
['master_h']= {"マスター", "HARD", "20G プロの方へ"},
|
||||
['master_m']= {"マスター", "M21", "20G マスターの方へ"},
|
||||
['master_final']= {"マスター", "FINAL", "20G その先へ"},
|
||||
['master_ph']= {"マスター", "PHANTASM", "???"},
|
||||
['master_ex']= {"グランドマスター", "EXTRA", "一瞬よりも短い永遠"},
|
||||
['master_instinct']={"マスター", "INSTINCT", "もしミノが一切見えなくなったら?"},
|
||||
['strategy_e']= {"ストラテジー", "EASY", "20Gでの素早い判断"},
|
||||
['strategy_h']= {"ストラテジー", "HARD", "20Gでの素早い判断"},
|
||||
['strategy_u']= {"ストラテジー", "ULTIMATE", "20Gでの素早い判断"},
|
||||
['strategy_e_plus']={"ストラテジー", "EASY+", "20Gでの素早い判断"},
|
||||
['strategy_h_plus']={"ストラテジー", "HARD+", "20Gでの素早い判断"},
|
||||
['strategy_u_plus']={"ストラテジー", "ULTIMATE+", "20Gでの素早い判断"},
|
||||
['blind_e']= {"目隠し", "HALF", "初心者用"},
|
||||
['blind_n']= {"目隠し", "ALL", "中級者用"},
|
||||
['blind_h']= {"目隠し", "SUDDEN", "上級者用"},
|
||||
['blind_l']= {"目隠し", "SUDDEN+", "プロフェッショナル用!"},
|
||||
['blind_u']= {"目隠し", "?", "覚悟は良いかい?"},
|
||||
['blind_wtf']= {"目隠し", "WTF", "まだ覚悟が足りないな!"},
|
||||
['classic_e']= {"クラシック", "EASY", "80年代のネステト時代を超低速で体験!"},
|
||||
['classic_h']= {"クラシック", "HARD", "80年代のネステト時代を通常速度で体験!"},
|
||||
['classic_u']= {"クラシック", "ULTIMATE", "80年代のネステト時代を超高速で体験!"},
|
||||
['survivor_e']= {"サバイバル", "EASY", "どれだけ生き残れる?"},
|
||||
['survivor_n']= {"サバイバル", "NORMAL", "どれだけ生き残れる?"},
|
||||
['survivor_h']= {"サバイバル", "HARD", "どれだけ生き残れる?"},
|
||||
['survivor_l']= {"サバイバル", "LUNATIC", "どれだけ生き残れる?"},
|
||||
['survivor_u']= {"サバイバル", "ULTIMATE", "どれだけ生き残れる?"},
|
||||
['attacker_h']= {"火力王", "HARD", "攻撃力を磨け!"},
|
||||
['attacker_u']= {"火力王", "ULTIMATE", "攻撃力を磨け!"},
|
||||
['defender_n']= {"相殺王", "NORMAL", "防御力を磨け!"},
|
||||
['defender_l']= {"相殺王", "LUNATIC", "防御力を磨け!"},
|
||||
['dig_h']= {"堀王", "HARD", "回復力を磨け!"},
|
||||
['dig_u']= {"堀王", "ULTIMATE", "回復力を磨け!"},
|
||||
['sprint_10l']= {"スプリント", "10L", "10ライン消せ!"},
|
||||
['sprint_20l']= {"スプリント", "20L", "20ライン消せ!"},
|
||||
['sprint_40l']= {"スプリント", "40L", "40ライン消せ!"},
|
||||
['sprint_100l']= {"スプリント", "100L", "100ライン消せ!"},
|
||||
['sprint_400l']= {"スプリント", "400L", "400ライン消せ!"},
|
||||
['sprint_1000l']= {"スプリント", "1,000L", "1,000ライン消せ!"},
|
||||
['sprintPenta']= {"スプリント", "PENTOMINO", "ペントミノで40ライン消せ!"},
|
||||
['sprintMPH']= {"スプリント", "MPH", "ミノ順なし\nネクストなし\nホールドなし!"},
|
||||
['dig_10l']= {"掘り", "10L", "10ライン下穴を掘れ!"},
|
||||
['dig_40l']= {"掘り", "40L", "40ライン下穴を掘れ!"},
|
||||
['dig_100l']= {"掘り", "100L", "100ライン下穴を掘れ!"},
|
||||
['dig_400l']= {"掘り", "400L", "400ライン下穴を掘れ!"},
|
||||
['drought_n']= {"ドラウト", "100L", "Iミノ一切無し!"},
|
||||
['drought_l']= {"ドラウト+", "100L", "わったーふ◯っく!"},
|
||||
['marathon_n']= {"マラソン", "NORMAL", "加速する中で200ラインマラソン!"},
|
||||
['marathon_h']= {"マラソン", "HARD", "高速の中で200ラインマラソン!"},
|
||||
['solo_e']= {"バトル", "EASY", "弱めのAIに勝て!"},
|
||||
['solo_n']= {"バトル", "NORMAL", "普通のAIに勝て!"},
|
||||
['solo_h']= {"バトル", "HARD", "強めのAIに勝て!"},
|
||||
['solo_l']= {"バトル", "LUNATIC", "プロレベルのAIに勝て!"},
|
||||
['solo_u']= {"バトル", "ULTIMATE", "神レベルのAIに勝て!"},
|
||||
['techmino49_e']= {"テック 49", "EASY", "弱めの49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino49_h']= {"テック 49", "HARD", "強めの49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino49_u']= {"テック 49", "ULTIMATE", "神レベルの49人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_e']= {"テック 99", "EASY", "弱めの99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_h']= {"テック 99", "HARD", "強めの99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['techmino99_u']= {"テック 99", "ULTIMATE", "神レベルの99人で勝負\n最後の1人まで生き残れ!"},
|
||||
['round_e']= {"ターン制", "EASY", "ターン制で弱めのAIと勝負!"},
|
||||
['round_n']= {"ターン制", "NORMAL", "ターン制で普通のAIと勝負!"},
|
||||
['round_h']= {"ターン制", "HARD", "ターン制で強めのAIと勝負!"},
|
||||
['round_l']= {"ターン制", "LUNATIC", "ターン制でプロレベルのAIと勝負!"},
|
||||
['round_u']= {"ターン制", "ULTIMATE", "ターン制で神レベルのAIと勝負!"},
|
||||
['master_n']= {"マスター", "NORMAL", "20G 初心者方へ"},
|
||||
['master_h']= {"マスター", "HARD", "20G 中級者の方へ"},
|
||||
['master_m']= {"マスター", "M21", "20G 上級者の方へ"},
|
||||
['master_final']= {"マスター", "FINAL", "20G その先へ"},
|
||||
['master_ph']= {"マスター", "PHANTASM", "???"},
|
||||
['master_ex']= {"グランドマスター", "EXTRA", "一瞬よりも短い永遠"},
|
||||
['master_instinct']={"マスター", "INSTINCT", "もしミノが一切見えなくなったら?"},
|
||||
['strategy_e']= {"ストラテジー", "EASY", "20Gでの素早い判断"},
|
||||
['strategy_h']= {"ストラテジー", "HARD", "20Gでの素早い判断"},
|
||||
['strategy_u']= {"ストラテジー", "ULTIMATE", "20Gでの素早い判断"},
|
||||
['strategy_e_plus']={"ストラテジー", "EASY+", "20Gでの素早い判断"},
|
||||
['strategy_h_plus']={"ストラテジー", "HARD+", "20Gでの素早い判断"},
|
||||
['strategy_u_plus']={"ストラテジー", "ULTIMATE+", "20Gでの素早い判断"},
|
||||
['blind_e']= {"目隠し", "HALF", "初心者用"},
|
||||
['blind_n']= {"目隠し", "ALL", "中級者用"},
|
||||
['blind_h']= {"目隠し", "SUDDEN", "上級者用"},
|
||||
['blind_l']= {"目隠し", "SUDDEN+", "プロフェッショナル用!"},
|
||||
['blind_u']= {"目隠し", "?", "覚悟は良いかい?"},
|
||||
['blind_wtf']= {"目隠し", "WTF", "まだ覚悟が足りないな!"},
|
||||
['classic_e']= {"クラシック", "EASY", "低速クラシック"},
|
||||
['classic_h']= {"クラシック", "HARD", "通常速度クラシック"},
|
||||
['classic_u']= {"クラシック", "ULTIMATE", "高速クラシック"},
|
||||
['survivor_e']= {"サバイバル", "EASY", "どれだけ生き残れるかな?"},
|
||||
['survivor_n']= {"サバイバル", "NORMAL", "どれだけ生き残れるかな?"},
|
||||
['survivor_h']= {"サバイバル", "HARD", "どれだけ生き残れるかな?"},
|
||||
['survivor_l']= {"サバイバル", "LUNATIC", "どれだけ生き残れるかな?"},
|
||||
['survivor_u']= {"サバイバル", "ULTIMATE", "どれだけ生き残れるかな?"},
|
||||
['attacker_h']= {"火力王", "HARD", "攻撃力を磨け!"},
|
||||
['attacker_u']= {"火力王", "ULTIMATE", "攻撃力を磨け!"},
|
||||
['defender_n']= {"相殺王", "NORMAL", "防御力を磨け!"},
|
||||
['defender_l']= {"相殺王", "LUNATIC", "防御力を磨け!"},
|
||||
['dig_h']= {"堀王", "HARD", "掘りを磨け"},
|
||||
['dig_u']= {"堀王", "ULTIMATE", "掘りを磨け"},
|
||||
['clearRush']= {"クリアラッシュ", "NORMAL", "All-Spinチュートリアル!\n[開発中]"},
|
||||
['c4wtrain_n']= {"C4Wトレーニング", "NORMAL", "無限中開け4連コンボ!"},
|
||||
['c4wtrain_l']= {"C4Wトレーニング", "LUNATIC", "無限中開け4連コンボ!"},
|
||||
['pctrain_n']= {"パフェトレーニング", "NORMAL", "パフェ練習"},
|
||||
['pctrain_l']= {"パフェトレーニング", "LUNATIC", "もっと難しいパフェ練習"},
|
||||
['pc_n']= {"パフェチャレンジ", "NORMAL", "100 Line以内でパフェを出来るだけたくさん取れ!"},
|
||||
['pc_h']= {"パフェチャレンジ", "HARD", "100 Line以内でパフェを出来るだけたくさん取れ!"},
|
||||
['pc_l']= {"パフェチャレンジ", "LUNATIC", "100 Line以内でパフェを出来るだけたくさん取れ!"},
|
||||
['pc_inf']= {"無限パフェチャレンジ", "", "できる限りたくさんのパフェを"},
|
||||
['tech_n']= {"テクニック", "NORMAL", "B2Bを繋げ続けよう!"},
|
||||
['tech_n_plus']= {"テクニック", "NORMAL+", "回転入れとパフェだけ!"},
|
||||
['tech_h']= {"テクニック", "HARD", "B2Bを続けよう!"},
|
||||
['tech_h_plus']= {"テクニック", "HARD+", "回転入れとパフェだけ!"},
|
||||
['tech_l']= {"テクニック", "LUNATIC", "回転入れとパフェだけ!"},
|
||||
['tech_l_plus']= {"テクニック", "LUNATIC+", "回転入れとパフェだけ!"},
|
||||
['tech_finesse']= {"テクニック", "FINESSE", "最適化!"},
|
||||
['tech_finesse_f']= {"テクニック", "FINESSE+", "最適化はそのまま、普通のLine消去禁止!"},
|
||||
['tsd_e']= {"TSDチャレンジ", "EASY", "TSDだけ!"},
|
||||
['tsd_h']= {"TSDチャレンジ", "HARD", "TSDだけ!"},
|
||||
['tsd_u']= {"TSDチャレンジ", "ULTIMATE", "TSDだけ!"},
|
||||
['backfire_n']= {"バックファイヤー", "NORMAL", "撃った火力が戻ってくる"},
|
||||
['backfire_h']= {"バックファイヤー", "HARD", "撃った火力が戻ってくる"},
|
||||
['backfire_l']= {"バックファイヤー", "LUNATIC", "撃った火力が戻ってくる"},
|
||||
['backfire_u']= {"バックファイヤー", "ULTIMATE", "撃った火力が戻ってくる"},
|
||||
['sprintAtk']= {"スプリント", "100 Attack", "100 Line送れ!"},
|
||||
['sprintEff']= {"スプリント", "Efficiency", "40 Lineの間にできるだけ火力を出せ!"},
|
||||
['zen']= {'禅', "200", "時間制限なしで200 Line消去"},
|
||||
['ultra']= {'ウルトラ', "EXTRA", "2分間のスコアアタック"},
|
||||
['infinite']= {"無限", "", "ただの砂場"},
|
||||
['infinite_dig']= {"無限: 掘り", "", "掘れ掘れ掘れ"},
|
||||
['marathon_inf']= {"マラソン", "INFINITE", "永遠のマラソン"},
|
||||
['c4wtrain_n']= {"C4Wトレーニング", "NORMAL", "無限中開け"},
|
||||
['c4wtrain_l']= {"C4Wトレーニング", "LUNATIC", "無限中開け"},
|
||||
['pctrain_n']= {"パフェトレーニング", "NORMAL", "パフェの練習!"},
|
||||
['pctrain_l']= {"パフェトレーニング", "LUNATIC", "もっと難しいパフェの練習!"},
|
||||
['pc_n']= {"パフェチャレンジ", "NORMAL", "100 Line以内でパフェをできるだけたくさん取れ!"},
|
||||
['pc_h']= {"パフェチャレンジ", "HARD", "100 Line以内でパフェをできるだけたくさん取れ!"},
|
||||
['pc_l']= {"パフェチャレンジ", "LUNATIC", "100 Line以内でパフェをできるだけたくさん取れ!"},
|
||||
['pc_inf']= {"無限パフェチャレンジ", "", "できる限りたくさんのパフェを取れ!"},
|
||||
['tech_n']= {"テクニック", "NORMAL", "B2Bを繋げ続けよう!"},
|
||||
['tech_n_plus']= {"テクニック", "NORMAL+", "回転入れとパフェだけ!"},
|
||||
['tech_h']= {"テクニック", "HARD", "B2Bを繋げ続けよう!"},
|
||||
['tech_h_plus']= {"テクニック", "HARD+", "回転入れとパフェだけ!"},
|
||||
['tech_l']= {"テクニック", "LUNATIC", "回転入れとパフェだけ!"},
|
||||
['tech_l_plus']= {"テクニック", "LUNATIC+", "回転入れとパフェだけ!"},
|
||||
['tech_finesse']= {"テクニック", "FINESSE", "最適化!"},
|
||||
['tech_finesse_f']= {"テクニック", "FINESSE+", "最適化はそのまま、普通のライン消去禁止!"},
|
||||
['tsd_e']= {"TSDチャレンジ", "EASY", "TSDだけ!"},
|
||||
['tsd_h']= {"TSDチャレンジ", "HARD", "TSDだけ!"},
|
||||
['tsd_u']= {"TSDチャレンジ", "ULTIMATE", "TSDだけ!"},
|
||||
['backfire_n']= {"バックファイヤー", "NORMAL", "撃った火力が戻ってくる!"},
|
||||
['backfire_h']= {"バックファイヤー", "HARD", "撃った火力が戻ってくる!"},
|
||||
['backfire_l']= {"バックファイヤー", "LUNATIC", "撃った火力が戻ってくる!"},
|
||||
['backfire_u']= {"バックファイヤー", "ULTIMATE", "撃った火力が戻ってくる!"},
|
||||
['sprintAtk']= {"スプリント", "100 Attack", "100ライン送れ!"},
|
||||
['sprintEff']= {"スプリント", "Efficiency", "40ラインの間にできるだけ火力を出せ!"},
|
||||
['zen']= {'禅', "200", "時間制限なしで200ライン消去"},
|
||||
['ultra']= {'ウルトラ', "EXTRA", "2分以内にできるだけ多くの点数を取る"},
|
||||
['infinite']= {"無限", "", "サンドボックス"},
|
||||
['infinite_dig']= {"無限: 掘り", "", "掘れ掘れ掘れ"},
|
||||
['marathon_inf']= {"マラソン", "INFINITE", "永遠のマラソン"},
|
||||
|
||||
['custom_clear']= {"カスタム", "NORMAL"},
|
||||
['custom_puzzle']= {"カスタム", "PUZZLE"},
|
||||
['custom_clear']= {"カスタム", "NORMAL"},
|
||||
['custom_puzzle']= {"カスタム", "PUZZLE"},
|
||||
},
|
||||
getTip={refuseCopy=true,
|
||||
":pog:",
|
||||
@@ -909,7 +912,7 @@ getTip={refuseCopy=true,
|
||||
"B2B2B2Bは存在しません",
|
||||
"B2B2B2Bは可能?",
|
||||
"Back-to-Back Techrash, 10 REN, PC!",
|
||||
"BGMやSFXの制作に協力いただける方は大歓迎です!",
|
||||
"音楽や効果音の制作に協力いただける方は大歓迎です!",
|
||||
"Bridge Clearが間もなく実装されます!",
|
||||
"Color Clearが間もなく実装されます!",
|
||||
"DASとARRを低くすると、速くなるけど操作が難しくなる!",
|
||||
@@ -923,8 +926,8 @@ getTip={refuseCopy=true,
|
||||
"Nspire-CXのTechmino: 存在はしますが同じゲームではありません",
|
||||
"O-Spin Triple!",
|
||||
"OHHHHHHHHHHHHHH",
|
||||
"「LÖVE」提供",
|
||||
"「Un…」じゃなくて「LÖVE」提供",
|
||||
"Powered by LÖVE",
|
||||
"Powered by Un... LÖVE",
|
||||
"Rank Xの条件は、上級者でも難しくなるように設定されています",
|
||||
"Split Clearが間もなく実装されます!",
|
||||
"sudo rm -rf /*",
|
||||
@@ -954,22 +957,22 @@ getTip={refuseCopy=true,
|
||||
"マルチプレイで遊ぼう! あなたの常識が壊されるでしょう",
|
||||
"メニューをシンプルモードにした場合、イースターエッグがなくなります",
|
||||
"ローディング中! シーンチェンジの間だけじゃないです!",
|
||||
"Zのおすすめ[01]東方をやってみよう!",
|
||||
"Zのおすすめ[02]Minecraftをやってみよう!",
|
||||
"Zのおすすめ[03]Osu!をやってみよう!",
|
||||
"Zのおすすめ[04]Quatrackをやってみよう!",
|
||||
"Zのおすすめ[05]Terrariaをやってみよう!",
|
||||
"Zのおすすめ[06]Celesteをやってみよう!",
|
||||
"Zのおすすめ[07]グーの惑星をやってみよう!",
|
||||
"Zのおすすめ[08]Orzmicをやってみよう!",
|
||||
"Zのおすすめ[09]Puyo Puyoをやってみよう!",
|
||||
"Zのおすすめ[10]Phigrosをやってみよう!",
|
||||
"Zのおすすめ[11]VVVVVVをやってみよう!",
|
||||
"Zのおすすめ[12]Ballanceをやってみよう!",
|
||||
"Zのおすすめ[13]Zumaをやってみよう!",
|
||||
"Zのおすすめ[14]ルービックキューブをやってみよう!",
|
||||
"Zのおすすめ[15]15puzzleをやってみよう!",
|
||||
"Zのおすすめ[16]Minesweeperをやってみよう!",
|
||||
"Z推薦[01]東方原作ゲームをやってみよう!",
|
||||
"Z推薦[02]Minecraftをやってみよう!",
|
||||
"Z推薦[03]Osu!をやってみよう!",
|
||||
"Z推薦[04]Quatrackをやってみよう!",
|
||||
"Z推薦[05]Terrariaをやってみよう!",
|
||||
"Z推薦[06]Celesteをやってみよう!",
|
||||
"Z推薦[07]グーの惑星をやってみよう!",
|
||||
"Z推薦[08]Orzmicをやってみよう!",
|
||||
"Z推薦[09]Puyo Puyoをやってみよう!",
|
||||
"Z推薦[10]Phigrosをやってみよう!",
|
||||
"Z推薦[11]VVVVVVをやってみよう!",
|
||||
"Z推薦[12]Ballanceをやってみよう!",
|
||||
"Z推薦[13]Zumaをやってみよう!",
|
||||
"Z推薦[14]ルービックキューブをやってみよう!",
|
||||
"Z推薦[15]15puzzleをやってみよう!",
|
||||
"Z推薦[16]Minesweeperをやってみよう!",
|
||||
{C.H,"REGRET!!"},
|
||||
{C.lP,"Secret Number: 626"},
|
||||
{C.lR,"Z ",C.lG,"S ",C.lS,"J ",C.lO,"L ",C.lP,"T ",C.lY,"O ",C.lC,"I"},
|
||||
|
||||
@@ -104,9 +104,9 @@ return{
|
||||
noPassword="Insira sua senha ",
|
||||
diffPassword="Senhas não combinam",
|
||||
-- registerRequestSent="Registration request sent",
|
||||
registerSuccessed="Registrado com sucesso!",
|
||||
loginSuccessed="Logado com sucesso!",
|
||||
accessSuccessed="Autorizado com sucesso!",
|
||||
registerOK="Registrado com sucesso!",
|
||||
loginOK="Logado com sucesso!",
|
||||
accessOK="Autorizado com sucesso!",
|
||||
|
||||
-- wsConnecting="Websocket Connecting",
|
||||
wsFailed="WebSocket falha na conexão",
|
||||
@@ -264,6 +264,8 @@ return{
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"NOT_A_ROBOT",
|
||||
"sakurw",
|
||||
"Airun",
|
||||
"幽灵3383",
|
||||
"",
|
||||
"Performance",
|
||||
"Electric283",
|
||||
|
||||
@@ -116,9 +116,9 @@ return{
|
||||
noPassword="请填写密码",
|
||||
diffPassword="两次密码不一致",
|
||||
registerRequestSent="注册请求已发送",
|
||||
registerSuccessed="注册成功!",
|
||||
loginSuccessed="登录成功",
|
||||
accessSuccessed="身份验证成功",
|
||||
registerOK="注册成功!",
|
||||
loginOK="登录成功",
|
||||
accessOK="身份验证成功",
|
||||
|
||||
wsConnecting="正在连接",
|
||||
wsFailed="连接失败",
|
||||
@@ -275,6 +275,9 @@ return{
|
||||
"ScF",
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"NOT_A_ROBOT",
|
||||
"sakurw",
|
||||
"Airun",
|
||||
"幽灵3383",
|
||||
"",
|
||||
"Performances",
|
||||
"Electric283",
|
||||
|
||||
@@ -114,9 +114,9 @@ return{
|
||||
noPassword="输入您的密码",
|
||||
diffPassword="密码不匹配",
|
||||
registerRequestSent="已发送注册请求",
|
||||
registerSuccessed="注册成功!",
|
||||
loginSuccessed="您现在已登录!",
|
||||
accessSuccessed="允许访问",
|
||||
registerOK="注册成功!",
|
||||
loginOK="您现在已登录!",
|
||||
accessOK="允许访问",
|
||||
|
||||
wsConnecting="双向通信连接",
|
||||
wsFailed="双向通信连接失败",
|
||||
@@ -273,6 +273,9 @@ return{
|
||||
"氟化钪",
|
||||
"蛋白激酶G抑制剂",
|
||||
"不是机器人",
|
||||
"萨库尔",
|
||||
"爱伦",
|
||||
"幽灵3383",
|
||||
"",
|
||||
"性能",
|
||||
"电动283",
|
||||
|
||||
@@ -116,9 +116,9 @@ return{
|
||||
noPassword="請輸入密碼",
|
||||
diffPassword="密碼不匹配",
|
||||
registerRequestSent="已發送註冊請求",
|
||||
registerSuccessed="註冊成功!",
|
||||
loginSuccessed="登錄成功",
|
||||
accessSuccessed="身份認證成功",
|
||||
registerOK="註冊成功!",
|
||||
loginOK="登錄成功",
|
||||
accessOK="身份認證成功",
|
||||
|
||||
wsConnecting="正在連接……",
|
||||
wsFailed="連接失敗",
|
||||
@@ -276,6 +276,8 @@ return{
|
||||
"C₂₉H₂₅N₃O₅",
|
||||
"NOT_A_ROBOT",
|
||||
"sakurw",
|
||||
"Airun",
|
||||
"幽灵3383",
|
||||
"",
|
||||
"Performances",
|
||||
"Electric283",
|
||||
|
||||
@@ -18,8 +18,6 @@ Spin detection:
|
||||
- The Spin is a Mini if it only has 2 points; the piece is one of S, Z, J, L, T; AND the line clear did not clear the entire piece.
|
||||
|
||||
Attack system:
|
||||
Normal line clears (1 to 3 lines):
|
||||
Sends (lines cleared -0.5) attack
|
||||
Special line clears:
|
||||
Spin sends (lines cleared x2) attack,
|
||||
- B2B sends extra 1/1/2/4/8 for Spin Single/Double/Triple/Techrash/Techrash+
|
||||
@@ -28,18 +26,19 @@ Attack system:
|
||||
Non-Spin Techrash/Techrash+ sends (lines cleared) attack,
|
||||
- B2B sends 1 additional line
|
||||
- B2B2B will have an attack boost of 50% and +1 extra blocking
|
||||
Hemi Perfect Clear (a P.C. "with blocks left below". If it's an I clearing 1 line, the remaining blocks must not be player-placed):
|
||||
- Attack +4, Extra Blocking +2
|
||||
Perfect Clear (aka All Clear):
|
||||
- Sends 8 to 16 (increments within a game by 2 for every PC) OR every other damage above, whichever is higher,
|
||||
and +2 extra blocking.
|
||||
Normal line clears (1 to 3 lines, no spin or pc/hpc):
|
||||
Sends (lines cleared -0.5) attack
|
||||
|
||||
Combos: All damage above (except attack from pc/hpc) will be given a (combo x25%) bonus, or (combo x15%) for Single clear (capped at 12 combo),
|
||||
+1 more attack for 3 Combo or more.
|
||||
|
||||
Special line clears will the increase B2B gauge, making later special line clears have either a B2B or B2B2B bonus (see below)
|
||||
|
||||
Hemi Perfect Clear (a P.C. "with blocks left below". If it's an I clearing 1 line, the remaining blocks must not be player-placed):
|
||||
Attack +4, Extra Blocking +2
|
||||
|
||||
Perfect Clear (aka All Clear):
|
||||
Sends 8 to 16 (increments within a game by 2 for every PC) OR every other damage above, whichever is higher,
|
||||
and +2 extra blocking.
|
||||
|
||||
Combos: All damage above will be given a (combo x25%) bonus, or (combo x15%) for Single clear (capped at 12 combo),
|
||||
+1 more attack for 3 Combo or more.
|
||||
After calculating all above, the damage value will be rounded down then sent
|
||||
|
||||
Score system:
|
||||
|
||||
109
parts/language/manual_ja.txt
Normal file
109
parts/language/manual_ja.txt
Normal file
@@ -0,0 +1,109 @@
|
||||
ゲームプレイ:
|
||||
システムから与えられた全7種類のテトロミノ
|
||||
(4ブロックで構成されたピース) をプレイヤーが操作します,
|
||||
(主に左右移動と90°, 180°, 270°回転で)。
|
||||
各行がブロックで埋め尽くされるとその行列のブロックが消えます。
|
||||
相手が居る場合, ラインの消し方等で攻撃と火力が異なります。
|
||||
勝利する為にはそのレベルの目標達成もしくは最後までプレイする必要があります。
|
||||
|
||||
回転システム:
|
||||
初期設定はTRS (Techmino Rotation System) で設定されています。
|
||||
プレイヤーは他の一般的な回転システムも使う事ができます (基本的には変えなくても大丈夫)。
|
||||
|
||||
スピンの検出:
|
||||
「3コーナ」ルールを満たした時 +2点
|
||||
「インモービル (Immobile)」 ルールを満たした時 +2点
|
||||
- 上のどちらかを満たした時, スピンが確定します。
|
||||
|
||||
もし回転システムがキックテーブルから2番チェック (2nd check) を採用していなかった場合 +1点
|
||||
- もしスピンの合計点が2点しかない場合は「ミニ」扱いになります;ミノがS, Z, J, L, Tのいずれかで, ラインクリア時にそのミノを全て消せなかった場合のみ。
|
||||
|
||||
攻撃の火力システム:
|
||||
通常のラインクリア (1から3ライン):
|
||||
ラインを消した数から0.5引いた分 (四捨五入) を送ります
|
||||
特殊なラインクリア:
|
||||
スピンはラインを消した数の2倍分送ります
|
||||
- B2Bは消し方に応じて追加します, 以下の通り:
|
||||
- スピンシングル 1
|
||||
- スピンダブル 1
|
||||
- スピントリプル 2
|
||||
- Techrash 4
|
||||
- Techrash+ 8
|
||||
- B2B2Bは (ラインクリア数×0.5) 分のラインを上乗せ、更に1ライン追加相殺します。
|
||||
- ミニ判定の場合, その攻撃は元の0.25倍に下がります。
|
||||
スピン無しのTechrash/Techrash+は消した分をそのまま送ります
|
||||
- B2Bの場合は追加1ライン
|
||||
- B2B2Bの場合は50%の攻撃ブーストが掛かると更に1ライン分追加相殺します
|
||||
|
||||
特殊なラインクリアはB2Bゲージを増加させます, そのゲージは後のB2BやB2B2Bにボーナスが追加されます。 (以下参照)
|
||||
|
||||
コンボ (通称: 連):
|
||||
全てのダメージに応じて (コンボ数×25%) の上乗せ, あるいはシングルに対して (コンボ数×15%) 上乗せ (最大12コンボまで) ,
|
||||
3コンボ以上で+1追加攻撃。
|
||||
|
||||
ヘマイパーフェクトクリア (Hemi Perfect Clear) (「ブロックが下に残ってる」状態でのパフェ。 Iミノでクリアできるラインが一つであり, 残りのミノ全てはプレイヤーが置かなかったミノ (お邪魔ミノ) である事:
|
||||
攻撃 +4 追加相殺 +2
|
||||
|
||||
パーフェクトクリア (通称: オールクリア):
|
||||
8から16ライン送る (試合内でパフェを送る度に前のライン数と2ライン分上乗せ) もしくは 上の記述からのダメージと追加, なおさら多い,
|
||||
更に 追加相殺 +2。
|
||||
|
||||
全てを計算した後に, ダメージ数を四捨五入して送ります。
|
||||
|
||||
スコアシステム:
|
||||
上手くプレイすれば, スコアも上がります。
|
||||
|
||||
攻撃遅延システム:
|
||||
ダブル, トリプルの攻撃が一番早く効果が出ます;
|
||||
その次にゆっくりとした攻撃を送るTechrash, スピン等, の効果が出ます;
|
||||
高いコンボ数の攻撃が飛躍的に遅いです;
|
||||
B2BやB2B2B等は, 送るライン数が増えれば増えるほど遅くなります;
|
||||
ミニ系の攻撃は攻撃自体の効果を大幅に遅らせます。
|
||||
|
||||
カウンター:
|
||||
攻撃を送る際, もしお邪魔ゲージにお邪魔がある場合,
|
||||
追加相殺がまず使われ, その次に攻撃自体とお邪魔を1対1の割合でお邪魔の相殺に当てます。
|
||||
使わなかった追加相殺は破棄され、残った攻撃のパワーは相手に送られます。
|
||||
|
||||
バックツーバック (B2B) ゲージ:
|
||||
B2Bのゲージの範囲は0から1000あります。もしゲージの値が50以上なら特殊なラインクリアはB2Bと見なされ、800以上ならB2B2B (バックツーバックツーバック) 扱いとなります。
|
||||
普通のラインクリアは -250
|
||||
|
||||
スピンシングル: +50
|
||||
スピンダブル: +100
|
||||
スピントリプル: +180
|
||||
特殊なTechrash: +800
|
||||
特殊なTechrash+: +1000
|
||||
ミニ系は (上の記述通り×50%)
|
||||
|
||||
普通のTechrashは+150
|
||||
Techrash+は+200
|
||||
… と続きます。
|
||||
|
||||
このラウンド内の合計ライン数が4以上でパフェを取った場合, +800
|
||||
ヘマイパフェ, +100
|
||||
スピン (0ライン) は+20, 注意としてこの方法ではゲージを800以上は増やせません。
|
||||
もしゲージが800以上ある場合, 毎回のラインクリア無しの落下で40減りますが、800未満にはなりません。
|
||||
|
||||
バトルロイヤルモード:
|
||||
沢山のプレイヤーが同時にゲームをプレイします (対AIです, 本物の人ではありません)。
|
||||
人数が減れば減るほど、ミノの落下速度は加速していき、お邪魔の効果が早く出る同時にせり上がる速度も上がります。
|
||||
他のプレイヤーを倒してバッジを得て、そしてそのバッジであなた自身の攻撃力を上げましょう。
|
||||
プレイヤーは4つの攻撃モードから選ぶことができます:
|
||||
1: ランダム: 毎回攻撃を送る際, 10%の確率で他のプレイヤーに照準を合わせます。
|
||||
2: バッジ狙い: 攻撃を送った後もしくは標的が落とされた場合, バッジの数が一番多いプレイヤーに照準を合わせます。
|
||||
3. トドメ撃ち: 攻撃を送った後もしくは標的が落とされた場合, 各プレイヤの中からフィールドの高さが一番高いプレイヤーに照準を合わせます。
|
||||
(毎秒更新されます)
|
||||
4. カウンター: あなたに照準を向けられてるプレイヤー全員に照準を同時に向けます。
|
||||
あなたの攻撃は照準を向けてるプレイヤー全てに送られます。照準をあなたに向けられていない場合、ランダムにプレイヤーを攻撃します (プレイヤー照準固定無し)
|
||||
全てのプレイヤーが落とされた場合, 最後のプレイヤーが勝者となります。
|
||||
|
||||
カスタムモード:
|
||||
殆どの変数を自由に変えられます (他のゲームモードの特殊エフェクトを除いて)。
|
||||
更に消す為のフィールドを描いたりまたは積み上げる為のテンプレも作れます。
|
||||
ビルド (パズル) モードの場合, テンプレの表示をファンクションキーで操作できます:
|
||||
X印の場所にはブロックは置けない;
|
||||
無印の場所は何来ても構わない;
|
||||
色付きの場所にはその色に合わせてのミノブロックを置かないいけない;
|
||||
おじゃまミノ色の場所にはあるブロックが来てる扱いで空きスペースではない。
|
||||
形を整えた後に, 勝ち判定となります。
|
||||
@@ -15,8 +15,6 @@ spin判定:
|
||||
--如果分数只有2,方块是SZJLT之一,并且没有把当前方块整个消除那么就是mini
|
||||
|
||||
攻击系统:
|
||||
普通消除:
|
||||
消<4行打出[消行数-0.5]攻击
|
||||
特殊消除:
|
||||
如果是spin,打出[2*消行数]攻击,
|
||||
B2B攻击+[1/1/2/4/8(spin1~5)]
|
||||
@@ -25,11 +23,15 @@ spin判定:
|
||||
不是spin但是单次消>=4行,打出[消行数]攻击,
|
||||
B2B攻击+1
|
||||
B3B攻击+50%,+1额外抵挡
|
||||
半全消("下方有剩余方块"的全消,如果是I消1行则必须不剩余玩家放置的方块):
|
||||
伤害+4,额外抵挡+2
|
||||
全消:
|
||||
伤害为8~16(本局内递增2),和上述其他伤害取大,+2额外抵挡
|
||||
普通消除(也就是消行数<4并且没有spin或者(半)全消):
|
||||
打出[消行数-0.5]攻击
|
||||
连击:每次连击给予上述除去hpc/pc加成的部分[连击数*25%(上限12连)(如果只消一行就是15%)]的加成,>=3次时再额外加1攻击
|
||||
特殊消除会增加B2B点数,让之后的特殊消除获得B2B(B3B)增益(详细说明见下文)
|
||||
半全消("下方有剩余方块"的全消,如果是I消1行则必须不剩余玩家放置的方块):伤害+4,额外抵挡+2
|
||||
全消:全消伤害为8~16(本局内递增2),和上述其他伤害取大,然后+2额外抵挡
|
||||
连击:每次连击给予上述攻击[连击数*25%(上限12连)(如果只消一行就是15%)]的加成,>=3次时再额外加1攻击
|
||||
根据上述规则计算后,向下取整,攻击打出
|
||||
计算完成后,向下取整,攻击打出
|
||||
|
||||
分数系统:
|
||||
分数计算系统非常复杂,而且随时可能更改所以不写在这里,并且计算只跟消除方式等信息有关,和模式设定无关
|
||||
|
||||
33
parts/modes/master_g.lua
Normal file
33
parts/modes/master_g.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
return{
|
||||
env={
|
||||
freshLimit=15,
|
||||
fieldH=19,
|
||||
sequence="bagES",
|
||||
eventSet='master_g',
|
||||
bg='bg2',bgm='secret7th',
|
||||
},
|
||||
slowMark=true,
|
||||
score=function(P)
|
||||
if not tonumber(P.modeData.grade) then
|
||||
return{P.modeData.grade,P.stat.time}
|
||||
else
|
||||
return{"Grade "..tostring(P.modeData.grade),P.stat.time}
|
||||
end
|
||||
end,
|
||||
scoreDisp=function(D) return D[1].." "..STRING.time(D[2])end,
|
||||
comp=function(a,b)return a[1]>b[1]or(a[1]==b[1]and a[2]<b[2])end,
|
||||
getRank=function(P)
|
||||
local G=P.modeData.gradePts
|
||||
return
|
||||
G>=39 and 5 or -- TM+
|
||||
G>=31 and 4 or -- MM- - TM
|
||||
G>=25 and 3 or -- m8 - MO
|
||||
G>=18 and 2 or -- m1-m7
|
||||
G>=9 and 1 or -- S1-S9
|
||||
0
|
||||
|
||||
-- Table of grades vs values
|
||||
-- 9 8 7 6 5 4 3 2 1 S1 S2 S3 S4 S5 S6 S7 S8 S9 m1 m2 m3 m4 m5 m6 m7 m8 m9 M MK MV MO MM- MM MM+ GM- GM GM+ TM- TM TM+
|
||||
-- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
||||
end,
|
||||
}
|
||||
@@ -467,14 +467,14 @@ function NET.updateWS_user()
|
||||
SCN.back()
|
||||
end
|
||||
end
|
||||
MES.new('check',text.loginSuccessed)
|
||||
MES.new('check',text.loginOK)
|
||||
|
||||
--Get self infos
|
||||
NET.getUserInfo(USER.uid)
|
||||
NET.unlock('wsc_user')
|
||||
elseif res.action==0 then--Get accessToken
|
||||
NET.accessToken=res.accessToken
|
||||
MES.new('check',text.accessSuccessed)
|
||||
MES.new('check',text.accessOK)
|
||||
NET.wsconn_play()
|
||||
elseif res.action==1 then--Get userInfo
|
||||
USERS.updateUserData(res.data)
|
||||
|
||||
@@ -130,4 +130,5 @@ return{
|
||||
{font=25,name="江江江江17"},
|
||||
{font=25,name="TetraCepra"},
|
||||
{font=25,name="爱抢姐姐布丁的芙兰酱(CHNO)"},
|
||||
{font=25,name="你的忘机已上羡"},
|
||||
}
|
||||
|
||||
@@ -1021,7 +1021,7 @@ function draw.demo(P)
|
||||
local _=BLOCK_COLORS[skinSet[id]]
|
||||
gc_setColor(_[1],_[2],_[3],.3)
|
||||
_=blockImg[id]
|
||||
gc_draw(_,15,40*N-10,nil,16,nil,0,_:getHeight()*.5)
|
||||
gc_draw(_,15,40*N-10,nil,8,nil,0,_:getHeight()*.5)
|
||||
N=N+1
|
||||
end
|
||||
|
||||
@@ -1032,7 +1032,7 @@ function draw.demo(P)
|
||||
local _=BLOCK_COLORS[skinSet[id]]
|
||||
gc_setColor(_[1],_[2],_[3],.3)
|
||||
_=blockImg[id]
|
||||
gc_draw(_,285,40*N-10,nil,16,nil,_:getWidth(),_:getHeight()*.5)
|
||||
gc_draw(_,285,40*N-10,nil,8,nil,_:getWidth(),_:getHeight()*.5)
|
||||
N=N+1
|
||||
end
|
||||
|
||||
|
||||
@@ -217,11 +217,11 @@ function Player:_deepDrop()
|
||||
end
|
||||
end
|
||||
function Player:act_moveLeft(auto)
|
||||
self.movDir=-1
|
||||
if not self.control then return end
|
||||
if not auto then
|
||||
self.ctrlCount=self.ctrlCount+1
|
||||
end
|
||||
self.movDir=-1
|
||||
if self.cur then
|
||||
if self.cur and not self:ifoverlap(self.cur.bk,self.curX-1,self.curY)then
|
||||
self:createMoveFX('left')
|
||||
@@ -239,11 +239,11 @@ function Player:act_moveLeft(auto)
|
||||
end
|
||||
end
|
||||
function Player:act_moveRight(auto)
|
||||
self.movDir=1
|
||||
if not self.control then return end
|
||||
if not auto then
|
||||
self.ctrlCount=self.ctrlCount+1
|
||||
end
|
||||
self.movDir=1
|
||||
if self.cur then
|
||||
if self.cur and not self:ifoverlap(self.cur.bk,self.curX+1,self.curY)then
|
||||
self:createMoveFX('right')
|
||||
@@ -1804,6 +1804,17 @@ do
|
||||
VOC.play(clearVoice[cc],CHN)
|
||||
end
|
||||
|
||||
--PC/HPC check
|
||||
if clear and cc>=#C.bk then
|
||||
if CY==1 then
|
||||
piece.pc=true
|
||||
piece.special=true
|
||||
elseif cc>1 or self.field[#self.field].garbage then
|
||||
piece.hpc=true
|
||||
piece.special=true
|
||||
end
|
||||
end
|
||||
|
||||
--Normal clear,reduce B2B point
|
||||
if not piece.special then
|
||||
self.b2b=max(self.b2b-250,0)
|
||||
@@ -1824,40 +1835,34 @@ do
|
||||
cscore=cscore+min(50*cmb,500)*(2*cc-1)
|
||||
end
|
||||
|
||||
--PC/HPC
|
||||
if clear and cc>=#C.bk then
|
||||
if CY==1 then
|
||||
self:showText(text.PC,0,-80,50,'flicker')
|
||||
atk=max(atk,min(8+Stat.pc*2,16))
|
||||
exblock=exblock+2
|
||||
sendTime=sendTime+120
|
||||
if Stat.row+cc>4 then
|
||||
self.b2b=self.b2b+800
|
||||
cscore=cscore+300*min(6+Stat.pc,10)
|
||||
else
|
||||
cscore=cscore+626
|
||||
end
|
||||
Stat.pc=Stat.pc+1
|
||||
if self.sound then
|
||||
SFX.play('pc')
|
||||
VOC.play('perfect_clear',CHN)
|
||||
end
|
||||
piece.pc=true
|
||||
piece.special=true
|
||||
elseif cc>1 or self.field[#self.field].garbage then
|
||||
self:showText(text.HPC,0,-80,50,'fly')
|
||||
atk=atk+4
|
||||
exblock=exblock+2
|
||||
sendTime=sendTime+60
|
||||
self.b2b=self.b2b+100
|
||||
--PC/HPC effect
|
||||
if piece.pc then
|
||||
self:showText(text.PC,0,-80,50,'flicker')
|
||||
atk=max(atk,min(8+Stat.pc*2,16))
|
||||
exblock=exblock+2
|
||||
sendTime=sendTime+120
|
||||
if Stat.row+cc>4 then
|
||||
self.b2b=self.b2b+800
|
||||
cscore=cscore+300*min(6+Stat.pc,10)
|
||||
else
|
||||
cscore=cscore+626
|
||||
Stat.hpc=Stat.hpc+1
|
||||
if self.sound then
|
||||
SFX.play('pc')
|
||||
VOC.play('half_clear',CHN)
|
||||
end
|
||||
piece.hpc=true
|
||||
piece.special=true
|
||||
end
|
||||
Stat.pc=Stat.pc+1
|
||||
if self.sound then
|
||||
SFX.play('pc')
|
||||
VOC.play('perfect_clear',CHN)
|
||||
end
|
||||
elseif piece.hpc then
|
||||
self:showText(text.HPC,0,-80,50,'fly')
|
||||
atk=atk+4
|
||||
exblock=exblock+2
|
||||
sendTime=sendTime+60
|
||||
self.b2b=self.b2b+100
|
||||
cscore=cscore+626
|
||||
Stat.hpc=Stat.hpc+1
|
||||
if self.sound then
|
||||
SFX.play('pc')
|
||||
VOC.play('half_clear',CHN)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -976,7 +976,7 @@ local userG={
|
||||
-- collectgarbage=collectgarbage,
|
||||
|
||||
math={},string={},table={},bit={},coroutine={},
|
||||
debug={"No way."},package={"No way."},io={"No way."},os={"No way."},
|
||||
debug={},package={},io={},os={},
|
||||
}
|
||||
function userG.print(...)
|
||||
local args,L={...},{}
|
||||
@@ -999,6 +999,11 @@ TABLE.complete(string,userG.string)userG.string.dump=nil
|
||||
TABLE.complete(table,userG.table)
|
||||
TABLE.complete(bit,userG.bit)
|
||||
TABLE.complete(coroutine,userG.coroutine)
|
||||
local dangerousLibMeta={__index=function()error("No way.")end}
|
||||
setmetatable(userG.debug,dangerousLibMeta)
|
||||
setmetatable(userG.package,dangerousLibMeta)
|
||||
setmetatable(userG.io,dangerousLibMeta)
|
||||
setmetatable(userG.os,dangerousLibMeta)
|
||||
|
||||
--Puzzle box
|
||||
local first_key={}
|
||||
|
||||
@@ -76,7 +76,7 @@ local function _search()
|
||||
end
|
||||
|
||||
function scene.sceneInit()
|
||||
dict=require("parts.language.dict_"..(SETTING.locale:find'zh'and'zh'or'en'))
|
||||
dict=require("parts.language.dict_"..(SETTING.locale:find'zh'and'zh'or SETTING.locale:find'ja'and'ja'or'en'))
|
||||
_scanDict(dict)
|
||||
|
||||
inputBox:clear()
|
||||
@@ -207,7 +207,7 @@ function scene.draw()
|
||||
local r=TIME()*2
|
||||
local R=int(r)%7+1
|
||||
gc.setColor(1,1,1,1-abs(r%1*2-1))
|
||||
gc.draw(TEXTURE.miniBlock[R],821,140,TIME()*10%6.2832,15,15,DSCP[R][0][2]+.5,#BLOCKS[R][0]-DSCP[R][0][1]-.5)
|
||||
gc.draw(TEXTURE.miniBlock[R],821,140,TIME()*10%6.2832,7,7,2*DSCP[R][0][2]+1,2*(#BLOCKS[R][0]-DSCP[R][0][1])-1)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -113,6 +113,7 @@ local loadingThread=coroutine.wrap(function()
|
||||
VOC.play('welcome')
|
||||
THEME.fresh()
|
||||
LOADED=true
|
||||
saveStats()
|
||||
Z.setPowerInfo(SETTING.powerInfo)
|
||||
return'finish'
|
||||
end)
|
||||
|
||||
@@ -281,7 +281,7 @@ function scene.draw()
|
||||
gc.push('transform')
|
||||
gc.scale((3-2*timer2)*timer2)
|
||||
gc.setColor(.97,.97,.97,timer2*(.5+.3*sin(TIME()*6.26)))
|
||||
GC.regularPolygon('line',0,0,120,6,8)
|
||||
GC.regRoundPolygon('line',0,0,120,6,8)
|
||||
gc.setColor(chartColor[1],chartColor[2],chartColor[3],timer2*.626)
|
||||
for i=1,9,2 do
|
||||
gc.polygon('fill',0,0,val[i],val[i+1],val[i+2],val[i+3])
|
||||
@@ -350,13 +350,13 @@ scene.widgetList={
|
||||
WIDGET.newKey{name='quit', x=290,y=540,w=300,h=70,code=pressKey'q'},
|
||||
WIDGET.newKey{name='tas', x=290,y=620,w=240,h=50,code=pressKey't',hideF=function()return not SETTING.allowTAS or GAME.tasUsed or GAME.result or GAME.replaying end},
|
||||
WIDGET.newKey{name='page_prev',x=500,y=390,w=70,code=pressKey'tab',
|
||||
fText=GC.DO{70,70,{'setLW',2}, {'dRPol',33,35,32,3,6,3.142},{'dRPol',45,35,32,3,6,3.142}},
|
||||
fShade=GC.DO{70,70,{'setCL',1,1,1,.4},{'draw',GC.DO{70,70,{'setCL',1,1,1,1},{'fRPol',33,35,32,3,6,3.142},{'fRPol',45,35,32,3,6,3.142}}}},
|
||||
fText=GC.DO{70,70,{'setLW',2}, {'dRRPol',33,35,32,3,6,3.142},{'dRRPol',45,35,32,3,6,3.142}},
|
||||
fShade=GC.DO{70,70,{'setCL',1,1,1,.4},{'draw',GC.DO{70,70,{'setCL',1,1,1,1},{'fRRPol',33,35,32,3,6,3.142},{'fRRPol',45,35,32,3,6,3.142}}}},
|
||||
hideF=function()return PLAYERS[1].frameRun<=180 end,
|
||||
},
|
||||
WIDGET.newKey{name='page_next',x=1230,y=390,w=70,code=pressKey'Stab',
|
||||
fText=GC.DO{70,70,{'setLW',2}, {'dRPol',37,35,32,3,6},{'dRPol',25,35,32,3,6}},
|
||||
fShade=GC.DO{70,70,{'setCL',1,1,1,.4},{'draw',GC.DO{70,70,{'setCL',1,1,1,1},{'fRPol',37,35,32,3,6},{'fRPol',25,35,32,3,6}}}},
|
||||
fText=GC.DO{70,70,{'setLW',2}, {'dRRPol',37,35,32,3,6},{'dRRPol',25,35,32,3,6}},
|
||||
fShade=GC.DO{70,70,{'setCL',1,1,1,.4},{'draw',GC.DO{70,70,{'setCL',1,1,1,1},{'fRRPol',37,35,32,3,6},{'fRRPol',25,35,32,3,6}}}},
|
||||
hideF=function()return PLAYERS[1].frameRun<=180 end,
|
||||
},
|
||||
WIDGET.newKey{name='replay', x=865,y=165,w=200,h=40,font=25,code=pressKey'p',hideF=function()return not(GAME.result or GAME.replaying)or #PLAYERS>1 end},
|
||||
|
||||
@@ -16,10 +16,10 @@ do
|
||||
gc.setColor(1,1,1)
|
||||
for i=1,29 do
|
||||
local b=BLOCKS[i][0]
|
||||
TEXTURE.miniBlock[i]=NSC(#b[1],#b)
|
||||
TEXTURE.miniBlock[i]=NSC(#b[1]*2,#b*2)
|
||||
for y=1,#b do for x=1,#b[1]do
|
||||
if b[y][x]then
|
||||
gc.rectangle('fill',x-1,#b-y,1,1)
|
||||
gc.rectangle('fill',2*(x-1),2*(#b-y),2,2)
|
||||
end
|
||||
end end
|
||||
end
|
||||
|
||||
@@ -1,30 +1,27 @@
|
||||
return[=[
|
||||
未来小游戏:
|
||||
Tetro-1010(2C2N, 重力)
|
||||
Tetra-link(桌游)
|
||||
坦克大战; 扫雷; 接水管
|
||||
其他未来内容:
|
||||
模式包系统; 新模组系统; 加速下落; spike相关统计数据
|
||||
实时统计数据可视化; 教学关脚本语言; 从录像继续
|
||||
等级系统; 场地格边缘线; 模式数据分析; 高级自定义序列
|
||||
成就系统; 手势操作; C2连击; 特殊控件(虚拟摇杆等)
|
||||
组队战; 方块位移/旋转动画; 更细节的DAS选项; 拓展主题系统
|
||||
更自由的攻击系统; 更多消除方式; 可调场地宽度;
|
||||
task-Z(新AI); 自适应UI; 新联网游戏场景切换逻辑
|
||||
未来计划:
|
||||
R E M A K E
|
||||
|
||||
0.17.2:
|
||||
新增:
|
||||
改动:
|
||||
修复:
|
||||
倒计时时不能充das #610
|
||||
master_g模式的一些细节问题
|
||||
0.17.1: 苏醒 Wake Up
|
||||
新增:
|
||||
全新模式选择界面(未完善,未来会增加更多便利功能)
|
||||
新模式:master_g(NOT_A_ROBOT移植)
|
||||
新皮肤:pixel(by C₂₉H₂₅N₃O₅)
|
||||
新语言:Bahasa Indonesia(by NOT_A_ROBOT)
|
||||
新语言:日本語(by sakurw & Airun)
|
||||
新语言:日本語(by sakurw & Airun & 幽灵3383)
|
||||
新小程序:Stopwatch, Mahjong(无和牌检测)
|
||||
新模式:1~3连块40行(by NOT_A_ROBOT) #578
|
||||
新BGM:lounge(暂未使用, by Hailey (cudsys) & MrZ)
|
||||
更强的CC(会主动allspin了, by Blari'o) #579
|
||||
更强的CC(会主动allspin了, by Gompyn) #579
|
||||
改动:
|
||||
修改选择模式音效
|
||||
重做staff表
|
||||
更新字体
|
||||
移除yygq语言
|
||||
优化皮肤设置页面交互效果
|
||||
换新miya立绘,给不同立绘添加不同点击动画
|
||||
@@ -55,12 +52,15 @@ return[=[
|
||||
经典模式h和u难度没有干旱计数器 #546
|
||||
自定义场地16号色的方块名位置显示错误
|
||||
联网对战结算的l'pm公式错写成lpm的
|
||||
PC时最后一块若非特殊消除会先扣除b2b点数
|
||||
录像界面导入导出按钮隐藏状态错误
|
||||
登录界面读取本地账号密码数据错误
|
||||
经典-困难模式切换速度的时机错误
|
||||
回合制开关玩家控制的问题
|
||||
策略堆叠模式评级标准不当
|
||||
云存档/读档的一处小问题
|
||||
部分场景文本重叠问题
|
||||
说明书的一处小问题
|
||||
deepdrop坏了
|
||||
混战模式坏了
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ for i=1,29 do
|
||||
local img=TEXTURE.miniBlock[i]
|
||||
defaultAvatar[i]=GC.DO{128,128,
|
||||
{'clear',.1,.1,.1},
|
||||
{'draw',img,63,63,.2,30,30,img:getWidth()/2,img:getHeight()/2},
|
||||
{'draw',img,63,63,.2,15,15,img:getWidth()/2,img:getHeight()/2},
|
||||
}
|
||||
end
|
||||
local errorAvatar=GC.DO{128,128,
|
||||
|
||||
10
version.lua
10
version.lua
@@ -1,7 +1,7 @@
|
||||
return{
|
||||
["apkCode"]=427,
|
||||
["code"]=1701,
|
||||
["string"]="V0.17.1",
|
||||
["room"]="ver A-3",
|
||||
["name"]="苏醒 Wake Up",
|
||||
["apkCode"]=430,
|
||||
["code"]=1702,
|
||||
["string"]="V0.17.2",
|
||||
["room"]="ver A-5",
|
||||
["name"]="",
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user