From 41d85e1f36f69bb372202e3636616ca9146657f1 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Wed, 14 Apr 2021 14:23:11 +0800
Subject: [PATCH 01/48] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=BC=BAhpc=E6=94=BB=E5=87=BB=E5=8A=9B(2?=
=?UTF-8?q?=E2=86=924)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/manual_en.lua | 2 +-
parts/language/manual_zh.lua | 2 +-
parts/player/player.lua | 133 +++++++++++++++++++----------------
3 files changed, 73 insertions(+), 64 deletions(-)
diff --git a/parts/language/manual_en.lua b/parts/language/manual_en.lua
index 72d2a01b..d027467e 100644
--- a/parts/language/manual_en.lua
+++ b/parts/language/manual_en.lua
@@ -33,7 +33,7 @@ Attack system:
Special line clears will the increase B2B gauge, making later special line clears have either a B2B or B2B2B bonus (see below)
Half 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 +2, Extra Blocking +2
+ 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,
diff --git a/parts/language/manual_zh.lua b/parts/language/manual_zh.lua
index 239b39e8..34831e1b 100644
--- a/parts/language/manual_zh.lua
+++ b/parts/language/manual_zh.lua
@@ -27,7 +27,7 @@ spin判定:
B2B攻击+1
B3B攻击+50%,+1额外抵挡
特殊消除会增加B2B点数,让之后的特殊消除获得B2B(B3B)增益(详细说明见下文)
- 半全消("下方有剩余方块"的全消,如果是I消1行则必须不剩余玩家放置的方块):伤害+2,额外抵挡+2
+ 半全消("下方有剩余方块"的全消,如果是I消1行则必须不剩余玩家放置的方块):伤害+4,额外抵挡+2
全消:全消伤害为8~16(本局内递增2),和上述其他伤害取大,然后+2额外抵挡(注:本局消行数>4时会将B2B点数拉满)
连击:每次连击给予上述攻击[连击数*25%(上限12连)(如果只消一行就是15%)]的加成,>=3次时再额外加1攻击
根据上述规则计算后,向下取整,攻击打出
diff --git a/parts/player/player.lua b/parts/player/player.lua
index 163ddcfc..6a4c8253 100644
--- a/parts/player/player.lua
+++ b/parts/player/player.lua
@@ -955,7 +955,7 @@ do--Player.drop(self)--Place piece
local CHN=VOC.getFreeChannel()
self.dropTime[11]=ins(self.dropTime,1,GAME.frame)--Update speed dial
local ENV=self.gameEnv
- local STAT=self.stat
+ local Stat=self.stat
local piece=self.lastPiece
local finish
@@ -974,7 +974,7 @@ do--Player.drop(self)--Place piece
--Tri-corner spin check
if self.spinLast then
if C.id<6 then
- local x,y=CX+self.cur.sc[2],CY+self.cur.sc[1]
+ local x,y=CX+C.sc[2],CY+C.sc[1]
local c=0
if self:solid(x-1,y+1)then c=c+1 end
if self:solid(x+1,y+1)then c=c+1 end
@@ -1100,15 +1100,17 @@ do--Player.drop(self)--Place piece
end
end
- --Cancel no-sense clearing FX
- _=#self.clearingRow
- while _>0 and self.clearingRow[_]>#self.field do
- self.clearingRow[_]=nil
- _=_-1
+ --Cancel top clearing FX
+ for i=#self.clearingRow,1,-1 do
+ if self.clearingRow[i]>#self.field then
+ rem(self.clearingRow)
+ else
+ break
+ end
end
if self.clearingRow[1]then
self.falling=ENV.fall
- elseif cc>=#C.bk then
+ else
clear=true
end
@@ -1117,16 +1119,16 @@ do--Player.drop(self)--Place piece
if not finesse then
if dospin then self.ctrlCount=self.ctrlCount-2 end--Allow 2 more step for roof-less spin
local id=C.id
- local d=self.ctrlCount-finesseList[id][self.cur.dir+1][CX]
+ local d=self.ctrlCount-finesseList[id][C.dir+1][CX]
finePts=d<=0 and 5 or max(3-d,0)
else
finePts=5
end
piece.finePts=finePts
- STAT.finesseRate=STAT.finesseRate+finePts
+ Stat.finesseRate=Stat.finesseRate+finePts
if finePts<5 then
- STAT.extraPiece=STAT.extraPiece+1
+ Stat.extraPiece=Stat.extraPiece+1
if ENV.fineKill then
finish=true
end
@@ -1164,7 +1166,7 @@ do--Player.drop(self)--Place piece
atk=b2bATK[cc]+cc*.5
exblock=exblock+1
cscore=cscore*2
- STAT.b3b=STAT.b3b+1
+ Stat.b3b=Stat.b3b+1
if self.sound then
VOC.play("b3b",CHN)
end
@@ -1172,7 +1174,7 @@ do--Player.drop(self)--Place piece
self:showText(text.b2b..text.block[C.name]..text.spin.." "..text.clear[cc],0,-30,35,"spin")
atk=b2bATK[cc]
cscore=cscore*1.2
- STAT.b2b=STAT.b2b+1
+ Stat.b2b=Stat.b2b+1
if self.sound then
VOC.play("b2b",CHN)
end
@@ -1207,7 +1209,7 @@ do--Player.drop(self)--Place piece
sendTime=100
exblock=exblock+1
cscore=cscore*1.8
- STAT.b3b=STAT.b3b+1
+ Stat.b3b=Stat.b3b+1
if self.sound then
VOC.play("b3b",CHN)
end
@@ -1216,7 +1218,7 @@ do--Player.drop(self)--Place piece
sendTime=80
atk=3*cc-7
cscore=cscore*1.3
- STAT.b2b=STAT.b2b+1
+ Stat.b2b=Stat.b2b+1
if self.sound then
VOC.play("b2b",CHN)
end
@@ -1258,37 +1260,39 @@ do--Player.drop(self)--Place piece
end
--PC/HPC
- if clear and #self.field==0 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=1000
- cscore=cscore+300*min(6+STAT.pc,10)
- else
+ if clear then
+ if #self.field==0 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=1000
+ cscore=cscore+300*min(6+Stat.pc,10)
+ else
+ cscore=cscore+626
+ end
+ Stat.pc=Stat.pc+1
+ if self.sound then
+ SFX.play("clear")
+ VOC.play("perfect_clear",CHN)
+ end
+ piece.pc=true
+ piece.special=true
+ elseif cc>=#C.bk and(cc>1 or #self.field==self.garbageBeneath)then
+ self:showText(text.HPC,0,-80,50,"fly")
+ atk=atk+4
+ exblock=exblock+2
+ sendTime=sendTime+60
cscore=cscore+626
+ Stat.hpc=Stat.hpc+1
+ if self.sound then
+ SFX.play("clear")
+ VOC.play("half_clear",CHN)
+ end
+ piece.hpc=true
+ piece.special=true
end
- STAT.pc=STAT.pc+1
- if self.sound then
- SFX.play("clear")
- VOC.play("perfect_clear",CHN)
- end
- piece.pc=true
- piece.special=true
- elseif clear and(cc>1 or #self.field==self.garbageBeneath)then
- self:showText(text.HPC,0,-80,50,"fly")
- atk=atk+2
- exblock=exblock+2
- sendTime=sendTime+60
- cscore=cscore+626
- STAT.hpc=STAT.hpc+1
- if self.sound then
- SFX.play("clear")
- VOC.play("half_clear",CHN)
- end
- piece.hpc=true
- piece.special=true
end
if self.b2b>1000 then self.b2b=1000 end
@@ -1386,13 +1390,18 @@ do--Player.drop(self)--Place piece
end
--Speed bonus
- if self.dropSpeed>60 then
- cscore=cscore*(.9+self.dropSpeed/600)
- end
+ if self.dropSpeed>60 then cscore=cscore*(.9+self.dropSpeed/600)end
cscore=int(cscore)
if ENV.score then
- self:showText(cscore,(self.curX+self.cur.sc[2]-5.5)*30,(10-self.curY-self.cur.sc[1])*30+self.fieldBeneath+self.fieldUp,40-600/(cscore+20),"score",2)
+ self:showText(
+ cscore,
+ (self.curX+C.sc[2]-5.5)*30,
+ (10-self.curY-C.sc[1])*30+self.fieldBeneath+self.fieldUp,
+ 40-600/(cscore+20),
+ "score",
+ 2
+ )
end
piece.row,piece.dig=cc,gbcc
@@ -1436,33 +1445,33 @@ do--Player.drop(self)--Place piece
end
--Update stat
- STAT.score=STAT.score+cscore
- STAT.piece=STAT.piece+1
- STAT.row=STAT.row+cc
- STAT.maxFinesseCombo=max(STAT.maxFinesseCombo,self.finesseCombo)
- STAT.maxCombo=max(STAT.maxCombo,self.combo)
+ Stat.score=Stat.score+cscore
+ Stat.piece=Stat.piece+1
+ Stat.row=Stat.row+cc
+ Stat.maxFinesseCombo=max(Stat.maxFinesseCombo,self.finesseCombo)
+ Stat.maxCombo=max(Stat.maxCombo,self.combo)
if atk>0 then
- STAT.atk=STAT.atk+atk
+ Stat.atk=Stat.atk+atk
if send>0 then
- STAT.send=STAT.send+int(send)
+ Stat.send=Stat.send+int(send)
end
if off>0 then
- STAT.off=STAT.off+off
+ Stat.off=Stat.off+off
end
end
if gbcc>0 then
- STAT.dig=STAT.dig+gbcc
+ Stat.dig=Stat.dig+gbcc
if atk>0 then
- STAT.digatk=STAT.digatk+atk*gbcc/cc
+ Stat.digatk=Stat.digatk+atk*gbcc/cc
end
end
local n=C.name
if dospin then
- _=STAT.spin[n] _[cc+1]=_[cc+1]+1--Spin[1~25][0~4]
- _=STAT.spins _[cc+1]=_[cc+1]+1--Spin[0~4]
+ _=Stat.spin[n] _[cc+1]=_[cc+1]+1--Spin[1~25][0~4]
+ _=Stat.spins _[cc+1]=_[cc+1]+1--Spin[0~4]
elseif cc>0 then
- _=STAT.clear[n] _[cc]=_[cc]+1--Clear[1~25][1~5]
- _=STAT.clears _[cc]=_[cc]+1--Clear[1~5]
+ _=Stat.clear[n] _[cc]=_[cc]+1--Clear[1~25][1~5]
+ _=Stat.clears _[cc]=_[cc]+1--Clear[1~5]
end
if finish then
From baf97a90a1e953d23e588679380595c58b63a8b6 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Wed, 14 Apr 2021 14:53:42 +0800
Subject: [PATCH 02/48] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/player/init.lua | 24 ++++-----
parts/scenes/net_game.lua | 26 ++++-----
parts/scenes/net_menu.lua | 33 ++++++------
parts/scenes/savedata.lua | 99 ++++++++++++++++++-----------------
parts/scenes/setting_game.lua | 17 +++---
5 files changed, 103 insertions(+), 96 deletions(-)
diff --git a/parts/player/init.lua b/parts/player/init.lua
index 98eb955e..244e43c5 100644
--- a/parts/player/init.lua
+++ b/parts/player/init.lua
@@ -97,20 +97,21 @@ local function newEmptyPlayer(id,mini)
P.x,P.y,P.size=0,0,1
P.frameColor=0
- P.mini=mini--If draw in small mode
-
--Set these at Player:setPosition()
-- P.fieldX,P.fieldY=...
-- P.centerX,P.centerY=...
-- P.absFieldX,P.absFieldY=...
- if P.mini then
+ --If draw in small mode
+ P.mini=mini
+ if mini then
P.canvas=love.graphics.newCanvas(60,120)
- P.frameWait=rnd(30,120)
+ P.frameWait=rnd(26,62)
P.draw=PLY.draw.small
else
P.draw=PLY.draw.norm
end
+
P.randGen=love.math.newRandomGenerator(GAME.seed)
P.alive=true
@@ -323,15 +324,14 @@ local function applyGameEnv(P)--Finish gameEnv processing
ENV.splashFX=false
ENV.shakeFX=false
ENV.text=false
- else
- if ENV.lockFX==0 then ENV.lockFX=false end
- if ENV.dropFX==0 then ENV.dropFX=false end
- if ENV.moveFX==0 then ENV.moveFX=false end
- if ENV.clearFX==0 then ENV.clearFX=false end
- if ENV.splashFX==0 then ENV.splashFX=false end
- if ENV.shakeFX==0 then ENV.shakeFX=false end
- if ENV.atkFX==0 then ENV.atkFX=false end
end
+ if ENV.lockFX==0 then ENV.lockFX=false end
+ if ENV.dropFX==0 then ENV.dropFX=false end
+ if ENV.moveFX==0 then ENV.moveFX=false end
+ if ENV.clearFX==0 then ENV.clearFX=false end
+ if ENV.splashFX==0 then ENV.splashFX=false end
+ if ENV.shakeFX==0 then ENV.shakeFX=false end
+ if ENV.atkFX==0 then ENV.atkFX=false end
if ENV.ghost==0 then ENV.ghost=false end
if ENV.center==0 then ENV.center=false end
end
diff --git a/parts/scenes/net_game.lua b/parts/scenes/net_game.lua
index d84a45cc..88ecbbe4 100644
--- a/parts/scenes/net_game.lua
+++ b/parts/scenes/net_game.lua
@@ -271,19 +271,21 @@ function scene.draw()
end
scene.widgetList={
textBox,
- WIDGET.newKey{name="ready",x=900,y=560,w=400,h=100,color="lB",font=40,code=pressKey"space",hide=function()
- return
- playing or
- not textBox.hide or
- PLY_NET[1].ready or
- NET.getlock("ready")
+ WIDGET.newKey{name="ready",x=900,y=560,w=400,h=100,color="lB",font=40,code=pressKey"space",
+ hide=function()
+ return
+ playing or
+ not textBox.hide or
+ PLY_NET[1].ready or
+ NET.getlock("ready")
end},
- WIDGET.newKey{name="cancel",x=900,y=560,w=400,h=100,color="grey",font=40,code=pressKey"space",hide=function()
- return
- playing or
- not textBox.hide or
- not PLY_NET[1].ready or
- NET.getlock("ready")
+ WIDGET.newKey{name="cancel",x=900,y=560,w=400,h=100,color="grey",font=40,code=pressKey"space",
+ hide=function()
+ return
+ playing or
+ not textBox.hide or
+ not PLY_NET[1].ready or
+ NET.getlock("ready")
end},
WIDGET.newKey{name="hideChat",fText="...",x=380,y=35,w=60,font=35,code=pressKey"\\"},
WIDGET.newKey{name="quit",fText="X",x=900,y=35,w=60,font=40,code=pressKey"escape"},
diff --git a/parts/scenes/net_menu.lua b/parts/scenes/net_menu.lua
index 846ce2ad..5ff68194 100644
--- a/parts/scenes/net_menu.lua
+++ b/parts/scenes/net_menu.lua
@@ -12,24 +12,25 @@ end
scene.widgetList={
WIDGET.newButton{name="ffa", x=640, y=200,w=350,h=120,color="black",font=40,code=NULL},
- WIDGET.newButton{name="rooms", x=640, y=360,w=350,h=120, font=40,code=goScene"net_rooms"},
+ WIDGET.newButton{name="rooms", x=640, y=360,w=350,h=120,font=40,code=goScene"net_rooms"},
WIDGET.newButton{name="chat", x=640, y=540,w=350,h=120,color="black",font=40,code=NULL},
- WIDGET.newButton{name="logout", x=1140, y=70,w=180,h=70,color="dR",code=function()
- if TIME()-lastLogoutTime<1 then
- if USER.uid then
- NET.wsclose_play()
- NET.wsclose_user()
- USER.username=false
- USER.uid=false
- USER.authToken=false
- FILE.save(USER,"conf/user","q")
- SCN.back()
+ WIDGET.newButton{name="logout", x=1140, y=70,w=180,h=70,color="dR",
+ code=function()
+ if TIME()-lastLogoutTime<1 then
+ if USER.uid then
+ NET.wsclose_play()
+ NET.wsclose_user()
+ USER.username=false
+ USER.uid=false
+ USER.authToken=false
+ FILE.save(USER,"conf/user","q")
+ SCN.back()
+ end
+ else
+ LOG.print(text.sureQuit,COLOR.orange)
+ lastLogoutTime=TIME()
end
- else
- LOG.print(text.sureQuit,COLOR.orange)
- lastLogoutTime=TIME()
- end
- end},
+ end},
WIDGET.newButton{name="back", x=1140, y=640,w=170,h=80, font=40,code=backScene},
}
diff --git a/parts/scenes/savedata.lua b/parts/scenes/savedata.lua
index 5daeca7f..ace832b8 100644
--- a/parts/scenes/savedata.lua
+++ b/parts/scenes/savedata.lua
@@ -34,53 +34,57 @@ scene.widgetList={
WIDGET.newButton{name="exportSetting", x=790,y=150,w=280,h=100,color="lGreen",font=25,code=function()dumpCB(SETTING)end},
WIDGET.newButton{name="exportVK", x=1090,y=150,w=280,h=100,color="lGreen",font=25,code=function()dumpCB(VK_org)end},
- WIDGET.newButton{name="importUnlock", x=190,y=300,w=280,h=100,color="lBlue",font=25,code=function()
- local D=parseCB()
- if D then
- TABLE.update(D,RANKS)
- FILE.save(RANKS,"conf/unlock")
- LOG.print(text.importSuccess,"message")
- else
- LOG.print(text.dataCorrupted,"warn")
- end
- end},
- WIDGET.newButton{name="importData", x=490,y=300,w=280,h=100,color="lBlue",font=25,code=function()
- local D=parseCB()
- if D and D.version==STAT.version then
- TABLE.update(D,STAT)
- FILE.save(STAT,"conf/data")
- LOG.print(text.importSuccess,"message")
- else
- LOG.print(text.dataCorrupted,"warn")
- end
- end},
- WIDGET.newButton{name="importSetting", x=790,y=300,w=280,h=100,color="lBlue",font=25,code=function()
- local D=parseCB()
- if D then
- TABLE.update(D,SETTING)
- FILE.save(SETTING,"conf/settings")
- LOG.print(text.importSuccess,"message")
- else
- LOG.print(text.dataCorrupted,"warn")
- end
- end},
- WIDGET.newButton{name="importVK", x=1090,y=300,w=280,h=100,color="lBlue",font=25,code=function()
- local D=parseCB()
- if D then
- TABLE.update(D,VK_org)
- FILE.save(VK_org,"conf/virtualkey")
- LOG.print(text.importSuccess,"message")
- else
- LOG.print(text.dataCorrupted,"warn")
- end
- end},
-
- WIDGET.newButton{name="reset", x=640,y=460,w=280,h=100,color="lRed",font=40,code=function()
- scene.widgetList.reset.hide=true
- scene.widgetList.resetUnlock.hide=false
- scene.widgetList.resetRecord.hide=false
- scene.widgetList.resetData.hide=false
- end},
+ WIDGET.newButton{name="importUnlock", x=190,y=300,w=280,h=100,color="lBlue",font=25,
+ code=function()
+ local D=parseCB()
+ if D then
+ TABLE.update(D,RANKS)
+ FILE.save(RANKS,"conf/unlock")
+ LOG.print(text.importSuccess,"message")
+ else
+ LOG.print(text.dataCorrupted,"warn")
+ end
+ end},
+ WIDGET.newButton{name="importData", x=490,y=300,w=280,h=100,color="lBlue",font=25,
+ code=function()
+ local D=parseCB()
+ if D and D.version==STAT.version then
+ TABLE.update(D,STAT)
+ FILE.save(STAT,"conf/data")
+ LOG.print(text.importSuccess,"message")
+ else
+ LOG.print(text.dataCorrupted,"warn")
+ end
+ end},
+ WIDGET.newButton{name="importSetting", x=790,y=300,w=280,h=100,color="lBlue",font=25,
+ code=function()
+ local D=parseCB()
+ if D then
+ TABLE.update(D,SETTING)
+ FILE.save(SETTING,"conf/settings")
+ LOG.print(text.importSuccess,"message")
+ else
+ LOG.print(text.dataCorrupted,"warn")
+ end
+ end},
+ WIDGET.newButton{name="importVK", x=1090,y=300,w=280,h=100,color="lBlue",font=25,
+ code=function()
+ local D=parseCB()
+ if D then
+ TABLE.update(D,VK_org)
+ FILE.save(VK_org,"conf/virtualkey")
+ LOG.print(text.importSuccess,"message")
+ else
+ LOG.print(text.dataCorrupted,"warn")
+ end
+ end},
+ WIDGET.newButton{name="reset", x=640,y=460,w=280,h=100,color="lRed",font=40,
+ code=function()
+ scene.widgetList.reset.hide=true
+ scene.widgetList.resetUnlock.hide=false
+ scene.widgetList.resetRecord.hide=false
+ scene.widgetList.resetData.hide=false
+ end},
WIDGET.newButton{name="resetUnlock", x=340,y=460,w=280,h=100,color="red",
code=function()
love.filesystem.remove("conf/unlock")
@@ -106,7 +110,6 @@ scene.widgetList={
LOG.print("effected after restart game","message")
LOG.print("play one game to get data back","message")
end,hide=true},
-
WIDGET.newButton{name="back", x=640,y=620,w=200,h=80,font=40,code=backScene},
}
diff --git a/parts/scenes/setting_game.lua b/parts/scenes/setting_game.lua
index 2c0347af..7a7f0eef 100644
--- a/parts/scenes/setting_game.lua
+++ b/parts/scenes/setting_game.lua
@@ -34,15 +34,16 @@ scene.widgetList={
WIDGET.newSwitch{name="swap", x=1060, y=370, font=20,disp=SETval("swap"), code=SETrev("swap")},
WIDGET.newSwitch{name="fine", x=1060, y=430, font=20,disp=SETval("fine"), code=function()SETTING.fine=not SETTING.fine if SETTING.fine then SFX.play("finesseError",.6) end end},
WIDGET.newSwitch{name="appLock", x=1060, y=490, font=20,disp=SETval("appLock"), code=SETrev("appLock")},
- WIDGET.newSwitch{name="simpMode", x=1060, y=550, font=25,disp=SETval("simpMode"),code=function()
- SETTING.simpMode=not SETTING.simpMode
- for i=1,#SCN.stack,2 do
- if SCN.stack[i]=="main"or SCN.stack[i]=="main_simple"then
- SCN.stack[i]=SETTING.simpMode and"main_simple"or"main"
- break
+ WIDGET.newSwitch{name="simpMode", x=1060, y=550, font=25,disp=SETval("simpMode"),
+ code=function()
+ SETTING.simpMode=not SETTING.simpMode
+ for i=1,#SCN.stack,2 do
+ if SCN.stack[i]=="main"or SCN.stack[i]=="main_simple"then
+ SCN.stack[i]=SETTING.simpMode and"main_simple"or"main"
+ break
+ end
end
- end
- end},
+ end},
WIDGET.newButton{name="back", x=1140, y=640, w=170,h=80, font=40,code=backScene},
}
From 9b11399d486f7506f875f19d2c7a3baf9d220220 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Wed, 14 Apr 2021 18:23:42 +0800
Subject: [PATCH 03/48] =?UTF-8?q?=E5=90=AF=E7=94=A8ffa=E6=8C=89=E9=92=AE?=
=?UTF-8?q?=EF=BC=88=E6=9C=8D=E5=8A=A1=E5=99=A8=E8=BF=98=E6=9C=AA=E5=AE=9E?=
=?UTF-8?q?=E7=8E=B0=E8=AF=A5=E6=88=BF=E9=97=B4=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/scenes/net_menu.lua | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parts/scenes/net_menu.lua b/parts/scenes/net_menu.lua
index 5ff68194..cee6519e 100644
--- a/parts/scenes/net_menu.lua
+++ b/parts/scenes/net_menu.lua
@@ -11,7 +11,7 @@ function scene.sceneBack()
end
scene.widgetList={
- WIDGET.newButton{name="ffa", x=640, y=200,w=350,h=120,color="black",font=40,code=NULL},
+ WIDGET.newButton{name="ffa", x=640, y=200,w=350,h=120,font=40,code=function()NET.enterRoom("ffa")end},
WIDGET.newButton{name="rooms", x=640, y=360,w=350,h=120,font=40,code=goScene"net_rooms"},
WIDGET.newButton{name="chat", x=640, y=540,w=350,h=120,color="black",font=40,code=NULL},
WIDGET.newButton{name="logout", x=1140, y=70,w=180,h=70,color="dR",
From 9e07ee862caedd5d105e99e240d1f4b0a15515de Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Wed, 14 Apr 2021 18:46:58 +0800
Subject: [PATCH 04/48] =?UTF-8?q?=E4=BF=AE=E6=94=B9pc=E5=92=8Chpc=E5=AF=B9?=
=?UTF-8?q?b2b=E7=82=B9=E6=95=B0=E7=9A=84=E5=BD=B1=E5=93=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/manual_en.lua | 6 ++++--
parts/language/manual_zh.lua | 4 +++-
parts/player/player.lua | 3 ++-
3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/parts/language/manual_en.lua b/parts/language/manual_en.lua
index d027467e..3e105d43 100644
--- a/parts/language/manual_en.lua
+++ b/parts/language/manual_en.lua
@@ -32,12 +32,12 @@ Attack system:
Special line clears will the increase B2B gauge, making later special line clears have either a B2B or B2B2B bonus (see below)
- Half 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):
+ 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. (note: if lines cleared in this round >4, then B2B gauge will be completely filled)
+ 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.
@@ -63,6 +63,8 @@ Back to Back (B2B) gauge:
A regular line clear -250
Spin Single/Double/Triple/Techrash/Techrash+ + 50/100/180/800/1000 (x50% if Mini)
Techrash/Techrash+ + 150/200/...
+ PC when lines cleared in this round >4, +800
+ Hemi-PC, +100
Spin (0 lines) +20. Do note that the B2B gauge cannot exceed 800 using this method.
When gauge is above 800, a drop without clearing lines decreases it by 40, but cannot drop below 800
diff --git a/parts/language/manual_zh.lua b/parts/language/manual_zh.lua
index 34831e1b..37d0902a 100644
--- a/parts/language/manual_zh.lua
+++ b/parts/language/manual_zh.lua
@@ -28,7 +28,7 @@ spin判定:
B3B攻击+50%,+1额外抵挡
特殊消除会增加B2B点数,让之后的特殊消除获得B2B(B3B)增益(详细说明见下文)
半全消("下方有剩余方块"的全消,如果是I消1行则必须不剩余玩家放置的方块):伤害+4,额外抵挡+2
- 全消:全消伤害为8~16(本局内递增2),和上述其他伤害取大,然后+2额外抵挡(注:本局消行数>4时会将B2B点数拉满)
+ 全消:全消伤害为8~16(本局内递增2),和上述其他伤害取大,然后+2额外抵挡
连击:每次连击给予上述攻击[连击数*25%(上限12连)(如果只消一行就是15%)]的加成,>=3次时再额外加1攻击
根据上述规则计算后,向下取整,攻击打出
@@ -48,6 +48,8 @@ back to back(B2B)点数说明:
普通消除:-250
spin1~5:+[50/100/180/800/1000](mini变为原来50%)
消四/五/六:+[150/200/...]
+ 本局内消行数>4时全消:+800
+ 半全消:+100
空spin:+20,此法得到的点数不能超过800
当点数在800以上时空放一块-40(不低于800)
diff --git a/parts/player/player.lua b/parts/player/player.lua
index 6a4c8253..62c25616 100644
--- a/parts/player/player.lua
+++ b/parts/player/player.lua
@@ -1267,7 +1267,7 @@ do--Player.drop(self)--Place piece
exblock=exblock+2
sendTime=sendTime+120
if Stat.row+cc>4 then
- self.b2b=1000
+ self.b2b=self.b2b+800
cscore=cscore+300*min(6+Stat.pc,10)
else
cscore=cscore+626
@@ -1284,6 +1284,7 @@ do--Player.drop(self)--Place piece
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
From dd26376b3b6d975ed64c8aac80ff9ee77c29012c Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Wed, 14 Apr 2021 21:28:23 +0800
Subject: [PATCH 05/48] =?UTF-8?q?=E8=B0=83=E6=95=B4master-ph=E5=91=BD?=
=?UTF-8?q?=E6=95=B0=E5=A5=96=E5=8A=B1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/modes/master_phantasm.lua | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/parts/modes/master_phantasm.lua b/parts/modes/master_phantasm.lua
index c751d30a..73967268 100644
--- a/parts/modes/master_phantasm.lua
+++ b/parts/modes/master_phantasm.lua
@@ -85,7 +85,7 @@ return{
p=41
end
elseif T==62 then--Stage 5: survive without easy-fresh rule
- P.life=1
+ P.life=P.life+1
ENV.lock=13
ENV.wait=5
ENV.fall=5
@@ -113,7 +113,7 @@ return{
P.modeData.target=226
SFX.play("reach")
elseif T==226 then--Stage 8: final invisible
- P.life=P.life+2
+ P.life=P.life+1
ENV.bone=false
P:setInvisible(90)
From 138e59d74fb0a64b8fb1ec43be359e5db7247424 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Wed, 14 Apr 2021 21:28:41 +0800
Subject: [PATCH 06/48] =?UTF-8?q?=E4=BF=AE=E6=94=B9yygq=E8=AF=AD=E8=A8=80?=
=?UTF-8?q?=E7=9A=84=E5=AF=B9=E6=88=98=E8=83=9C=E5=88=A9=E6=96=87=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/lang_yygq.lua | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parts/language/lang_yygq.lua b/parts/language/lang_yygq.lua
index 2053ae5e..88f9187b 100644
--- a/parts/language/lang_yygq.lua
+++ b/parts/language/lang_yygq.lua
@@ -45,7 +45,7 @@ return{
createRoomSuccessed="创好了",
notReady="没有准备好",
beReady="准备好了",
- champion="爷爷是 $1",
+ champion="神仙是 $1",
stat={
"开了几次:",
From 199d05b910e4647fd803bcd3371f9179ee044c72 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Wed, 14 Apr 2021 22:13:11 +0800
Subject: [PATCH 07/48] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E8=B5=9E=E5=8A=A9?=
=?UTF-8?q?=E5=90=8D=E5=8D=95=E7=9A=84=E4=B8=80=E4=B8=AA=E5=90=8D=E5=AD=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/patron.lua | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parts/patron.lua b/parts/patron.lua
index eb3615ec..00380ce4 100644
--- a/parts/patron.lua
+++ b/parts/patron.lua
@@ -283,7 +283,7 @@ return{
color=C.grey,
},
{
- name="tech有养成系统了@6565",
+ name="tech有养成系统了@7065",
font=25,
color=C.grey,
},
From ee28bacf0c2f6cf1c4a1832f2d9c7bbe85eed1f1 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Wed, 14 Apr 2021 23:23:59 +0800
Subject: [PATCH 08/48] =?UTF-8?q?=E5=BE=AE=E8=B0=83=E4=B8=AD=E6=96=87tip?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/lang_zh.lua | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua
index bc6cde48..71efaac4 100644
--- a/parts/language/lang_zh.lua
+++ b/parts/language/lang_zh.lua
@@ -800,7 +800,7 @@ return{
"本游戏的一部分内容是国际合作的!",
"本游戏的B2B是气槽机制,和传统的开关机制不一样哦",
"本游戏可不是休闲游戏。",
- "本游戏内置了几个休(ying)闲(he)小游戏哦~去词典找找吧",
+ "本游戏内置了几个休(ying)闲(he)小游戏哦~入口就藏在这个菜单",
"必须要软降才能到达的位置都会判定为极简操作",
"别问游戏名怎么取的,问就是随便想的",
"不同人打40行最合适的方式不一样,s1w/63/散消/s2w...",
@@ -993,6 +993,7 @@ return{
"Tech也有节日主题了哦",
"Techmino = Technique + tetromino",
"Techmino n.铁壳米诺(游戏名)",
+ "Techmino shell了解一下",
"Techmino安卓下载",
"Techmino好玩!",
"Techmino有一个Nspire-CX版本!",
From 6c44808c1949c2f7ca34f0d67e5f2f7edcc3cae3 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Thu, 15 Apr 2021 00:40:49 +0800
Subject: [PATCH 09/48] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=EF=BC=8C=E5=BE=AE=E8=B0=83TRS=E4=B8=ADPQT5J5L5=E7=9A=84?=
=?UTF-8?q?=E8=B8=A2=E5=A2=99=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/kickList.lua | 496 +++++++++++++++++++++++----------------------
1 file changed, 252 insertions(+), 244 deletions(-)
diff --git a/parts/kickList.lua b/parts/kickList.lua
index 63ba3f83..d0953eb5 100644
--- a/parts/kickList.lua
+++ b/parts/kickList.lua
@@ -1,14 +1,15 @@
-local noKick,noKick_180,pushZero do
- local zero={0,0}
- local Zero={zero}
- noKick={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero}
- noKick_180={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero,[02]=Zero,[20]=Zero,[13]=Zero,[31]=Zero}
+local map={}for x=-4,4 do map[x]={}for y=-4,4 do map[x][y]={x,y}end end
+
+local noKickSet,noKickSet_180,pushZero do
+ local Zero={map[0][0]}
+ noKickSet={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero}
+ noKickSet_180={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero,[02]=Zero,[20]=Zero,[13]=Zero,[31]=Zero}
function pushZero(t)
for _,L in next,t do
if type(L)=="table"then
for _,v in next,L do
if not v[1]or v[1][1]~=0 or v[1][2]~=0 then
- table.insert(v,1,zero)
+ table.insert(v,1,map[0][0])
end
end
end
@@ -16,33 +17,40 @@ local noKick,noKick_180,pushZero do
end
end
-local collect do
- local map={}
- for x=-3,3 do map[x]={}for y=-3,3 do map[x][y]={x,y}end end
- function collect(T)--Make all vec point to the same vec
- if type(T)=="table"then
- for _,t in next,T do
- for k,vec in next,t do
- t[k]=map[vec[1]][vec[2]]
- end
- end
+--Convert vector string to table
+local function vecStrConv(list)
+ for k,vecStr in next,list do
+ list[k]=map[tonumber(vecStr:sub(1,2))][tonumber(vecStr:sub(3,4))]
+ end
+end
+
+--Make all vec point to the same vec
+local function collectSet(set)
+ if type(set)~="table"then return end
+ for _,list in next,set do
+ if type(list[1])=="string"then
+ vecStrConv(list)
end
end
end
-local function C_sym(L)--Use this if the block is centrosymmetry, *PTR!!!
+--Use this if the block is centrosymmetry, *PTR!!!
+local function centroSymSet(L)
L[23]=L[01]L[32]=L[10]
L[21]=L[03]L[12]=L[30]
L[20]=L[02]L[31]=L[13]
end
-local function flipList(O)--Use this to copy a symmetry list
+
+--Use this to copy a symmetry set
+local function flipList(O)
if not O then return end
local L={}
- for i=1,#O do
- L[i]={-O[i][1],O[i][2]}
+ for i,s in next,O do
+ L[i]=string.char(88-s:byte())..s:sub(2)
end
return L
end
+
local function reflect(a)
local b={}
b[03]=flipList(a[01])
@@ -80,48 +88,48 @@ do
}
TRS={
{
- [01]={{-1, 0},{-1, 1},{ 0,-2},{-1, 2},{ 0, 1}},
- [10]={{ 1, 0},{ 1,-1},{ 0, 2},{ 1,-2},{ 1,-2}},
- [03]={{ 1, 0},{ 1, 1},{ 0,-2},{ 1,-1},{ 1,-2}},
- [30]={{-1, 0},{-1,-1},{ 0, 2},{-1, 2},{ 0,-1}},
- [12]={{ 1, 0},{ 1,-1},{ 0, 2},{ 1, 2}},
- [21]={{-1, 0},{-1, 1},{ 0,-2},{-1,-2}},
- [32]={{-1, 0},{-1,-1},{ 0, 2},{-1, 2}},
- [23]={{ 1, 0},{ 1, 1},{ 0,-2},{ 1,-2}},
- [02]={{ 1, 0},{-1, 0},{ 0,-1},{ 0, 1}},
- [20]={{-1, 0},{ 1, 0},{ 0, 1},{ 0,-1}},
- [13]={{ 0,-1},{ 0, 1},{-1, 0},{ 0,-2}},
- [31]={{ 0, 1},{ 0,-1},{ 1, 0}},
+ [01]={"-1+0","-1+1","+0-2","-1+2","+0+1"},
+ [10]={"+1+0","+1-1","+0+2","+1-2","+1-2"},
+ [03]={"+1+0","+1+1","+0-2","+1-1","+1-2"},
+ [30]={"-1+0","-1-1","+0+2","-1+2","+0-1"},
+ [12]={"+1+0","+1-1","+0+2","+1+2"},
+ [21]={"-1+0","-1+1","+0-2","-1-2"},
+ [32]={"-1+0","-1-1","+0+2","-1+2"},
+ [23]={"+1+0","+1+1","+0-2","+1-2"},
+ [02]={"+1+0","-1+0","+0-1","+0+1"},
+ [20]={"-1+0","+1+0","+0+1","+0-1"},
+ [13]={"+0-1","+0+1","+0-2"},
+ [31]={"+0+1","+0-1","+0+2"},
},--Z
false,--S
{
- [01]={{-1, 0},{-1, 1},{ 1, 0},{ 0,-2},{ 1, 1}},
- [10]={{ 1, 0},{ 1,-1},{-1, 0},{ 0, 2},{ 1, 2}},
- [03]={{ 1, 0},{ 1, 1},{ 0,-2},{ 1,-2},{ 1,-1},{ 0, 1}},
- [30]={{-1, 0},{-1,-1},{ 0, 2},{-1, 2},{ 0,-1},{-1, 1}},
- [12]={{ 1, 0},{ 1,-1},{ 1, 1},{-1, 0},{ 0,-1},{ 0, 2},{ 1, 2}},
- [21]={{-1, 0},{-1, 1},{-1,-1},{ 1, 0},{ 0, 1},{ 0,-2},{-1,-2}},
- [32]={{-1, 0},{-1,-1},{ 1, 0},{ 0, 2},{-1, 2},{-1, 1}},
- [23]={{ 1, 0},{ 1,-1},{-1, 0},{ 1, 1},{ 0,-2},{ 1,-2}},
- [02]={{-1, 0},{ 1, 0},{ 0,-1},{ 0, 1}},
- [20]={{ 1, 0},{-1, 0},{ 0, 1},{ 0,-1}},
- [13]={{ 0,-1},{ 0, 1},{ 1, 0}},
- [31]={{ 0, 1},{ 0,-1},{-1, 0}},
+ [01]={"-1+0","-1+1","+1+0","+0-2","+1+1"},
+ [10]={"+1+0","+1-1","-1+0","+0+2","+1+2"},
+ [03]={"+1+0","+1+1","+0-2","+1-2","+1-1","+0+1"},
+ [30]={"-1+0","-1-1","+0+2","-1+2","+0-1","-1+1"},
+ [12]={"+1+0","+1-1","+1+1","-1+0","+0-1","+0+2","+1+2"},
+ [21]={"-1+0","-1+1","-1-1","+1+0","+0+1","+0-2","-1-2"},
+ [32]={"-1+0","-1-1","+1+0","+0+2","-1+2","-1+1"},
+ [23]={"+1+0","+1-1","-1+0","+1+1","+0-2","+1-2"},
+ [02]={"-1+0","+1+0","+0-1","+0+1"},
+ [20]={"+1+0","-1+0","+0+1","+0-1"},
+ [13]={"+0-1","+0+1","+1+0"},
+ [31]={"+0+1","+0-1","-1+0"},
},--J
false,--L
{
- [01]={{-1, 0},{-1, 1},{ 0,-2},{-1,-2},{ 0, 1}},
- [10]={{ 1, 0},{ 1,-1},{ 0, 2},{ 1, 2},{ 0,-1}},
- [03]={{ 1, 0},{ 1, 1},{ 0,-2},{ 1,-2},{ 0, 1}},
- [30]={{-1, 0},{-1,-1},{ 0, 2},{-1, 2},{ 0,-1}},
- [12]={{ 1, 0},{ 1,-1},{ 0,-1},{-1,-1},{ 0, 2},{ 1, 2}},
- [21]={{-1, 0},{ 0,-2},{-1,-2},{ 1, 1}},
- [32]={{-1, 0},{-1,-1},{ 0,-1},{ 1,-1},{ 0, 2},{-1, 2}},
- [23]={{ 1, 0},{ 0,-2},{ 1,-2},{-1, 1}},
- [02]={{-1, 0},{ 1, 0},{ 0, 1}},
- [20]={{ 1, 0},{-1, 0},{ 0,-1}},
- [13]={{ 0,-1},{ 0, 1},{ 1, 0},{ 0,-2},{ 0, 2}},
- [31]={{ 0,-1},{ 0, 1},{-1, 0},{ 0,-2},{ 0, 2}},
+ [01]={"-1+0","-1+1","+0-2","-1-2","+0+1"},
+ [10]={"+1+0","+1-1","+0+2","+1+2","+0-1"},
+ [03]={"+1+0","+1+1","+0-2","+1-2","+0+1"},
+ [30]={"-1+0","-1-1","+0+2","-1+2","+0-1"},
+ [12]={"+1+0","+1-1","+0-1","-1-1","+0+2","+1+2"},
+ [21]={"-1+0","+0-2","-1-2","+1+1"},
+ [32]={"-1+0","-1-1","+0-1","+1-1","+0+2","-1+2"},
+ [23]={"+1+0","+0-2","+1-2","-1+1"},
+ [02]={"-1+0","+1+0","+0+1"},
+ [20]={"+1+0","-1+0","+0-1"},
+ [13]={"+0-1","+0+1","+1+0","+0-2","+0+2"},
+ [31]={"+0-1","+0+1","-1+0","+0-2","+0+2"},
},--T
function(P,d)
if P.gameEnv.easyFresh then
@@ -162,111 +170,111 @@ do
end
end,--O
{
- [01]={{ 0, 1},{ 1, 0},{-2, 0},{-2,-1},{ 1, 2}},
- [10]={{ 2, 0},{-1, 0},{-1,-2},{ 2, 1},{ 0, 1}},
- [03]={{ 0, 1},{-1, 0},{ 2, 0},{ 2,-1},{-1, 2}},
- [30]={{-2, 0},{ 1, 0},{ 1,-2},{-2, 1},{ 0, 1}},
- [12]={{-1, 0},{ 2, 0},{ 2,-1},{ 0,-1},{-1, 2}},
- [21]={{-2, 0},{ 1, 0},{ 1,-2},{-2, 1},{ 0, 1}},
- [32]={{ 1, 0},{-2, 0},{-2,-1},{ 0,-1},{ 1, 2}},
- [23]={{ 2, 0},{-1, 0},{-1,-2},{ 2, 1},{ 0, 1}},
- [02]={{-1, 0},{ 1, 0},{ 0,-1},{ 0, 1}},
- [20]={{ 1, 0},{-1, 0},{ 0, 1},{ 0,-1}},
- [13]={{ 0,-1},{-1, 0},{ 1, 0},{ 0, 1}},
- [31]={{ 0,-1},{ 1, 0},{-1, 0},{ 0, 1}},
+ [01]={"+0+1","+1+0","-2+0","-2-1","+1+2"},
+ [10]={"+2+0","-1+0","-1-2","+2+1","+0+1"},
+ [03]={"+0+1","-1+0","+2+0","+2-1","-1+2"},
+ [30]={"-2+0","+1+0","+1-2","-2+1","+0+1"},
+ [12]={"-1+0","+2+0","+2-1","+0-1","-1+2"},
+ [21]={"-2+0","+1+0","+1-2","-2+1","+0+1"},
+ [32]={"+1+0","-2+0","-2-1","+0-1","+1+2"},
+ [23]={"+2+0","-1+0","-1-2","+2+1","+0+1"},
+ [02]={"-1+0","+1+0","+0-1","+0+1"},
+ [20]={"+1+0","-1+0","+0+1","+0-1"},
+ [13]={"+0-1","-1+0","+1+0","+0+1"},
+ [31]={"+0-1","+1+0","-1+0","+0+1"},
},--I
{
- [01]={{-1, 0},{ 0, 1},{ 1, 1},{ 0,-3},{ 0, 2},{ 0, 3},{-1, 2}},
- [10]={{ 1, 0},{ 0,-1},{-1,-1},{ 0,-2},{ 0,-3},{ 0, 3},{ 1,-2}},
- [03]={{ 1, 0},{ 0,-3},{ 0, 1},{ 0, 2},{ 0, 3},{ 1, 2}},
- [30]={{-1, 0},{ 0, 1},{ 0,-2},{ 0,-3},{ 0, 3},{-1,-2}},
+ [01]={"-1+0","+0+1","+1+1","+0-3","+0+2","+0+3","-1+2"},
+ [10]={"+1+0","+0-1","-1-1","+0-2","+0-3","+0+3","+1-2"},
+ [03]={"+1+0","+0-3","+0+1","+0+2","+0+3","+1+2"},
+ [30]={"-1+0","+0+1","+0-2","+0-3","+0+3","-1-2"},
},--Z5
false,--S5
{
- [01]={{-1, 0},{-1, 1},{ 0,-2},{-1,-2},{-1,-1},{ 0, 1}},
- [10]={{ 1, 0},{ 1,-1},{ 0, 2},{ 1, 2},{ 0,-1},{ 1, 1}},
- [03]={{ 1, 0},{ 1, 1},{ 0,-2},{-1, 1}},
- [30]={{-1, 0},{-1,-1},{ 0, 2},{-1, 2}},
- [12]={{ 1, 0},{ 1,-1},{ 0, 2},{ 1, 2},{ 1, 1}},
- [21]={{-1, 0},{-1,-1},{-1, 1},{ 0,-2},{-1,-2},{-1,-1}},
- [32]={{-1, 0},{-1,-1},{-1, 1},{ 1, 0},{ 0,-1},{ 0, 2},{-1, 2}},
- [23]={{ 1, 0},{ 1, 1},{-1, 0},{ 0,-2},{ 1,-2}},
- [02]={{-1, 0},{ 0,-1},{ 0, 1}},
- [20]={{ 1, 0},{ 0, 1},{ 0,-1}},
- [13]={{ 1, 0},{ 0, 1},{-1, 0}},
- [31]={{-1, 0},{ 0,-1},{ 1, 0}},
+ [01]={"-1+0","-1+1","+0-2","-1-2","-1-1","+0+1"},
+ [10]={"+1+0","+1-1","+0+2","+1+2","+0-1","+1+1"},
+ [03]={"+1+0","+1+1","+0-2","-1+1"},
+ [30]={"-1+0","-1-1","+0+2","-1+2"},
+ [12]={"+1+0","+1-1","+0+2","+1+2","+1+1"},
+ [21]={"-1+0","-1-1","-1+1","+0-2","-1-2","-1-1"},
+ [32]={"-1+0","-1-1","-1+1","+0-1","+0+2","-1+2"},
+ [23]={"+1+0","+1+1","-1+0","+0-2","+1-2"},
+ [02]={"-1+0","+0-1","+0+1"},
+ [20]={"+1+0","+0+1","+0-1"},
+ [13]={"+1+0","+0+1","-1+0"},
+ [31]={"-1+0","+0-1","+1+0"},
},--P
false,--Q
{
- [01]={{-1, 0},{ 1, 0},{-1, 1},{ 0,-2},{ 0,-3}},
- [10]={{ 1, 0},{ 1,-1},{-1, 0},{ 0, 2},{ 0, 3}},
- [03]={{ 1, 0},{ 1,-1},{ 0, 1},{ 0,-2},{ 0,-3}},
- [30]={{-1, 1},{ 1, 0},{ 0,-1},{ 0, 2},{ 0, 3}},
- [12]={{ 1, 0},{ 0,-1},{-1, 0},{ 0, 2}},
- [21]={{-1, 0},{ 0, 1},{ 1, 0},{ 0,-2}},
- [32]={{-1, 0},{ 0, 1},{-1, 1},{ 1, 0},{ 0, 2},{-2, 0}},
- [23]={{ 1, 0},{ 1,-1},{ 0,-1},{-1, 0},{ 0,-2},{ 2, 0}},
- [02]={{ 1, 0},{-1, 0},{-1,-1}},
- [20]={{-1, 0},{ 1, 0},{ 1, 1}},
- [13]={{ 0,-1},{-1, 1},{ 0, 1}},
- [31]={{ 0,-1},{ 1,-1},{ 0, 1}},
+ [01]={"-1+0","+1+0","-1+1","+0-2","+0-3"},
+ [10]={"+1+0","+1-1","-1+0","+0+2","+0+3"},
+ [03]={"+1+0","+1-1","+0+1","+0-2","+0-3"},
+ [30]={"-1+1","+1+0","+0-1","+0+2","+0+3"},
+ [12]={"+1+0","+0-1","-1+0","+0+2"},
+ [21]={"-1+0","+0+1","+1+0","+0-2"},
+ [32]={"-1+0","+0+1","-1+1","+1+0","+0+2","-2+0"},
+ [23]={"+1+0","+1-1","+0-1","-1+0","+0-2","+2+0"},
+ [02]={"+1+0","-1+0","-1-1"},
+ [20]={"-1+0","+1+0","+1+1"},
+ [13]={"+0-1","-1+1","+0+1"},
+ [31]={"+0-1","+1-1","+0+1"},
},--F
false,--E
{
- [01]={{ 0,-1},{-1,-1},{ 1, 1},{ 1, 0},{ 1,-3},{-1, 0},{ 0, 2},{-1, 2}},
- [10]={{ 1, 0},{ 0,-1},{-1,-1},{ 0,-2},{-1, 1},{ 0,-3},{ 1,-2},{ 0, 1}},
- [03]={{ 0,-1},{ 1,-1},{-1,-1},{-1, 0},{-1,-3},{ 1, 0},{ 0, 2},{ 1, 2}},
- [30]={{-1, 0},{ 0,-1},{ 1,-1},{ 0,-2},{ 1, 1},{ 0,-3},{-1,-2},{ 0, 1}},
- [12]={{ 1, 0},{-1, 0},{ 0,-2},{ 0,-3},{ 0, 1},{-1, 1}},
- [21]={{ 1,-1},{-1, 0},{ 1, 0},{ 0,-1},{ 0, 2},{ 0, 3}},
- [32]={{-1, 0},{ 1, 0},{ 0,-2},{ 0,-3},{ 0, 1},{ 1, 1}},
- [23]={{-1,-1},{ 1, 0},{-1, 0},{ 0,-1},{ 0, 2},{ 0, 3}},
- [02]={{ 0, 1},{ 0,-1},{ 0, 2}},
- [20]={{ 0,-1},{ 0, 1},{ 0,-2}},
- [13]={{ 1, 0},{-1, 1},{-2, 0}},
- [31]={{-1, 0},{ 1, 1},{ 2, 0}},
+ [01]={"+0-1","-1-1","+1+0","+1+1","+0-3","-1+0","+0+2","-1+2"},
+ [10]={"+1+0","+0-1","-1-1","+0-2","-1+1","+0-3","+1-2","+0+1"},
+ [03]={"+0-1","+1-1","-1+0","-1+1","+0-3","+1+0","+0+2","+1+2"},
+ [30]={"-1+0","+0-1","+1-1","+0-2","+1+1","+0-3","-1-2","+0+1"},
+ [12]={"+1+0","-1+0","+0-2","+0-3","+0+1","-1+1"},
+ [21]={"+1-1","-1+0","+1+0","+0-1","+0+2","+0+3"},
+ [32]={"-1+0","+1+0","+0-2","+0-3","+0+1","+1+1"},
+ [23]={"-1-1","+1+0","-1+0","+0-1","+0+2","+0+3"},
+ [02]={"+0-1","+0+1","+0+2"},
+ [20]={"+0-1","+0+1","+0-2"},
+ [13]={"+1+0","-1+1","-2+0"},
+ [31]={"-1+0","+1+1","+2+0"},
},--T5
{
- [01]={{-1, 0},{-1, 1},{ 0,-2},{-1,-2}},
- [10]={{ 1, 0},{ 1,-1},{ 0, 2},{ 1, 2}},
- [03]={{ 1, 0},{ 1, 1},{ 0,-2},{ 1,-2}},
- [30]={{-1, 0},{-1,-1},{ 0,-2},{-1, 2}},
- [12]={{ 1, 0},{ 1,-1},{ 1, 1}},
- [21]={{-1,-1},{-1, 1},{-1,-1}},
- [32]={{-1, 0},{-1,-1},{-1, 1}},
- [23]={{ 1,-1},{ 1, 1},{ 1,-1}},
- [02]={{ 0, 1}},
- [20]={{ 0,-1}},
- [13]={{ 0,-1},{ 0, 1},{ 1, 0}},
- [31]={{ 0,-1},{ 0, 1},{-1, 0}},
+ [01]={"-1+0","-1+1","+0-2","-1-2"},
+ [10]={"+1+0","+1-1","+0+2","+1+2"},
+ [03]={"+1+0","+1+1","+0-2","+1-2"},
+ [30]={"-1+0","-1-1","+0-2","-1+2"},
+ [12]={"+1+0","+1-1","+1+1"},
+ [21]={"-1-1","-1+1","-1-1"},
+ [32]={"-1+0","-1-1","-1+1"},
+ [23]={"+1-1","+1+1","+1-1"},
+ [02]={"+0+1"},
+ [20]={"+0-1"},
+ [13]={"+0-1","+0+1","+1+0"},
+ [31]={"+0-1","+0+1","-1+0"},
},--U
{
- [01]={{ 0, 1},{-1, 0},{ 0,-2},{-1,-2}},
- [10]={{ 0, 1},{ 1, 0},{ 0,-2},{ 1,-2}},
- [03]={{ 0,-1},{ 0, 1},{ 0, 2}},
- [30]={{ 0,-1},{ 0, 1},{ 0,-2}},
- [12]={{ 0,-1},{ 0, 1}},
- [21]={{ 0,-1},{ 0,-2}},
- [32]={{ 1, 0},{-1, 0}},
- [23]={{-1, 0},{ 1, 0}},
- [02]={{-1, 1},{ 1,-1}},
- [20]={{ 1,-1},{-1, 1}},
- [13]={{ 1, 1},{-1,-1}},
- [31]={{-1,-1},{ 1, 1}},
+ [01]={"+0+1","-1+0","+0-2","-1-2"},
+ [10]={"+0+1","+1+0","+0-2","+1-2"},
+ [03]={"+0-1","+0+1","+0+2"},
+ [30]={"+0-1","+0+1","+0-2"},
+ [12]={"+0-1","+0+1"},
+ [21]={"+0-1","+0-2"},
+ [32]={"+1+0","-1+0"},
+ [23]={"-1+0","+1+0"},
+ [02]={"-1+1","+1-1"},
+ [20]={"+1-1","-1+1"},
+ [13]={"+1+1","-1-1"},
+ [31]={"-1-1","+1+1"},
},--V
{
- [01]={{ 0,-1},{-1, 0},{ 1, 0},{ 1,-1},{ 0, 2}},
- [10]={{ 0,-1},{-1,-1},{ 0, 1},{ 0,-2},{ 1,-2},{ 0, 2}},
- [03]={{ 1, 0},{ 1, 1},{ 0,-1},{ 0,-2},{ 0,-3},{ 1,-1},{ 0, 1},{ 0, 2},{ 0, 3}},
- [30]={{-1, 0},{-1, 1},{ 0,-1},{ 0,-2},{ 0,-3},{-1,-1},{ 0, 1},{ 0, 2},{ 0, 3}},
- [12]={{ 1, 0},{ 0,-1},{-2, 0},{ 1, 1},{-1, 0},{ 0, 1},{-1,-1}},
- [21]={{-1, 0},{ 0,-1},{ 2, 0},{-1, 1},{ 1, 0},{ 0, 1},{ 1,-1}},
- [32]={{ 0,-1},{ 1, 0},{ 0, 1},{-1, 0},{-1,-1},{ 0, 2}},
- [23]={{ 0,-1},{ 1,-1},{ 0, 1},{ 0,-2},{-1,-2},{ 0, 2}},
- [02]={{ 0,-1},{-1, 0}},
- [20]={{ 0, 1},{ 1, 0}},
- [13]={{ 0, 1},{-1, 0}},
- [31]={{ 0,-1},{ 1, 0}},
+ [01]={"+0-1","-1+0","+1+0","+1-1","+0+2"},
+ [10]={"+0-1","-1-1","+0+1","+0-2","+1-2","+0+2"},
+ [03]={"+1+0","+1+1","+0-1","+0-2","+0-3","+1-1","+0+1","+0+2","+0+3"},
+ [30]={"-1+0","-1+1","+0-1","+0-2","+0-3","-1-1","+0+1","+0+2","+0+3"},
+ [12]={"+1+0","+0-1","-2+0","+1+1","-1+0","+0+1","-1-1"},
+ [21]={"-1+0","+0-1","+2+0","-1+1","+1+0","+0+1","+1-1"},
+ [32]={"+0-1","+1+0","+0+1","-1+0","-1-1","+0+2"},
+ [23]={"+0-1","+1-1","+0+1","+0-2","-1-2","+0+2"},
+ [02]={"+0-1","-1+0"},
+ [20]={"+0+1","+1+0"},
+ [13]={"+0+1","-1+0"},
+ [31]={"+0-1","+1+0"},
},--W
function(P,d)
if P.type=="human"then SFX.play("rotate",nil,P:getCenterX()*.15)end
@@ -284,89 +292,89 @@ do
P:freshBlock("fresh")
end,--X
{
- [01]={{-1, 0},{-1, 1},{ 0,-3},{-1, 1},{-1, 2},{ 0, 1}},
- [10]={{-1, 0},{ 1,-1},{ 0, 3},{ 1,-1},{ 1,-2},{ 0, 1}},
- [03]={{ 0,-1},{ 1,-1},{-1, 0},{ 1, 1},{ 0,-2},{ 1,-2},{ 0,-3},{ 1,-3},{-1, 1}},
- [30]={{ 0, 1},{-1, 1},{ 1, 0},{-1,-1},{ 0, 2},{-1, 2},{ 0, 3},{-1, 3},{ 1,-1}},
- [12]={{ 1, 0},{ 1,-1},{ 0,-1},{ 1,-2},{ 0,-2},{ 1, 1},{-1, 0},{ 0, 2},{ 1, 2}},
- [21]={{-1, 0},{-1, 1},{ 0, 1},{-1, 2},{ 0, 2},{-1,-1},{ 1, 0},{ 0,-2},{-1,-2}},
- [32]={{-1, 0},{-1, 1},{-1,-1},{ 1, 0},{ 0, 2},{-1, 2},{ 0,-2}},
- [23]={{ 1, 0},{ 1,-1},{ 1, 1},{-1, 0},{ 0,-2},{ 1,-2},{ 0, 2}},
- [02]={{ 0,-1},{ 1,-1},{-1, 0},{ 2,-1},{ 0, 1}},
- [20]={{ 0, 1},{-1, 1},{ 1, 0},{-2, 1},{ 0,-1}},
- [13]={{-1, 0},{-1,-1},{ 0, 1},{-1,-2}},
- [31]={{ 1, 0},{ 1, 1},{ 0,-1},{ 1, 2}},
+ [01]={"-1+0","-1+1","+0-3","-1+1","-1+2","+0+1"},
+ [10]={"-1+0","+1-1","+0+3","+1-1","+1-2","+0+1"},
+ [03]={"+0-1","+1-1","-1+0","+1+1","+0-2","+1-2","+0-3","+1-3","-1+1"},
+ [30]={"+0+1","-1+1","+1+0","-1-1","+0+2","-1+2","+0+3","-1+3","+1-1"},
+ [12]={"+1+0","+1-1","+0-1","+1-2","+0-2","+1+1","-1+0","+0+2","+1+2"},
+ [21]={"-1+0","-1+1","+0+1","-1+2","+0+2","-1-1","+1+0","+0-2","-1-2"},
+ [32]={"-1+0","-1+1","-1-1","+1+0","+0+2","-1+2","+0-2"},
+ [23]={"+1+0","+1-1","+1+1","-1+0","+0-2","+1-2","+0+2"},
+ [02]={"+0-1","+1-1","-1+0","+2-1"},
+ [20]={"+0+1","-1+1","+1+0","-2+1"},
+ [13]={"-1+0","-1-1","+0+1","-1-2"},
+ [31]={"+1+0","+1+1","+0-1","+1+2"},
},--J5
false,--L5
{
- [01]={{-1, 0},{-1, 0},{-1, 1},{ 1, 0},{-1, 2},{-1,-1},{ 0,-3},{ 0, 1}},
- [10]={{-1, 0},{ 1, 0},{ 1,-1},{ 1, 0},{ 1,-2},{ 1, 1},{ 0, 3},{ 0, 1}},
- [03]={{ 0,-1},{ 1, 0},{ 1,-1},{-1, 0},{ 1, 1},{ 0,-2},{ 1,-2},{ 0,-3},{ 1,-3},{-1, 1}},
- [30]={{ 0, 1},{-1, 0},{-1, 1},{ 1, 0},{-1,-1},{ 0, 2},{-1, 2},{ 0, 3},{-1, 3},{ 1,-1}},
- [12]={{ 1, 0},{ 1,-1},{ 0,-1},{ 1,-2},{ 0,-2},{ 1, 1},{-1, 0},{ 0, 2},{ 1, 2}},
- [21]={{-1, 0},{-1, 1},{ 0, 1},{-1, 2},{ 0, 2},{-1,-1},{ 1, 0},{ 0,-2},{-1,-2}},
- [32]={{ 0,-1},{-1, 0},{-1, 1},{-1,-1},{ 1, 0},{ 0, 2},{-1, 2},{ 0,-2}},
- [23]={{ 0, 1},{ 1, 0},{ 1,-1},{ 1, 1},{-1, 0},{ 0,-2},{ 1,-2},{ 0, 2}},
- [02]={{ 0,-1},{ 1,-1},{-1, 0},{ 2,-1},{ 0, 1}},
- [20]={{ 0, 1},{-1, 1},{ 1, 0},{-2, 1},{ 0,-1}},
- [13]={{-1, 0},{-1,-1},{ 0, 1},{-1,-2}},
- [31]={{ 1, 0},{ 1, 1},{ 0,-1},{ 1, 2}},
+ [01]={"-1+0","-1+0","-1+1","+1+0","-1+2","-1-1","+0-3","+0+1"},
+ [10]={"-1+0","+1+0","+1-1","+1+0","+1-2","+1+1","+0+3","+0+1"},
+ [03]={"+0-1","+1+0","+1-1","-1+0","+1+1","+0-2","+1-2","+0-3","+1-3","-1+1"},
+ [30]={"+0+1","-1+0","-1+1","+1+0","-1-1","+0+2","-1+2","+0+3","-1+3","+1-1"},
+ [12]={"+1+0","+1-1","+0-1","+1-2","+0-2","+1+1","-1+0","+0+2","+1+2"},
+ [21]={"-1+0","-1+1","+0+1","-1+2","+0+2","-1-1","+1+0","+0-2","-1-2"},
+ [32]={"+0-1","-1+0","-1+1","-1-1","+1+0","+0+2","-1+2","+0-2"},
+ [23]={"+0+1","+1+0","+1-1","+1+1","-1+0","+0-2","+1-2","+0+2"},
+ [02]={"+0-1","+1-1","-1+0","+2-1","+0+1"},
+ [20]={"+0+1","-1+1","+1+0","-2+1","+0-1"},
+ [13]={"-1+0","-1-1","+0+1","-1-2"},
+ [31]={"+1+0","+1+1","+0-1","+1+2"},
},--R
false,--Y
{
- [01]={{-1, 0},{-1, 1},{ 0, 1},{ 1, 0},{-1, 2},{-2, 0},{ 0,-2}},
- [10]={{ 1, 0},{-1, 0},{ 0,-1},{ 1,-1},{ 1,-2},{ 2, 0},{ 0, 2}},
- [03]={{-1, 0},{ 1,-1},{ 0,-2},{ 0,-3},{ 1, 0},{ 1,-2},{ 1,-3},{ 0, 1},{-1, 1}},
- [30]={{-1, 0},{ 1,-1},{ 1,-2},{ 1, 0},{ 0,-2},{ 1,-3},{-1, 2},{ 0, 3},{-1, 3}},
- [12]={{-1, 0},{ 1,-1},{-1,-1},{ 1,-2},{ 1, 0},{ 0,-2},{ 1,-3},{-1, 2},{ 0, 3},{-1, 3}},
- [21]={{-1, 0},{ 1,-1},{ 1, 1},{ 0,-2},{ 0,-3},{ 1, 0},{ 1,-2},{ 1,-3},{ 0, 1},{-1, 1}},
- [32]={{-1, 0},{ 0,-1},{-1,-2},{ 1,-1},{ 1, 0},{ 1, 1},{ 0, 2},{ 0, 3}},
- [23]={{ 0,-2},{ 0,-3},{ 1, 2},{ 1, 0},{ 0, 1},{-1, 1},{ 0,-1},{ 0, 2}},
- [02]={{-1, 0},{ 0, 2},{ 0,-1}},
- [20]={{ 1, 0},{ 0,-2},{ 0, 1}},
- [13]={{-1, 0},{-1,-1},{ 0, 1},{ 1, 2}},
- [31]={{ 1, 0},{ 1, 1},{ 0,-1},{-1,-2}},
+ [01]={"-1+0","-1+1","+0+1","+1+0","-1+2","-2+0","+0-2"},
+ [10]={"+1+0","-1+0","+0-1","+1-1","+1-2","+2+0","+0+2"},
+ [03]={"-1+0","+1-1","+0-2","+0-3","+1+0","+1-2","+1-3","+0+1","-1+1"},
+ [30]={"-1+0","+1-1","+1-2","+1+0","+0-2","+1-3","-1+2","+0+3","-1+3"},
+ [12]={"-1+0","+1-1","-1-1","+1-2","+1+0","+0-2","+1-3","-1+2","+0+3","-1+3"},
+ [21]={"-1+0","+1-1","+1+1","+0-2","+0-3","+1+0","+1-2","+1-3","+0+1","-1+1"},
+ [32]={"-1+0","+0-1","-1-2","+1-1","+1+0","+1+1","+0+2","+0+3"},
+ [23]={"+0-2","+0-3","+1+2","+1+0","+0+1","-1+1","+0-1","+0+2"},
+ [02]={"-1+0","+0+2","+0-1"},
+ [20]={"+1+0","+0-2","+0+1"},
+ [13]={"-1+0","-1-1","+0+1","+1+2"},
+ [31]={"+1+0","+1+1","+0-1","-1-2"},
},--N
false,--H
{
- [01]={{ 1,-1},{ 1, 0},{ 1, 1},{ 0, 1},{-1, 1},{-1, 0},{-1,-1},{ 0,-1},{ 0,-2},{-2,-1},{-2,-2},{ 2, 0},{ 2,-1},{ 2,-2},{ 1, 2},{ 2, 2},{-1, 2},{-2, 2}},
- [10]={{-1, 0},{-1,-1},{ 0,-1},{ 1,-1},{-2,-2},{-2,-1},{-2, 0},{-1,-2},{ 0,-2},{ 1,-2},{ 2,-2},{-1, 1},{-2, 1},{-2, 2},{ 1, 0},{ 2, 0},{ 2,-1},{ 0, 1},{ 1,-1},{ 2,-2}},
- [03]={{-1,-1},{-1, 0},{-1, 1},{-0, 1},{ 1, 1},{ 1, 0},{ 1,-1},{-0,-1},{-0,-2},{ 2,-1},{ 2,-2},{-2, 0},{-2,-1},{-2,-2},{-1, 2},{-2, 2},{ 1, 2},{ 2, 2}},
- [30]={{ 1, 0},{ 1,-1},{-0,-1},{-1,-1},{ 2,-2},{ 2,-1},{ 2, 0},{ 1,-2},{-0,-2},{-1,-2},{-2,-2},{ 1, 1},{ 2, 1},{ 2, 2},{-1, 0},{-2, 0},{-2,-1},{ 0, 1},{-1,-1},{-2,-2}},
+ [01]={"+1-1","+1+0","+1+1","+0+1","-1+1","-1+0","-1-1","+0-1","+0-2","-2-1","-2-2","+2+0","+2-1","+2-2","+1+2","+2+2","-1+2","-2+2"},
+ [10]={"-1+0","-1-1","+0-1","+1-1","-2-2","-2-1","-2+0","-1-2","+0-2","+1-2","+2-2","-1+1","-2+1","-2+2","+1+0","+2+0","+2-1","+0+1","+1-1","+2-2"},
+ [03]={"-1-1","-1+0","-1+1","-0+1","+1+1","+1+0","+1-1","-0-1","-0-2","+2-1","+2-2","-2+0","-2-1","-2-2","-1+2","-2+2","+1+2","+2+2"},
+ [30]={"+1+0","+1-1","-0-1","-1-1","+2-2","+2-1","+2+0","+1-2","-0-2","-1-2","-2-2","+1+1","+2+1","+2+2","-1+0","-2+0","-2-1","+0+1","-1-1","-2-2"},
},--I5
{
- [01]={{-1, 0},{-1,-1},{ 1, 1},{-1, 1}},
- [10]={{-1, 0},{ 1, 0},{-1,-1},{ 1, 1}},
- [03]={{ 1, 0},{ 1,-1},{-1, 1},{ 1, 1}},
- [30]={{ 1, 0},{-1, 0},{ 1,-1},{-1, 1}},
+ [01]={"-1+0","-1-1","+1+1","-1+1"},
+ [10]={"-1+0","+1+0","-1-1","+1+1"},
+ [03]={"+1+0","+1-1","-1+1","+1+1"},
+ [30]={"+1+0","-1+0","+1-1","-1+1"},
},--I3
{
- [01]={{-1, 0},{ 1, 0}},
- [10]={{ 1, 0},{-1, 0}},
- [03]={{ 0, 1},{ 0,-1}},
- [30]={{ 0,-1},{ 0, 1}},
- [12]={{ 0, 1},{ 0,-1}},
- [21]={{ 0,-1},{ 0, 1}},
- [32]={{-1, 0},{ 1, 0}},
- [23]={{ 1, 0},{-1, 0}},
- [02]={{ 0,-1},{ 1,-1},{-1,-1}},
- [20]={{ 0, 1},{-1, 1},{ 1, 1}},
- [13]={{ 0,-1},{-1,-1},{ 1,-1}},
- [31]={{ 0, 1},{ 1, 1},{-1, 1}},
+ [01]={"-1+0","+1+0"},
+ [10]={"+1+0","-1+0"},
+ [03]={"+0+1","+0-1"},
+ [30]={"+0-1","+0+1"},
+ [12]={"+0+1","+0-1"},
+ [21]={"+0-1","+0+1"},
+ [32]={"-1+0","+1+0"},
+ [23]={"+1+0","-1+0"},
+ [02]={"+0-1","+1-1","-1-1"},
+ [20]={"+0+1","-1+1","+1+1"},
+ [13]={"+0-1","-1-1","+1-1"},
+ [31]={"+0+1","+1+1","-1+1"},
},--C
{
- [01]={{-1, 0},{ 0, 1}},
- [10]={{ 1, 0},{ 0, 1}},
- [03]={{ 1, 0},{ 0, 1}},
- [30]={{-1, 0},{ 0, 1}},
- [12]={{ 1, 0},{ 0, 2}},
- [21]={{ 0,-1},{-1, 0}},
- [32]={{-1, 0},{ 0, 2}},
- [23]={{ 0,-1},{-1, 0}},
- [02]={{ 0,-1},{ 0, 1}},
- [20]={{ 0, 1},{ 0,-1}},
- [13]={{-1, 0},{ 1, 0}},
- [31]={{ 1, 0},{-1, 0}},
+ [01]={"-1+0","+0+1"},
+ [10]={"+1+0","+0+1"},
+ [03]={"+1+0","+0+1"},
+ [30]={"-1+0","+0+1"},
+ [12]={"+1+0","+0+2"},
+ [21]={"+0-1","-1+0"},
+ [32]={"-1+0","+0+2"},
+ [23]={"+0-1","-1+0"},
+ [02]={"+0-1","+0+1"},
+ [20]={"+0+1","+0-1"},
+ [13]={"-1+0","+1+0"},
+ [31]={"+1+0","-1+0"},
},--I2
nil,--O1
}
@@ -378,9 +386,9 @@ do
TRS[20]=reflect(TRS[19])--L5J5
TRS[22]=reflect(TRS[21])--RY
TRS[24]=reflect(TRS[23])--NH
- C_sym(TRS[8])C_sym(TRS[9])--S5Z5
- C_sym(TRS[25])C_sym(TRS[26])--I5I3
- for i=1,29 do collect(TRS[i])end
+ centroSymSet(TRS[8])centroSymSet(TRS[9])--S5Z5
+ centroSymSet(TRS[25])centroSymSet(TRS[26])--I5I3
+ for i=1,29 do collectSet(TRS[i])end
pushZero(TRS)
end
@@ -388,35 +396,35 @@ local SRS
do
SRS={
{
- [01]={{-1,0},{-1, 1},{ 0,-2},{-1,-2}},
- [10]={{ 1,0},{ 1,-1},{ 0, 2},{ 1, 2}},
- [03]={{ 1,0},{ 1, 1},{ 0,-2},{ 1,-2}},
- [30]={{-1,0},{-1,-1},{ 0, 2},{-1, 2}},
- [12]={{ 1,0},{ 1,-1},{ 0, 2},{ 1, 2}},
- [21]={{-1,0},{-1, 1},{ 0,-2},{-1,-2}},
- [32]={{-1,0},{-1,-1},{ 0, 2},{-1, 2}},
- [23]={{ 1,0},{ 1, 1},{ 0,-2},{ 1,-2}},
+ [01]={"-1+0","-1+1","+0-2","-1-2"},
+ [10]={"+1+0","+1-1","+0+2","+1+2"},
+ [03]={"+1+0","+1+1","+0-2","+1-2"},
+ [30]={"-1+0","-1-1","+0+2","-1+2"},
+ [12]={"+1+0","+1-1","+0+2","+1+2"},
+ [21]={"-1+0","-1+1","+0-2","-1-2"},
+ [32]={"-1+0","-1-1","+0+2","-1+2"},
+ [23]={"+1+0","+1+1","+0-2","+1-2"},
[02]={},[20]={},[13]={},[31]={},
},--Z
false,--S
false,--J
false,--L
false,--T
- noKick,--O
+ noKickSet,--O
{
- [01]={{-2, 0},{ 1, 0},{-2,-1},{ 1, 2}},
- [10]={{ 2, 0},{-1, 0},{ 2, 1},{-1,-2}},
- [12]={{-1, 0},{ 2, 0},{-1, 2},{ 2,-1}},
- [21]={{ 1, 0},{-2, 0},{ 1,-2},{-2, 1}},
- [23]={{ 2, 0},{-1, 0},{ 2, 1},{-1,-2}},
- [32]={{-2, 0},{ 1, 0},{-2,-1},{ 1, 2}},
- [30]={{ 1, 0},{-2, 0},{ 1,-2},{-2, 1}},
- [03]={{-1, 0},{ 2, 0},{-1, 2},{ 2,-1}},
+ [01]={"-2+0","+1+0","-2-1","+1+2"},
+ [10]={"+2+0","-1+0","+2+1","-1-2"},
+ [12]={"-1+0","+2+0","-1+2","+2-1"},
+ [21]={"+1+0","-2+0","+1-2","-2+1"},
+ [23]={"+2+0","-1+0","+2+1","-1-2"},
+ [32]={"-2+0","+1+0","-2-1","+1+2"},
+ [30]={"+1+0","-2+0","+1-2","-2+1"},
+ [03]={"-1+0","+2+0","-1+2","+2-1"},
[02]={},[20]={},[13]={},[31]={},
}--I
}
- collect(SRS[1])
- collect(SRS[7])
+ collectSet(SRS[1])
+ collectSet(SRS[7])
pushZero(SRS)
for i=2,5 do SRS[i]=SRS[1]end
for i=8,29 do SRS[i]=SRS[1]end
@@ -424,7 +432,8 @@ end
local C2
do
- local L={{0,0},{-1,0},{1,0},{0,-1},{-1,-1},{1,-1},{-2,0},{2,0}}
+ local L={"+0+0","-1+0","+1+0","+0-1","-1-1","+1-1","-2+0","+2+0"}
+ vecStrConv(L)
C2={
{
[01]=L,[10]=L,[12]=L,[21]=L,
@@ -432,36 +441,35 @@ do
[02]=L,[20]=L,[13]=L,[31]=L,
}
}
- collect(C2[1])
for i=2,29 do C2[i]=C2[1]end
end
local C2sym
do
- local L={{0,0},{-1,0},{1,0},{0,-1},{-1,-1},{1,-1},{-2,0},{2,0}}
- local R={{0,0},{1,0},{-1,0},{0,-1},{1,-1},{-1,-1},{2,0},{-2,0}}
+ local L={"+0+0","-1+0","+1+0","+0-1","-1-1","+1-1","-2+0","+2+0"}
+ local R={"+0+0","+1+0","-1+0","+0-1","+1-1","-1-1","+2+0","-2+0"}
local Z={
[01]=R,[10]=L,[03]=L,[30]=R,
[12]=R,[21]=L,[32]=L,[23]=R,
[02]=R,[20]=L,[13]=L,[31]=R,
}
- collect(Z)
local S=reflect(Z)
- collect(S)
+ collectSet(Z)
+ collectSet(S)
C2sym={
Z,S,--Z,S
Z,S,--J,L
Z,--T
- noKick,--O
+ noKickSet,--O
Z,--I
Z,S,--Z5,S5
Z,S,--P,Q
Z,S,--F,E
Z,Z,Z,Z,--T5,U,V,W
- noKick,--X
+ noKickSet,--X
Z,S,--J5,L5
Z,S,--R,Y
Z,S,--N,H
@@ -472,10 +480,10 @@ do
end
local Classic={}
-for i=1,29 do Classic[i]=noKick end
+for i=1,29 do Classic[i]=noKickSet end
local None={}
-for i=1,29 do None[i]=noKick_180 end
+for i=1,29 do None[i]=noKickSet_180 end
return{
TRS=TRS,
From d041b0e993bedfde6db8ce5bc6393eb320296011 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Thu, 15 Apr 2021 02:34:05 +0800
Subject: [PATCH 10/48] =?UTF-8?q?file=E6=A8=A1=E5=9D=97=E5=8D=87=E7=BA=A7?=
=?UTF-8?q?=EF=BC=8C=E6=94=AF=E6=8C=81=E9=9D=9Etable=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E7=9B=B4=E6=8E=A5=E4=BF=9D=E5=AD=98=E4=B8=BA=E5=AD=97=E7=AC=A6?=
=?UTF-8?q?=E4=B8=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Zframework/file.lua | 29 +++++++++++++++++------------
1 file changed, 17 insertions(+), 12 deletions(-)
diff --git a/Zframework/file.lua b/Zframework/file.lua
index a57efafa..4453137f 100644
--- a/Zframework/file.lua
+++ b/Zframework/file.lua
@@ -12,11 +12,13 @@ function FILE.load(name)
setfenv(s,{})
return s()
end
- else
+ elseif s:sub(1,1)=="["or s:sub(1,1)=="{"then
local res=JSON.decode(s)
if res then
return res
end
+ else
+ return s
end
end
LOG.print(name.." "..text.loadError,COLOR.red)
@@ -24,19 +26,22 @@ function FILE.load(name)
end
function FILE.save(data,name,mode)
if not mode then mode=""end
- name=name
- if mode:find("l")then
- data=DUMPTABLE(data)
- if not data then
- LOG.print(name.." "..text.saveError.."dump error","error")
- return
+ if type(data)=="table"then
+ if mode:find("l")then
+ data=DUMPTABLE(data)
+ if not data then
+ LOG.print(name.." "..text.saveError.."dump error","error")
+ return
+ end
+ else
+ data=JSON.encode(data)
+ if not data then
+ LOG.print(name.." "..text.saveError.."json error","error")
+ return
+ end
end
else
- data=JSON.encode(data)
- if not data then
- LOG.print(name.." "..text.saveError.."json error","error")
- return
- end
+ data=tostring(data)
end
local F=fs.newFile(name)
From aacb11a22ba900da1d0c240f8ca5d9063bb0519e Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 01:28:30 +0800
Subject: [PATCH 11/48] =?UTF-8?q?=E5=8F=96=E6=B6=88USER=E7=9A=84username?=
=?UTF-8?q?=E5=9F=9F=EF=BC=8CUSERS=E7=8B=AC=E7=AB=8B=E4=B8=BA=E6=A8=A1?=
=?UTF-8?q?=E5=9D=97=E7=94=A8=E4=BA=8E=E7=AE=A1=E7=90=86=E6=89=80=E6=9C=89?=
=?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E7=BC=93=E5=AD=98=EF=BC=88?=
=?UTF-8?q?=E8=BF=98=E6=9C=AA=E6=B5=8B=E8=AF=95=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
main.lua | 1 +
parts/gametoolfunc.lua | 4 +-
parts/globalTables.lua | 2 -
parts/net.lua | 28 ++-----------
parts/scenes/net_menu.lua | 1 -
parts/scenes/net_rooms.lua | 2 +-
parts/users.lua | 81 ++++++++++++++++++++++++++++++++++++++
7 files changed, 89 insertions(+), 30 deletions(-)
create mode 100644 parts/users.lua
diff --git a/main.lua b/main.lua
index dc8c9faf..e8e3f144 100644
--- a/main.lua
+++ b/main.lua
@@ -63,6 +63,7 @@ FIELD[1]=newBoard()--Initialize field[1]
NET= require"parts.net"
AIBUILDER= require"parts.AITemplate"
FREEROW= require"parts.freeRow"
+USERS= require"parts.users"
TEXTURE= require"parts.texture"
SKIN= require"parts.skin"
diff --git a/parts/gametoolfunc.lua b/parts/gametoolfunc.lua
index 44f3b301..60568f41 100644
--- a/parts/gametoolfunc.lua
+++ b/parts/gametoolfunc.lua
@@ -973,7 +973,7 @@ do--function saveRecording()
os.date("%Y/%m/%d %A %H:%M:%S\n")..
GAME.curModeName.."\n"..
VERSION.string.."\n"..
- (USER.username or"Player")
+ "Local Player"
local fileBody=
GAME.seed.."\n"..
JSON.encode(GAME.setting).."\n"..
@@ -1021,7 +1021,7 @@ do--function drawFWM()
local t=TIME()
setFont(25)
gc_setColor(1,1,1,.2+.1*(sin(3*t)+sin(2.6*t)))
- mStr(m[SETTING.lang]or m[1],240,60+26*sin(t))
+ mStr(m[_G["\83\69\84\84\73\78\71"]["\108\97\110\103"]or m[1]],240,60+26*sin(t))
end
end
function drawWarning()
diff --git a/parts/globalTables.lua b/parts/globalTables.lua
index eabb78ae..04e7c4fc 100644
--- a/parts/globalTables.lua
+++ b/parts/globalTables.lua
@@ -222,14 +222,12 @@ GAME={--Global game data
RANKS=FILE.load("conf/unlock")or{sprint_10l=0}--Ranks of modes
USER=FILE.load("conf/user")or{--User infomation
--Network infos
- username=false,
uid=false,
authToken=false,
--Local data
xp=0,lv=1,
}
-USERS=FILE.load("conf/users")or{}
SETTING={--Settings
--Tuning
das=10,arr=2,dascut=0,
diff --git a/parts/net.lua b/parts/net.lua
index a39fb247..9863a2fe 100644
--- a/parts/net.lua
+++ b/parts/net.lua
@@ -145,30 +145,11 @@ function NET.getUserInfo(id,ifDetail)
WS.send("user",JSON.encode{
action=1,
data={
- id=id or USER.uid,
+ id=id,
detailed=ifDetail or false,
},
})
end
-function NET.storeUserInfo(d)
- local user=USERS[d.uid]
- if not user then
- user={}
- USERS[d.uid]=user
- end
- user.uid=d.uid
- user.username=d.username
- user.motto=d.motto
- user.avatar=d.avatar
-
- --Get own name
- if d.uid==USER.uid then
- USER.username=d.username
- FILE.save(USER,"conf/user","q")
- end
-
- -- FILE.save(USERS,"conf/users")
-end
--Room
function NET.fetchRoom()
@@ -316,14 +297,14 @@ function NET.updateWS_user()
LOG.print(text.loginSuccessed)
--Get self infos
- NET.getUserInfo(USER.uid)
+ NET.getUserInfo()
NET.unlock("wsc_user")
elseif res.action==0 then--Get accessToken
NET.accessToken=res.accessToken
LOG.print(text.accessSuccessed)
NET.wsconn_play()
elseif res.action==1 then--Get userInfo
- NET.storeUserInfo(res.data)
+ USERS.updateUserData(res.data)
end
else
WS.alert("user")
@@ -490,9 +471,8 @@ function NET.updateWS_stream()
elseif res.action==3 then--Player leave
--?
elseif res.action==4 then--Player died
- local uid=res.data.uid
for _,P in next,PLY_ALIVE do
- if P.uid==uid then
+ if P.uid==d.uid then
P:lose(true)
break
end
diff --git a/parts/scenes/net_menu.lua b/parts/scenes/net_menu.lua
index cee6519e..ff8d9cf2 100644
--- a/parts/scenes/net_menu.lua
+++ b/parts/scenes/net_menu.lua
@@ -20,7 +20,6 @@ scene.widgetList={
if USER.uid then
NET.wsclose_play()
NET.wsclose_user()
- USER.username=false
USER.uid=false
USER.authToken=false
FILE.save(USER,"conf/user","q")
diff --git a/parts/scenes/net_rooms.lua b/parts/scenes/net_rooms.lua
index 0f38b9bf..4c823fdc 100644
--- a/parts/scenes/net_rooms.lua
+++ b/parts/scenes/net_rooms.lua
@@ -38,7 +38,7 @@ function scene.keyDown(k)
kb.isDown("4")and"r99"or
kb.isDown("5")and"unlimited"
)or"solo",
- (USER.username or"???").."'s room"
+ (USERS.getName(USER.uid)or"???").."'s room"
)
lastCreateRoomTime=TIME()
else
diff --git a/parts/users.lua b/parts/users.lua
new file mode 100644
index 00000000..dc9161d6
--- /dev/null
+++ b/parts/users.lua
@@ -0,0 +1,81 @@
+local loadImage=love.graphics.newImage
+local fs=love.filesystem
+
+local ins=table.insert
+
+local texture_noImage=DOGC{32,32,
+ {"rgb",0,0,0},
+ {"rect","fill",0,0,32,32},
+ {"rgb",1,1,1},
+ {"wid",3},
+ {"line",0,0,31,31},
+ {"line",0,31,31,0},
+}
+
+local function _getEmptyUser()
+ return{
+ uid=-1,
+ username="[X]",
+ motto="Techmino haowan",
+ hash=false,
+ new=false,
+ }
+end
+
+local imgReqSeq={}
+local db_img={}
+local db=setmetatable({},{__index=function(self,k)
+ local file="cache/user"..k..".dat"
+ if fs.getInfo(file)then
+ rawset(self,k,JSON.decode(fs.read(file)))
+ if fs.getInfo(self[k].hash)then
+ db_img[k].avatar=loadImage(self[k].hash)
+ end
+ else
+ rawset(self,k,_getEmptyUser())
+ end
+ return self[k]
+end})
+
+local USERS={}
+
+function USERS.updateUserData(data)
+ local uid=data.uid
+ db[uid].username=data.username
+ db[uid].motto=data.motto
+ fs.write("cache/user"..uid..".dat",JSON.encode{
+ username=data.username,
+ motto=data.motto,
+ hash=data.hash,
+ })
+ if data.avatar then
+ fs.write("cache/"..data.hash,data.avatar:sub(data.avatar:find","+1))
+ db_img[uid].avatar=loadImage("cache/"..data.hash)
+ db[uid].hash=data.hash
+ db[uid].new=true
+ end
+ needSave=true
+end
+
+function USERS.getUsername(uid)return db[uid].username end
+function USERS.getMotto(uid)return db[uid].motto end
+function USERS.getAvatar(uid)
+ if db_img[uid]then
+ return db_img[uid]
+ else
+ if not db[uid].new then
+ ins(imgReqSeq,uid)
+ db[uid].new=true
+ end
+ return texture_noImage
+ end
+end
+
+function USERS.update()
+ if #imgReqSeq>0 and WS.status("user")=="running"then
+ NET.getUserInfo(imgReqSeq[#imgReqSeq],true)
+ imgReqSeq[#imgReqSeq]=nil
+ end
+end
+
+return USERS
\ No newline at end of file
From 1baa59162ee6d24c126558237db35e62fecf5ec0 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 01:29:36 +0800
Subject: [PATCH 12/48] =?UTF-8?q?=E8=AF=8D=E5=85=B8=E7=A7=BB=E9=99=A4?=
=?UTF-8?q?=E4=B8=A4=E4=BD=8D=E5=9C=A8=E7=A4=BE=E7=BE=A4=E4=B8=AD=E5=AD=98?=
=?UTF-8?q?=E5=9C=A8=E6=84=9F=E8=BE=83=E4=BD=8E=E5=B9=B6=E4=B8=94=E6=B2=A1?=
=?UTF-8?q?=E6=9C=89=E6=98=8E=E6=98=BE=E8=AE=B0=E8=BD=BD=E4=BB=B7=E5=80=BC?=
=?UTF-8?q?=E7=9A=84=E4=B8=AA=E4=BA=BA=E8=AF=8D=E6=9D=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/dict_en.lua | 13 -------------
parts/language/dict_zh.lua | 15 +--------------
2 files changed, 1 insertion(+), 27 deletions(-)
diff --git a/parts/language/dict_en.lua b/parts/language/dict_en.lua
index 99b93b8a..af51ba06 100644
--- a/parts/language/dict_en.lua
+++ b/parts/language/dict_en.lua
@@ -1022,12 +1022,6 @@ return{
"Tetris Research community member, Virtual content creator.\nA top Tetris 99 players known for his strategies.",
"https://space.bilibili.com/147529",
},
- {"ditoly",
- "ditoly icrem kuimei jk",
- "name",
- "Tetris Research community member.",
- "https://space.bilibili.com/13014410",
- },
{"蓝绿",
"lanlv gompyn imple lee blari'o blariho",
"name",
@@ -1039,11 +1033,4 @@ return{
"Tetris Research community member, Virtual content creator.\nPractically the mascot of the community. Voice actress of Techmino.",
"https://space.bilibili.com/846180",
},
-
- {"Windkey",
- "wdk windkey fengyaoshi",
- "name",
- "Former community member.\nBad reputation due to excessive center 4-wides.",
- "https://space.bilibili.com/25576872",
- },
}
diff --git a/parts/language/dict_zh.lua b/parts/language/dict_zh.lua
index affb4b1d..a90ed840 100644
--- a/parts/language/dict_zh.lua
+++ b/parts/language/dict_zh.lua
@@ -940,7 +940,7 @@ return{
{"xb",
"xb t043",
"name",
- "【研究群】「T043」\n研究群赛事主要主办人",
+ "【研究群】「T043」\n俄罗斯方块中文维基(灰机wiki)主要编者(之一",
"https://space.bilibili.com/226132",
},
{"蕴空之灵",
@@ -1033,12 +1033,6 @@ return{
"【研究群】「T1934」\nvup,T99国内一流战术型玩家",
"https://space.bilibili.com/147529",
},
- {"ditoly",
- "葵 ditoly icrem kuimei jk t3055",
- "name",
- "【研究群】「T3055」\n被清华劝退现于北大的打块天才jk\n(好像也被北大劝退了?不知道)",
- "https://space.bilibili.com/13014410",
- },
{"蓝绿",
"蓝绿 lanlv gompyn imple lee blari'o blariho t3182",
"name",
@@ -1050,11 +1044,4 @@ return{
"【研究群】「T7023」\nvup,喜欢打块的猫猫(Z酱单推),techmino配音之一",
"https://space.bilibili.com/846180",
},
-
- {"Windkey",
- "wdk windkey fengyaoshi",
- "name",
- "曾经是群友,对战基本只用开局c4w导致风评很差,想学c4w可以看他",
- "https://space.bilibili.com/25576872",
- },
}
\ No newline at end of file
From e44a10de2c78a494227e8f6f0a5b2ab9b7d9bf3e Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 01:30:45 +0800
Subject: [PATCH 13/48] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Zframework/init.lua | 15 ++++++++++-----
parts/modes/drought_l.lua | 2 +-
parts/modes/sprintMPH.lua | 2 +-
parts/modes/sprintPenta.lua | 2 +-
parts/player/draw.lua | 4 ++--
5 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/Zframework/init.lua b/Zframework/init.lua
index 52d69656..3eb6b149 100644
--- a/Zframework/init.lua
+++ b/Zframework/init.lua
@@ -461,10 +461,15 @@ local devColor={
}
love.draw,love.update=nil--remove default draw/update
function love.run()
- local SCN=SCN
- local SETTING=SETTING
+ local love=love
+ local SCN,WIDGET=SCN,WIDGET
+ local VOC,BG,SYSFX=VOC,BG,SYSFX
+ local TASK,LOG,TEXT=TASK,LOG,TEXT
+
+ local SETTING=SETTING
local TIME=TIME
+
local STEP,WAIT=love.timer.step,love.timer.sleep
local FPS=love.timer.getFPS
local MINI=love.window.isMinimized
@@ -506,12 +511,12 @@ function love.run()
TASK.update()
WS.update(dt)
VOC.update()
- BG.update(dt)
+ BG.update(dt)--BG animation
SYSFX.update(dt)
WIDGET.update()--Widgets animation
- if SCN.update then SCN.update(dt)end--Scene Updater
+ if SCN.update then SCN.update(dt)end--Scene updater
if SCN.swapping then SCN.swapUpdate()end--Scene swapping animation
- TEXT.update()
+ TEXT.update()--Update global texts animation
LOG.update()
--DRAW
diff --git a/parts/modes/drought_l.lua b/parts/modes/drought_l.lua
index adff9e2d..dbdef6bf 100644
--- a/parts/modes/drought_l.lua
+++ b/parts/modes/drought_l.lua
@@ -7,7 +7,7 @@ return{
for _=1,3 do P:getNext(7)end
while true do
YIELD()
- if not P.nextQueue[1] then
+ if not P.nextQueue[1]then
local height=FREEROW.get(0)
local max=#P.field
if max>0 then
diff --git a/parts/modes/sprintMPH.lua b/parts/modes/sprintMPH.lua
index b1717e05..d4cecb31 100644
--- a/parts/modes/sprintMPH.lua
+++ b/parts/modes/sprintMPH.lua
@@ -19,7 +19,7 @@ return{
end,
score=function(P)return{P.stat.time,P.stat.piece}end,
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
- comp=function(a,b)return a[1]2 and 2.2/#bk or 1
gc_scale(k)
- for i=1,#bk do for j=1,#bk[1] do
+ for i=1,#bk do for j=1,#bk[1]do
if bk[i][j]then
gc_draw(texture[clr],30*(j-#bk[1]*.5)-30,-30*(i-#bk*.5))-- drawCell(i-#bk*.5,j-#bk[1]*.5,clr)
end
@@ -497,7 +497,7 @@ function draw.drawNext_hidden(P)
local bk,clr=P.nextQueue[N].bk,P.nextQueue[N].color
local k=#bk>2 and 2.2/#bk or 1
gc_scale(k)
- for i=1,#bk do for j=1,#bk[1] do
+ for i=1,#bk do for j=1,#bk[1]do
if bk[i][j]then
gc_draw(texture[clr],30*(j-#bk[1]*.5)-30,-30*(i-#bk*.5))-- drawCell(i-#bk*.5,j-#bk[1]*.5,clr)
end
From b4d27f3d0d065e5e13a0cb682cb5ecc6e96a3cf6 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 01:33:11 +0800
Subject: [PATCH 14/48] =?UTF-8?q?=E4=BF=AE=E6=94=B9doGC=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=E4=B8=A4=E4=B8=AA=E5=91=BD=E4=BB=A4=E7=9A=84=E7=BC=A9=E7=95=A5?=
=?UTF-8?q?=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Zframework/doGC.lua | 4 ++--
parts/scenes/load.lua | 10 +++++-----
parts/users.lua | 6 +++---
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/Zframework/doGC.lua b/Zframework/doGC.lua
index 10708bf7..80ee3149 100644
--- a/Zframework/doGC.lua
+++ b/Zframework/doGC.lua
@@ -2,8 +2,8 @@ local gc=love.graphics
local cmds={
move="translate",
zoom="scale",
- rgb="setColor",
- wid="setLineWidth",
+ setc="setColor",
+ lwid="setLineWidth",
line="line",
rect="rectangle",
circ="circle",
diff --git a/parts/scenes/load.lua b/parts/scenes/load.lua
index 67357aaa..e335af55 100644
--- a/parts/scenes/load.lua
+++ b/parts/scenes/load.lua
@@ -88,7 +88,7 @@ local loadingThread=coroutine.wrap(function()
{"poly","line",7,24,56,24,56,39,39,39,39,56,24,56,24,39,7,39},
}YIELD()
modeIcons.infinite=DOGC{64,64,
- {"wid",4},
+ {"lwid",4},
{"circ","line",32,32,28},
{"line",32,32,32,14},
{"line",32,32,41,41},
@@ -99,15 +99,15 @@ local loadingThread=coroutine.wrap(function()
{"rect","fill",30,52,4,4},
}YIELD()
modeIcons.t49=DOGC{64,64,
- {"wid",2},
+ {"lwid",2},
{"rect","line",05,05,10,20},{"rect","line",49,05,10,20},
{"rect","line",05,39,10,20},{"rect","line",49,39,10,20},
{"rect","line",20,10,23,43},
- {"rgb",1,1,1,.7},
+ {"setc",1,1,1,.7},
{"rect","fill",20,10,23,43},
}YIELD()
modeIcons.t99=DOGC{64,64,
- {"wid",2},
+ {"lwid",2},
{"rect","line",02,02,6,12},{"rect","line",11,02,6,12},
{"rect","line",02,18,6,12},{"rect","line",11,18,6,12},
{"rect","line",02,34,6,12},{"rect","line",11,34,6,12},
@@ -117,7 +117,7 @@ local loadingThread=coroutine.wrap(function()
{"rect","line",47,34,6,12},{"rect","line",56,34,6,12},
{"rect","line",47,50,6,12},{"rect","line",56,50,6,12},
{"rect","line",20,10,23,43},
- {"rgb",1,1,1,.7},
+ {"setc",1,1,1,.7},
{"rect","fill",20,10,23,43},
}YIELD()
diff --git a/parts/users.lua b/parts/users.lua
index dc9161d6..5b651e0f 100644
--- a/parts/users.lua
+++ b/parts/users.lua
@@ -4,10 +4,10 @@ local fs=love.filesystem
local ins=table.insert
local texture_noImage=DOGC{32,32,
- {"rgb",0,0,0},
+ {"setc",0,0,0},
{"rect","fill",0,0,32,32},
- {"rgb",1,1,1},
- {"wid",3},
+ {"setc",1,1,1},
+ {"lwid",3},
{"line",0,0,31,31},
{"line",0,31,31,0},
}
From 30c5493486fe12c06372405aed200c516a419fc0 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 08:27:58 +0800
Subject: [PATCH 15/48] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A0=E9=99=90?=
=?UTF-8?q?=E8=B8=A2=E5=A2=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/player/player.lua | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parts/player/player.lua b/parts/player/player.lua
index 62c25616..7dadb01b 100644
--- a/parts/player/player.lua
+++ b/parts/player/player.lua
@@ -602,7 +602,7 @@ function Player:spin(d,ifpre)
if not ifpre then
self:freshBlock("move")
end
- if kickData[test][2]>0 and self.freshTime~=t and self.curY~=self.imgY then
+ if kickData[test][2]>0 and self.freshTime==t and self.curY~=self.imgY then
self.freshTime=self.freshTime-1
end
From 7ebda3b9aee04248d738fd7ed7bb9e57d94eefcc Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 09:38:31 +0800
Subject: [PATCH 16/48] =?UTF-8?q?=E5=AF=B9=E6=88=98=E8=83=8C=E6=99=AF?=
=?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=B8=BB=E9=A2=98=E9=BB=98=E8=AE=A4=E8=83=8C?=
=?UTF-8?q?=E6=99=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/modes/netBattle.lua | 1 -
1 file changed, 1 deletion(-)
diff --git a/parts/modes/netBattle.lua b/parts/modes/netBattle.lua
index c9bcbd58..e86df1d6 100644
--- a/parts/modes/netBattle.lua
+++ b/parts/modes/netBattle.lua
@@ -6,7 +6,6 @@ return{
pushSpeed=5,
garbageSpeed=2,
noMod=true,
- bg="space",
bgm={"race","push","secret8th","secret7th","waterfall","oxygen","shining terminal","storm","rockblock","magicblock","cruelty"},
},
load=function()
From 798a6c0eb64b24c6879d0859715ae46aba5c0c88 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 09:39:19 +0800
Subject: [PATCH 17/48] =?UTF-8?q?=E5=BE=AE=E8=B0=83=E8=AF=8D=E5=85=B8?=
=?UTF-8?q?=E5=92=8C=E6=B3=A8=E9=87=8A=E7=9A=84=E4=B8=80=E4=BA=9B=E5=AD=97?=
=?UTF-8?q?=E7=AC=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/gametoolfunc.lua | 12 ++++++------
parts/language/dict_zh.lua | 2 +-
parts/language/lang_zh.lua | 2 ++
3 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/parts/gametoolfunc.lua b/parts/gametoolfunc.lua
index 60568f41..2e342ec0 100644
--- a/parts/gametoolfunc.lua
+++ b/parts/gametoolfunc.lua
@@ -1006,16 +1006,16 @@ do--function drawFWM()
string.char(65,117,116,111,114,32,100,111,32,106,111,103,111,58,32,77,114,90,95,50,54,10,71,114,97,118,97,195,167,195,181,101,115,32,99,111,110,116,101,110,100,111,32,101,115,116,97,32,77,97,114,99,97,10,100,101,32,195,161,103,117,97,32,110,195,163,111,32,115,195,163,111,32,97,117,116,111,114,105,122,97,100,97,115),
string.char(65,117,116,104,111,114,58,32,77,114,90,95,50,54,10,82,101,99,111,114,100,105,110,103,115,32,99,111,110,116,97,105,110,105,110,103,32,116,104,105,115,10,119,97,116,101,114,109,97,114,107,32,97,114,101,32,117,110,97,117,116,104,111,114,105,122,101,100),
}
- --你竟然找到了这里!那么在动手之前读读下面这些吧。
- --【魔幻躲关键字搜索警告,看得懂就行】
- --千万不要为了在网络公共场合发视屏或者直播需要而擅自删除这部分代码!
- --录制视屏上传到公共场合(包括但不限于任何视屏平台/论坛/几十个人以上的社区群等)很可能会对Techmino未来的发展有负面影响
- --如果被TTC发现,TTC随时可以用DMCA从法律层面强迫停止开发,到时候谁都没得玩。这是真的,已经有几个方块这么死了…
+ --你竟然找到了这里!那么在动手之前读读下面这些吧。
+ --【魔幻错别字躲关键字搜索警告,看得懂就行】
+ --千万不要为了在网络公共场合发视屏或者直播需要而擅自删除这部分代码!
+ --录制视屏上传到公共场合(包括但不限于任何视屏平台/论坛/好几十个人及以上的非方块社区/群等)很可能会对Techmino未来的发展有负面影响
+ --如果被TTC发现,随时可能被他们用DMCA从法律层面强迫停止开发,到时候谁都没得玩。这是真的,已经有几个方块这么死了…
--氵印限制还可以减少低质量视屏泛滥,也能减轻过多不是真的感兴趣路人玩家入坑可能带来的压力
--想发视屏的话请先向作者申请,描述录制的大致内容,同意了才可以去关闭氵印
--等Techmino发展到一定程度之后会解除这个限制
--最后,别把藏在这里的东西截图/复制出去哦~
- --感谢您对Techmino的支持!!!
+ --感谢您对Techmino的支持!!!
local setFont,TIME,mStr=setFont,TIME,mStr
function drawFWM()
local t=TIME()
diff --git a/parts/language/dict_zh.lua b/parts/language/dict_zh.lua
index a90ed840..e30e49c9 100644
--- a/parts/language/dict_zh.lua
+++ b/parts/language/dict_zh.lua
@@ -922,7 +922,7 @@ return{
{"Teatube",
"teatube ttb chaguan chanaiye sifangchaye t022",
"name",
- "【研究群】「T022」\n40行33秒 top数据高峰约50L70A\n研究群管理,探索群群主,茶服服主,人形方块百科史书,现中文方块维基主催\n自2011年正式加入CN方块社区以来,以探索方块有趣的思想作为主动力,茶茶今天也在茶馆里当着茶房管理员——\n\n其他名称:TTB,永远旋转的炸弹,茶乃叶,四方茶叶\n明明茶管是蓝孩子却被群友叫茶娘…怎么想都很奇怪啊!嘛大家喜欢的话就随便啦——",
+ "【研究群】「T022」\n40行33秒 top数据高峰约50L70A\n研究群管理,探索群群主,茶服服主,人形方块百科史书,现中文方块维基主催\n自2011年正式加入CN方块社区以来,以探索方块有趣的思想作为主动力,茶茶今天也在茶馆里当着茶房管理员——\n\n其他名称:TTB,永远旋转的炸弹,茶乃叶,四方茶叶\n明明茶管是蓝孩子却被群友叫茶娘…怎么想都很奇怪啊!嘛大家喜欢的话就随便啦——",
"https://space.bilibili.com/834903",
},
{"Flyz",
diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua
index 71efaac4..ba76826b 100644
--- a/parts/language/lang_zh.lua
+++ b/parts/language/lang_zh.lua
@@ -996,6 +996,8 @@ return{
"Techmino shell了解一下",
"Techmino安卓下载",
"Techmino好玩!",
+ "Techmino 好玩!",
+ "Techmino 濂界帺锛",
"Techmino有一个Nspire-CX版本!",
"Techmino在哪里下载",
"Techminohaowan",
From ae41e5f2e6ed03fc5733a4588db6513e2a0f7945 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 11:54:17 +0800
Subject: [PATCH 18/48] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BC=805=E4=BA=BA?=
=?UTF-8?q?=E6=88=BF=E7=9A=84=E6=8C=89=E9=92=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/lang_en.lua | 3 ++-
parts/language/lang_pt.lua | 3 ++-
parts/language/lang_sp.lua | 3 ++-
parts/language/lang_zh.lua | 3 ++-
parts/scenes/net_rooms.lua | 24 ++++++++++++------------
5 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua
index 8fa032e3..4ca4de30 100644
--- a/parts/language/lang_en.lua
+++ b/parts/language/lang_en.lua
@@ -253,7 +253,8 @@ return{
refreshing="Refreshing Rooms",
noRoom="Such emptiness much void, come back later?",
refresh="Refresh",
- new="New Room",
+ new="New Room(2)",
+ new2="New Room(5)",
join="Join",
up="↑",
down="↓",
diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua
index d8972fa9..25cc3192 100644
--- a/parts/language/lang_pt.lua
+++ b/parts/language/lang_pt.lua
@@ -253,7 +253,8 @@ return{
-- refreshing="Refreshing Rooms",
noRoom="Nenhuma sala agora",
-- refresh="Refresh",
- -- new="New room",
+ -- new="New Room(2)",
+ -- new2="New Room(5)",
-- join="Join",
up="↑",
down="↓",
diff --git a/parts/language/lang_sp.lua b/parts/language/lang_sp.lua
index 051d7aeb..67131844 100644
--- a/parts/language/lang_sp.lua
+++ b/parts/language/lang_sp.lua
@@ -231,7 +231,8 @@ return{
-- refreshing="Refreshing Rooms",
noRoom="No Hay Salas Actualmente",
refresh="Refrescar",
- new="Sala Nueva",
+ new="Sala Nueva(2)",
+ new2="Sala Nueva(5)",
join="Unirse",
up="↑",
down="↓",
diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua
index ba76826b..c2da81b7 100644
--- a/parts/language/lang_zh.lua
+++ b/parts/language/lang_zh.lua
@@ -253,7 +253,8 @@ return{
refreshing="刷新房间列表中",
noRoom="一个房间都没有哎...",
refresh="刷新",
- new="创建房间",
+ new="创建房间(2)",
+ new2="创建房间(5)",
join="加入",
up="↑",
down="↓",
diff --git a/parts/scenes/net_rooms.lua b/parts/scenes/net_rooms.lua
index 4c823fdc..166adfaa 100644
--- a/parts/scenes/net_rooms.lua
+++ b/parts/scenes/net_rooms.lua
@@ -28,15 +28,14 @@ function scene.keyDown(k)
if fetchTimer<=3.26 then
fetchRoom()
end
- elseif k=="n"then
+ elseif k=="m"or k=="n"then
if TIME()-lastCreateRoomTime>16.2 then
NET.createRoom(
- kb.isDown("1")and"solo"or
- kb.isDown("2")and"classic"or
+ k=="m"and"classic"or
tonumber(USER.uid)<100 and(
- kb.isDown("3")and"r49"or
- kb.isDown("4")and"r99"or
- kb.isDown("5")and"unlimited"
+ kb.isDown("q")and"r49"or
+ kb.isDown("w")and"r99"or
+ kb.isDown("e")and"unlimited"
)or"solo",
(USERS.getName(USER.uid)or"???").."'s room"
)
@@ -87,7 +86,7 @@ end
function scene.draw()
--Fetching timer
gc.setColor(1,1,1,.26)
- gc.arc("fill","pie",240,620,60,-1.5708,-1.5708-1.2566*fetchTimer)
+ gc.arc("fill","pie",130,620,60,-1.5708,-1.5708-1.2566*fetchTimer)
--Room list
gc.setColor(1,1,1)
@@ -122,11 +121,12 @@ local function hide_noRoom()return #NET.roomList==0 end
scene.widgetList={
WIDGET.newText{name="refreshing",x=640,y=255,font=45,hide=function()return not NET.getlock("fetchRoom")end},
WIDGET.newText{name="noRoom", x=640,y=260,font=40,hide=function()return #NET.roomList>0 or NET.getlock("fetchRoom")end},
- WIDGET.newKey{name="refresh", x=240,y=620,w=140,h=140,font=35,code=fetchRoom, hide=function()return fetchTimer>3.26 end},
- WIDGET.newKey{name="new", x=440,y=620,w=140,h=140,font=25,code=pressKey"n"},
- WIDGET.newKey{name="join", x=640,y=620,w=140,h=140,font=40,code=pressKey"return", hide=hide_noRoom},
- WIDGET.newKey{name="up", x=840,y=585,w=140,h=70,font=40,code=pressKey"up", hide=hide_noRoom},
- WIDGET.newKey{name="down", x=840,y=655,w=140,h=70,font=40,code=pressKey"down", hide=hide_noRoom},
+ WIDGET.newKey{name="refresh", x=130,y=620,w=140,h=140,font=35,code=fetchRoom, hide=function()return fetchTimer>3.26 end},
+ WIDGET.newKey{name="new", x=330,y=620,w=140,h=140,font=20,code=pressKey"n"},
+ WIDGET.newKey{name="new2", x=530,y=620,w=140,h=140,font=20,code=pressKey"m"},
+ WIDGET.newKey{name="join", x=730,y=620,w=140,h=140,font=40,code=pressKey"return", hide=hide_noRoom},
+ WIDGET.newKey{name="up", x=930,y=585,w=140,h=70,font=40,code=pressKey"up", hide=hide_noRoom},
+ WIDGET.newKey{name="down", x=930,y=655,w=140,h=70,font=40,code=pressKey"down", hide=hide_noRoom},
WIDGET.newButton{name="back", x=1140,y=640,w=170,h=80,font=40,code=backScene},
}
From 8d0e89faf9d472747aff559803e4beedf3f1f888 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 10:13:54 +0800
Subject: [PATCH 19/48] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E5=AE=8C=E5=96=84USERS?=
=?UTF-8?q?=E6=A8=A1=E5=9D=97=EF=BC=8C=E5=8D=87=E7=BA=A7=E5=A4=B4=E5=83=8F?=
=?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/globalTables.lua | 1 +
parts/net.lua | 11 ++++++-----
parts/scenes/net_rooms.lua | 2 +-
parts/users.lua | 32 +++++++++-----------------------
4 files changed, 17 insertions(+), 29 deletions(-)
diff --git a/parts/globalTables.lua b/parts/globalTables.lua
index 04e7c4fc..79964d89 100644
--- a/parts/globalTables.lua
+++ b/parts/globalTables.lua
@@ -250,6 +250,7 @@ SETTING={--Settings
10,13,2,8
},
face={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ dataSaving=false,
--Graphic
block=true,ghost=.3,center=1,
diff --git a/parts/net.lua b/parts/net.lua
index 9863a2fe..9770b9f3 100644
--- a/parts/net.lua
+++ b/parts/net.lua
@@ -120,7 +120,7 @@ function NET.wsclose_stream()
WS.close("stream")
end
---Account
+--Account & User
function NET.register(username,email,password)
if NET.lock("register")then
WS.send("app",JSON.encode{
@@ -141,12 +141,13 @@ function NET.getAccessToken()
WS.send("user",JSON.encode{action=0})
end
end
-function NET.getUserInfo(id,ifDetail)
+function NET.getUserInfo(uid)
+ local hash=not SETTING.dataSaving and USERS.getHash(uid)
WS.send("user",JSON.encode{
action=1,
data={
- id=id,
- detailed=ifDetail or false,
+ id=uid,
+ hash=hash,
},
})
end
@@ -297,7 +298,7 @@ function NET.updateWS_user()
LOG.print(text.loginSuccessed)
--Get self infos
- NET.getUserInfo()
+ NET.getUserInfo(USER.uid)
NET.unlock("wsc_user")
elseif res.action==0 then--Get accessToken
NET.accessToken=res.accessToken
diff --git a/parts/scenes/net_rooms.lua b/parts/scenes/net_rooms.lua
index 166adfaa..228a5f81 100644
--- a/parts/scenes/net_rooms.lua
+++ b/parts/scenes/net_rooms.lua
@@ -37,7 +37,7 @@ function scene.keyDown(k)
kb.isDown("w")and"r99"or
kb.isDown("e")and"unlimited"
)or"solo",
- (USERS.getName(USER.uid)or"???").."'s room"
+ (USERS.getUsername(USER.uid)or"???").."'s room"
)
lastCreateRoomTime=TIME()
else
diff --git a/parts/users.lua b/parts/users.lua
index 5b651e0f..0ef2adaf 100644
--- a/parts/users.lua
+++ b/parts/users.lua
@@ -1,8 +1,6 @@
local loadImage=love.graphics.newImage
local fs=love.filesystem
-local ins=table.insert
-
local texture_noImage=DOGC{32,32,
{"setc",0,0,0},
{"rect","fill",0,0,32,32},
@@ -14,27 +12,22 @@ local texture_noImage=DOGC{32,32,
local function _getEmptyUser()
return{
- uid=-1,
username="[X]",
motto="Techmino haowan",
- hash=false,
+ hash="",
new=false,
}
end
-local imgReqSeq={}
local db_img={}
local db=setmetatable({},{__index=function(self,k)
local file="cache/user"..k..".dat"
- if fs.getInfo(file)then
- rawset(self,k,JSON.decode(fs.read(file)))
- if fs.getInfo(self[k].hash)then
- db_img[k].avatar=loadImage(self[k].hash)
- end
- else
- rawset(self,k,_getEmptyUser())
+ local d=fs.getInfo(file)and JSON.decode(fs.read(file))or _getEmptyUser()
+ rawset(self,k,d)
+ if type(d.hash)=="string"and #d.hash>0 and fs.getInfo(d.hash)then
+ db_img[k].avatar=loadImage(d.hash)
end
- return self[k]
+ return d
end})
local USERS={}
@@ -51,31 +44,24 @@ function USERS.updateUserData(data)
if data.avatar then
fs.write("cache/"..data.hash,data.avatar:sub(data.avatar:find","+1))
db_img[uid].avatar=loadImage("cache/"..data.hash)
- db[uid].hash=data.hash
+ db[uid].hash=type(data.hash)=="string"and data.hash>0 and data.hash
db[uid].new=true
end
- needSave=true
end
function USERS.getUsername(uid)return db[uid].username end
function USERS.getMotto(uid)return db[uid].motto end
+function USERS.getHash(uid)return db[uid].hash end
function USERS.getAvatar(uid)
if db_img[uid]then
return db_img[uid]
else
if not db[uid].new then
- ins(imgReqSeq,uid)
+ NET.getUserInfo(uid)
db[uid].new=true
end
return texture_noImage
end
end
-function USERS.update()
- if #imgReqSeq>0 and WS.status("user")=="running"then
- NET.getUserInfo(imgReqSeq[#imgReqSeq],true)
- imgReqSeq[#imgReqSeq]=nil
- end
-end
-
return USERS
\ No newline at end of file
From 214e317804c3fc2f35e3f56edba3ecd29dc34fea Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 20:43:20 +0800
Subject: [PATCH 20/48] =?UTF-8?q?=E8=81=94=E7=BD=91=E4=B8=BB=E8=8F=9C?=
=?UTF-8?q?=E5=8D=95/=E6=88=BF=E9=97=B4=E5=88=97=E8=A1=A8=E6=94=B9?=
=?UTF-8?q?=E4=B8=BA=E4=B8=BB=E9=A2=98=E9=BB=98=E8=AE=A4=E8=83=8C=E6=99=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/scenes/net_menu.lua | 2 +-
parts/scenes/net_rooms.lua | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/parts/scenes/net_menu.lua b/parts/scenes/net_menu.lua
index ff8d9cf2..5cb229d9 100644
--- a/parts/scenes/net_menu.lua
+++ b/parts/scenes/net_menu.lua
@@ -4,7 +4,7 @@ local scene={}
function scene.sceneInit()
lastLogoutTime=-1e99
- BG.set("space")
+ BG.set()
end
function scene.sceneBack()
NET.wsclose_play()
diff --git a/parts/scenes/net_rooms.lua b/parts/scenes/net_rooms.lua
index 228a5f81..c4943232 100644
--- a/parts/scenes/net_rooms.lua
+++ b/parts/scenes/net_rooms.lua
@@ -14,7 +14,7 @@ end
local scene={}
function scene.sceneInit()
- BG.set("space")
+ BG.set()
scrollPos=0
selected=1
fetchRoom()
From 1bf20a3217b94100370da9d5673359ece58e0971 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 20:47:31 +0800
Subject: [PATCH 21/48] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=81=94=E7=BD=91?=
=?UTF-8?q?=E5=AF=B9=E6=88=98=E7=9A=84=E6=94=BB=E5=87=BB=E5=8A=A8=E7=94=BB?=
=?UTF-8?q?=E5=8F=AF=E8=83=BD=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/player/player.lua | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/parts/player/player.lua b/parts/player/player.lua
index 7dadb01b..39d33c9f 100644
--- a/parts/player/player.lua
+++ b/parts/player/player.lua
@@ -336,6 +336,7 @@ function Player:ifoverlap(bk,x,y)
end
end
function Player:attack(R,send,time,line,fromStream)
+ local atkFX=self.gameEnv.atkFX
if GAME.net then
if self.type=="human"then--Local player attack others
ins(GAME.rep,GAME.frame)
@@ -346,6 +347,9 @@ function Player:attack(R,send,time,line,fromStream)
line*0x100000000+
0x2000000000000
)
+ if atkFX then
+ self:createBeam(R,send,atkFX,self.cur.color)
+ end
end
if fromStream and R.type=="human"then--Local player receiving lines
ins(GAME.rep,GAME.frame)
@@ -360,6 +364,9 @@ function Player:attack(R,send,time,line,fromStream)
end
else
R:receive(self,send,time,line)
+ if atkFX then
+ self:createBeam(R,send,atkFX,self.cur.color)
+ end
end
end
function Player:receive(A,send,time,line)
@@ -1328,9 +1335,6 @@ do--Player.drop(self)--Place piece
if M>0 then
for i=1,M do
self:attack(self.atker[i],send,sendTime,generateLine(self:RND(10)))
- if ENV.atkFX then
- self:createBeam(self.atker[i],send,ENV.atkFX,C.color)
- end
end
else
T=randomTarget(self)
@@ -1344,9 +1348,6 @@ do--Player.drop(self)--Place piece
end
if T then
self:attack(T,send,sendTime,generateLine(self:RND(10)))
- if ENV.atkFX then
- self:createBeam(T,send,ENV.atkFX,C.color)
- end
end
end
if self.sound and send>3 then SFX.play("emit",min(send,7)*.1)end
From 444c5e571e65ec847e3edcac2cfd31f3d310a230 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Fri, 16 Apr 2021 21:15:52 +0800
Subject: [PATCH 22/48] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B2=A1=E5=BC=80ihs?=
=?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E6=8F=90=E5=89=8Dhold=E4=BC=9A?=
=?UTF-8?q?=E6=AD=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/player/player.lua | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/parts/player/player.lua b/parts/player/player.lua
index 39d33c9f..bc2de066 100644
--- a/parts/player/player.lua
+++ b/parts/player/player.lua
@@ -781,12 +781,12 @@ function Player:popNext(ifhold)--Pop nextQueue to hand
end
end
- local _=self.keyPressing
+ local pressing=self.keyPressing
--IHS
- if not ifhold and _[8]and self.gameEnv.ihs then
+ if not ifhold and pressing[8]and self.gameEnv.ihs and self.holdTime>0 then
self:hold(true)
- _[8]=false
+ pressing[8]=false
else
self:resetBlock()
end
@@ -804,9 +804,9 @@ function Player:popNext(ifhold)--Pop nextQueue to hand
end
--IHdS
- if _[6]and not ifhold then
+ if pressing[6]and not ifhold then
self.act_hardDrop(self)
- _[6]=false
+ pressing[6]=false
end
else
self:hold()
From 287d5a805dacfb54405ec6fcf3a68469ae070992 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sat, 17 Apr 2021 01:39:18 +0800
Subject: [PATCH 23/48] =?UTF-8?q?play=E5=9C=BA=E6=99=AF=E6=94=B9=E5=90=8Dg?=
=?UTF-8?q?ame=EF=BC=8C=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81=EF=BC=8C?=
=?UTF-8?q?=E9=87=8D=E6=9E=84GAME.frame=E7=9B=B8=E5=85=B3=E5=86=85?=
=?UTF-8?q?=E5=AE=B9=EF=BC=8C=E4=BF=AE=E5=A4=8D=E8=81=94=E7=BD=91=E5=BD=95?=
=?UTF-8?q?=E5=83=8F=E6=92=AD=E6=94=BE=E4=B8=8D=E6=AD=A3=E7=A1=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Zframework/init.lua | 2 +-
parts/gametoolfunc.lua | 41 +++++------------------------
parts/globalTables.lua | 1 -
parts/modes/attacker_h.lua | 2 +-
parts/modes/attacker_u.lua | 2 +-
parts/modes/defender_l.lua | 2 +-
parts/modes/defender_n.lua | 2 +-
parts/modes/dig_h.lua | 2 +-
parts/modes/dig_u.lua | 2 +-
parts/modes/survivor_e.lua | 2 +-
parts/modes/survivor_h.lua | 2 +-
parts/modes/survivor_l.lua | 2 +-
parts/modes/survivor_n.lua | 2 +-
parts/modes/survivor_u.lua | 2 +-
parts/player/draw.lua | 6 ++---
parts/player/init.lua | 10 ++++---
parts/player/player.lua | 10 +++----
parts/player/update.lua | 39 ++++++++++++++++++++-------
parts/scenes/depause.lua | 4 +--
parts/scenes/{play.lua => game.lua} | 10 +++----
parts/scenes/main.lua | 2 --
parts/scenes/mode.lua | 2 +-
parts/scenes/net_game.lua | 12 +++------
parts/scenes/pause.lua | 18 ++++++-------
24 files changed, 81 insertions(+), 98 deletions(-)
rename parts/scenes/{play.lua => game.lua} (95%)
diff --git a/Zframework/init.lua b/Zframework/init.lua
index 3eb6b149..b91d8303 100644
--- a/Zframework/init.lua
+++ b/Zframework/init.lua
@@ -349,7 +349,7 @@ end
function love.focus(f)
if f then
love.timer.step()
- elseif SCN.cur=="play"and SETTING.autoPause then
+ elseif SCN.cur=="game"and SETTING.autoPause then
pauseGame()
end
end
diff --git a/parts/gametoolfunc.lua b/parts/gametoolfunc.lua
index 2e342ec0..0c93cfb2 100644
--- a/parts/gametoolfunc.lua
+++ b/parts/gametoolfunc.lua
@@ -614,7 +614,7 @@ function loadGame(M,ifQuickPlay,ifNet)--Load a mode and go to game scene
SCN.go("net_game","swipeD")
else
drawableText.modeName:set(text.modes[M][1].." "..text.modes[M][2])
- SCN.go("play",ifQuickPlay and"swipeD"or"fade_togame")
+ SCN.go("game",ifQuickPlay and"swipeD"or"fade_togame")
SFX.play("enter")
end
end
@@ -731,7 +731,7 @@ do--function resetGameData(args)
end
function resetGameData(args,seed)
if not args then args=""end
- if PLAYERS[1]and not GAME.replaying and(GAME.frame>400 or GAME.result)then
+ if PLAYERS[1]and not GAME.replaying and(PLAYERS[1].frameRun>400 or GAME.result)then
mergeStat(STAT,PLAYERS[1].stat)
STAT.todayTime=STAT.todayTime+PLAYERS[1].stat.time
end
@@ -740,11 +740,11 @@ do--function resetGameData(args)
GAME.warnLVL0=0
GAME.warnLVL=0
if args:find("r")then
- GAME.frame=0
+ GAME.frameStart=0
GAME.recording=false
GAME.replaying=1
else
- GAME.frame=args:find("n")and 0 or 150-SETTING.reTime*15
+ GAME.frameStart=args:find("n")and 0 or 150-SETTING.reTime*15
GAME.seed=seed or rnd(1046101471,2662622626)
GAME.pauseTime=0
GAME.pauseCount=0
@@ -790,39 +790,10 @@ do--function resetGameData(args)
collectgarbage()
end
end
-function gameStart()--Call when countdown finish (GAME.frame==180)
- SFX.play("start")
- for P=1,#PLAYERS do
- P=PLAYERS[P]
- P.control=true
- P.timing=true
- P:popNext()
- end
-end
-function checkStart()
- if GAME.frame<=180 then
- if GAME.frame==180 then
- gameStart()
- elseif GAME.frame==60 or GAME.frame==120 then
- SFX.play("ready")
- end
- for p=1,#PLAYERS do
- local P=PLAYERS[p]
- if P.movDir~=0 then
- if P.moving
0 then
GAME.warnLVL=max(GAME.warnLVL-.026,0)
end
- if GAME.warnLVL>1.126 and GAME.frame%30==0 then
+ if GAME.warnLVL>1.126 and P1.frameRun%30==0 then
SFX.fplay("warning",SETTING.sfx_warn)
end
end
diff --git a/parts/globalTables.lua b/parts/globalTables.lua
index 79964d89..36c305d7 100644
--- a/parts/globalTables.lua
+++ b/parts/globalTables.lua
@@ -190,7 +190,6 @@ GAME={--Global game data
init=false, --If need initializing game when enter scene-play
net=false, --If play net game
- frame=0, --Frame count
result=false, --Game result (string)
rank=false, --Rank reached
pauseTime=0, --Time paused
diff --git a/parts/modes/attacker_h.lua b/parts/modes/attacker_h.lua
index 091e61db..0c8d1c69 100644
--- a/parts/modes/attacker_h.lua
+++ b/parts/modes/attacker_h.lua
@@ -8,7 +8,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"and P.atkBuffer.sum==0 then
+ if P.control and P.atkBuffer.sum==0 then
local p=#P.atkBuffer+1
local B,D=P.atkBuffer,P.modeData
local t
diff --git a/parts/modes/attacker_u.lua b/parts/modes/attacker_u.lua
index c0bf5798..623fa85f 100644
--- a/parts/modes/attacker_u.lua
+++ b/parts/modes/attacker_u.lua
@@ -7,7 +7,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"and P.atkBuffer.sum<4 then
+ if P.control and P.atkBuffer.sum<4 then
local p=#P.atkBuffer+1
local B,D=P.atkBuffer,P.modeData
local s
diff --git a/parts/modes/defender_l.lua b/parts/modes/defender_l.lua
index 12d44d08..35485db1 100644
--- a/parts/modes/defender_l.lua
+++ b/parts/modes/defender_l.lua
@@ -9,7 +9,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"then
+ if P.control then
local D=P.modeData
D.counter=D.counter+1
local t=math.max(240-2*D.wave,40)
diff --git a/parts/modes/defender_n.lua b/parts/modes/defender_n.lua
index fecff8cb..6e583278 100644
--- a/parts/modes/defender_n.lua
+++ b/parts/modes/defender_n.lua
@@ -9,7 +9,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"then
+ if P.control then
local D=P.modeData
D.counter=D.counter+1
local t=math.max(360-D.wave*2,60)
diff --git a/parts/modes/dig_h.lua b/parts/modes/dig_h.lua
index a1971249..009a0558 100644
--- a/parts/modes/dig_h.lua
+++ b/parts/modes/dig_h.lua
@@ -7,7 +7,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"then
+ if P.control then
local D=P.modeData
D.timer=D.timer+1
if D.timer>=math.max(90,180-D.wave)then
diff --git a/parts/modes/dig_u.lua b/parts/modes/dig_u.lua
index f6ad5bf3..312847ce 100644
--- a/parts/modes/dig_u.lua
+++ b/parts/modes/dig_u.lua
@@ -6,7 +6,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"then
+ if P.control then
local D=P.modeData
D.timer=D.timer+1
if D.timer>=math.max(30,80-.3*D.wave)then
diff --git a/parts/modes/survivor_e.lua b/parts/modes/survivor_e.lua
index 08078e7d..fd5d99a0 100644
--- a/parts/modes/survivor_e.lua
+++ b/parts/modes/survivor_e.lua
@@ -6,7 +6,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"then
+ if P.control then
local D=P.modeData
D.timer=D.timer+1
if D.timer>=math.max(60,150-2*D.wave)and P.atkBuffer.sum<4 then
diff --git a/parts/modes/survivor_h.lua b/parts/modes/survivor_h.lua
index fe29cfb5..06ae003d 100644
--- a/parts/modes/survivor_h.lua
+++ b/parts/modes/survivor_h.lua
@@ -6,7 +6,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"then
+ if P.control then
local D=P.modeData
D.timer=D.timer+1
local B=P.atkBuffer
diff --git a/parts/modes/survivor_l.lua b/parts/modes/survivor_l.lua
index f77b0c6b..579683fb 100644
--- a/parts/modes/survivor_l.lua
+++ b/parts/modes/survivor_l.lua
@@ -6,7 +6,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"then
+ if P.control then
local D=P.modeData
D.timer=D.timer+1
if D.timer>=math.max(60,150-D.wave)and P.atkBuffer.sum<20 then
diff --git a/parts/modes/survivor_n.lua b/parts/modes/survivor_n.lua
index 88a21325..0c8cfdad 100644
--- a/parts/modes/survivor_n.lua
+++ b/parts/modes/survivor_n.lua
@@ -6,7 +6,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"then
+ if P.control then
local D=P.modeData
D.timer=D.timer+1
if D.timer>=math.max(90,180-2*D.wave)and P.atkBuffer.sum<8 then
diff --git a/parts/modes/survivor_u.lua b/parts/modes/survivor_u.lua
index 37f0a08d..4f7608bd 100644
--- a/parts/modes/survivor_u.lua
+++ b/parts/modes/survivor_u.lua
@@ -8,7 +8,7 @@ return{
task=function(P)
while true do
YIELD()
- if P.control and SCN.cur=="play"then
+ if P.control then
local D=P.modeData
D.timer=D.timer+1
if D.timer>=math.max(300,600-10*D.wave)and P.atkBuffer.sum<20 then
diff --git a/parts/player/draw.lua b/parts/player/draw.lua
index b0335fea..f06cd03c 100644
--- a/parts/player/draw.lua
+++ b/parts/player/draw.lua
@@ -426,12 +426,12 @@ local function drawMission(P)
end
local function drawStartCounter(P)
gc_setColor(1,1,1)
- if GAME.frame<180 then
- if GAME.frame==0 then
+ if P.frameRun<180 then
+ if P.frameRun==0 then
setFont(70)
mStr(P.ready and text.beReady or text.notReady,305,220)
else
- local count=179-GAME.frame
+ local count=179-P.frameRun
gc_push("transform")
gc_translate(305,220)
setFont(95)
diff --git a/parts/player/init.lua b/parts/player/init.lua
index 244e43c5..01b01f29 100644
--- a/parts/player/init.lua
+++ b/parts/player/init.lua
@@ -43,7 +43,7 @@ local function pressKey(P,keyID)
P.keyPressing[keyID]=true
P.actList[keyID](P)
if P.control then
- ins(P.keyTime,1,GAME.frame)
+ ins(P.keyTime,1,P.frameRun)
P.keyTime[11]=nil
end
P.stat.key=P.stat.key+1
@@ -55,12 +55,12 @@ end
local function pressKey_Rec(P,keyID)
if P.keyAvailable[keyID]and P.alive then
local L=GAME.rep
- ins(L,GAME.frame)
+ ins(L,P.frameRun)
ins(L,keyID)
P.keyPressing[keyID]=true
P.actList[keyID](P)
if P.control then
- ins(P.keyTime,1,GAME.frame)
+ ins(P.keyTime,1,P.frameRun)
P.keyTime[11]=nil
end
P.stat.key=P.stat.key+1
@@ -68,7 +68,7 @@ local function pressKey_Rec(P,keyID)
end
local function releaseKey_Rec(P,keyID)
local L=GAME.rep
- ins(L,GAME.frame)
+ ins(L,P.frameRun)
ins(L,32+keyID)
P.keyPressing[keyID]=false
end
@@ -114,6 +114,7 @@ local function newEmptyPlayer(id,mini)
P.randGen=love.math.newRandomGenerator(GAME.seed)
+ P.frameRun=GAME.frameStart
P.alive=true
P.control=false
P.timing=false
@@ -354,6 +355,7 @@ function PLY.newDemoPlayer(id)
P.sound=true
P.demo=true
+ P.frameRun=180
P.draw=PLY.draw.demo
P.control=true
GAME.modeEnv=DemoEnv
diff --git a/parts/player/player.lua b/parts/player/player.lua
index bc2de066..7adb3ca3 100644
--- a/parts/player/player.lua
+++ b/parts/player/player.lua
@@ -339,7 +339,7 @@ function Player:attack(R,send,time,line,fromStream)
local atkFX=self.gameEnv.atkFX
if GAME.net then
if self.type=="human"then--Local player attack others
- ins(GAME.rep,GAME.frame)
+ ins(GAME.rep,self.frameRun)
ins(GAME.rep,
R.sid+
send*0x100+
@@ -352,7 +352,7 @@ function Player:attack(R,send,time,line,fromStream)
end
end
if fromStream and R.type=="human"then--Local player receiving lines
- ins(GAME.rep,GAME.frame)
+ ins(GAME.rep,self.frameRun)
ins(GAME.rep,
self.sid+
send*0x100+
@@ -960,7 +960,7 @@ do--Player.drop(self)--Place piece
function Player:drop()
local _
local CHN=VOC.getFreeChannel()
- self.dropTime[11]=ins(self.dropTime,1,GAME.frame)--Update speed dial
+ self.dropTime[11]=ins(self.dropTime,1,self.frameRun)--Update speed dial
local ENV=self.gameEnv
local Stat=self.stat
local piece=self.lastPiece
@@ -1609,7 +1609,7 @@ function tick_autoPause()
while true do
yield()
time=time+1
- if SCN.cur~="play"or GAME.frame<180 then
+ if SCN.cur~="game"or PLAYERS[1].frameRun<180 then
return
elseif time==120 then
pauseGame()
@@ -1697,7 +1697,7 @@ function Player:die()--Called both when win/lose!
end
if GAME.net then
if self.id==1 then
- ins(GAME.rep,GAME.frame)
+ ins(GAME.rep,self.frameRun)
ins(GAME.rep,0)
else
if self.lastRecv and self.lastRecv.id==1 then
diff --git a/parts/player/update.lua b/parts/player/update.lua
index 8290e6c8..2495b6c3 100644
--- a/parts/player/update.lua
+++ b/parts/player/update.lua
@@ -114,8 +114,29 @@ local update={
}
function update.alive(P,dt)
local ENV=P.gameEnv
+ local S=P.stat
+
+ P.frameRun=P.frameRun+1
+ if P.frameRun<=180 then
+ if P.frameRun==180 then
+ if P.id==1 then SFX.play("start")end
+ P.control=true
+ P.timing=true
+ P:popNext()
+ elseif P.frameRun==60 or P.frameRun==120 then
+ if P.id==1 then SFX.play("ready")end
+ end
+ if P.movDir~=0 then
+ if P.moving8 then
+ if P1.frameRun-lastUpstreamTime>8 then
local stream
stream,upstreamProgress=dumpRecording(GAME.rep,upstreamProgress)
if #stream>0 then
NET.uploadRecStream(stream)
else
- ins(GAME.rep,GAME.frame)
+ ins(GAME.rep,P1.frameRun)
ins(GAME.rep,0)
end
- lastUpstreamTime=PLAYERS[1].alive and GAME.frame or 1e99
+ lastUpstreamTime=PLAYERS[1].alive and P1.frameRun or 1e99
end
end
diff --git a/parts/scenes/pause.lua b/parts/scenes/pause.lua
index be7bb890..e4155e25 100644
--- a/parts/scenes/pause.lua
+++ b/parts/scenes/pause.lua
@@ -34,7 +34,7 @@ function scene.sceneInit(org)
local P=PLAYERS[1]
local S=P.stat
- timer=org=="play"and 0 or 50
+ timer=org=="game"and 0 or 50
local frameLostRate=(S.frame/S.time/60-1)*100
form={
@@ -113,14 +113,14 @@ function scene.sceneInit(org)
else
rank,trophy=nil
end
- if org~="play"and GAME.prevBG then
+ if org~="game"and GAME.prevBG then
BG.set(GAME.prevBG)
end
end
function scene.sceneBack()
love.keyboard.setKeyRepeat(true)
STAT.todayTime=STAT.todayTime+PLAYERS[1].stat.time
- if not GAME.replaying and(GAME.frame>400 or GAME.result)and not GAME.result then
+ if not GAME.replaying and(PLAYERS[1].frameRun>400 or GAME.result)and not GAME.result then
mergeStat(STAT,PLAYERS[1].stat)
FILE.save(STAT,"conf/data")
end
@@ -130,17 +130,17 @@ function scene.keyDown(key)
if key=="q"then
SCN.back()
elseif key=="escape"then
- SCN.swapTo(GAME.result and"play"or"depause","none")
+ SCN.swapTo(GAME.result and"game"or"depause","none")
elseif key=="s"then
GAME.prevBG=BG.cur
SCN.go("setting_sound")
elseif key=="r"then
resetGameData()
- SCN.swapTo("play","none")
+ SCN.swapTo("game","none")
elseif key=="p"then
if(GAME.result or GAME.replaying)and #PLAYERS==1 then
resetGameData("r")
- SCN.swapTo("play","none")
+ SCN.swapTo("game","none")
end
elseif key=="o"then
if(GAME.result or GAME.replaying)and #PLAYERS==1 and not GAME.saved and saveRecording()then
@@ -166,7 +166,7 @@ local textPos={90,131,-90,131,-200,-25,-90,-181,90,-181,200,-25}
local dataPos={90,143,-90,143,-200,-13,-90,-169,90,-169,200,-13}
function scene.draw()
local T=timer*.02
- if T<1 or GAME.result then SCN.scenes.play.draw()end
+ if T<1 or GAME.result then SCN.scenes.game.draw()end
--Dark BG
local _=T
@@ -194,7 +194,7 @@ function scene.draw()
gc.draw(drawableText.modeName,40,240)
--Infos
- if GAME.frame>180 then
+ if PLAYERS[1].frameRun>180 then
gc.setLineWidth(2)
--Finesse rank & trophy
if rank then
@@ -264,7 +264,7 @@ function scene.draw()
end
--Radar Chart
- if T>.5 and GAME.frame>180 then
+ if T>.5 and PLAYERS[1].frameRun>180 then
T=T*2-1
gc.setLineWidth(2)
gc.push("transform")
From 07b3606d42417cceed57b2d81d1286c7ae05b333 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sat, 17 Apr 2021 01:53:38 +0800
Subject: [PATCH 24/48] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=81=E5=BB=B6?=
=?UTF-8?q?=E5=88=B7=E6=96=B0=E6=AC=A1=E6=95=B0=E6=AF=94=E6=98=BE=E7=A4=BA?=
=?UTF-8?q?(=E8=AE=BE=E7=BD=AE)=E7=9A=84=E5=A4=9A=E4=B8=80=E6=AC=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/player/player.lua | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parts/player/player.lua b/parts/player/player.lua
index 7adb3ca3..39e5b52f 100644
--- a/parts/player/player.lua
+++ b/parts/player/player.lua
@@ -596,7 +596,7 @@ function Player:spin(d,ifpre)
local ix,iy=self.curX+self.cur.sc[2]-isc[2],self.curY+self.cur.sc[1]-isc[1]
for test=1,#kickData do
local x,y=ix+kickData[test][1],iy+kickData[test][2]
- if not self:ifoverlap(icb,x,y)and(self.freshTime>=0 or kickData[test][2]<0)then
+ if not self:ifoverlap(icb,x,y)and(self.freshTime>0 or kickData[test][2]<0)then
ix,iy=x,y
if self.gameEnv.moveFX and self.gameEnv.block then
self:createMoveFX()
From fbd3f05c639fd99457a75f1c8a30c49df6765d59 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sat, 17 Apr 2021 20:30:52 +0800
Subject: [PATCH 25/48] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8Fdtw=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E8=A1=97=E6=9C=BA=E6=A8=A1=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/lang_en.lua | 1 +
parts/language/lang_fr.lua | 1 +
parts/language/lang_pt.lua | 1 +
parts/language/lang_sp.lua | 1 +
parts/language/lang_symbol.lua | 1 +
parts/language/lang_zh.lua | 1 +
parts/scenes/app_dtw.lua | 88 +++++++++++++++++++++-------------
7 files changed, 62 insertions(+), 32 deletions(-)
diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua
index 4ca4de30..77486fd1 100644
--- a/parts/language/lang_en.lua
+++ b/parts/language/lang_en.lua
@@ -647,6 +647,7 @@ return{
},
app_dtw={
reset="Reset",
+ arcade="Arcade",
mode="Mode",
},
savedata={
diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua
index 1fa821f9..ef7a6fde 100644
--- a/parts/language/lang_fr.lua
+++ b/parts/language/lang_fr.lua
@@ -556,6 +556,7 @@ return{
},
app_dtw={
reset="Réinitialiser",
+ -- arcade="Arcade",
-- mode="Mode",
},
about={
diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua
index 25cc3192..cf3f82be 100644
--- a/parts/language/lang_pt.lua
+++ b/parts/language/lang_pt.lua
@@ -645,6 +645,7 @@ return{
},
app_dtw={
reset="Resetar",
+ -- arcade="Arcade",
-- mode="Mode",
},
savedata={
diff --git a/parts/language/lang_sp.lua b/parts/language/lang_sp.lua
index 67131844..ca7be88a 100644
--- a/parts/language/lang_sp.lua
+++ b/parts/language/lang_sp.lua
@@ -560,6 +560,7 @@ return{
},
app_dtw={
reset="Reiniciar",
+ -- arcade="Arcade",
mode="Modo",
},
savedata={
diff --git a/parts/language/lang_symbol.lua b/parts/language/lang_symbol.lua
index 7dfda31f..f95189ad 100644
--- a/parts/language/lang_symbol.lua
+++ b/parts/language/lang_symbol.lua
@@ -487,6 +487,7 @@ return{
},
app_dtw={
reset="R",
+ arcade="↓↓",
mode="?",
},
},
diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua
index c2da81b7..4f5fecb2 100644
--- a/parts/language/lang_zh.lua
+++ b/parts/language/lang_zh.lua
@@ -648,6 +648,7 @@ return{
},
app_dtw={
reset="重置",
+ arcade="街机",
mode="模式",
},
savedata={
diff --git a/parts/scenes/app_dtw.lua b/parts/scenes/app_dtw.lua
index a657eed5..e0c3f150 100644
--- a/parts/scenes/app_dtw.lua
+++ b/parts/scenes/app_dtw.lua
@@ -21,16 +21,17 @@ local state,progress
local startTime,time
local keyTime
local speed,maxSpeed
+local arcade,rollSpeed
local tileColor={
- COLOR.black,
- COLOR.dRed,
- COLOR.dG,
- COLOR.dB,
- COLOR.dY,
- COLOR.dSky,
- COLOR.dPurple,
+ {0,0,0},
+ {.3,0,0},
+ {0,.3,0},
+ {0,0,.3},
+ {.3,.3,0},
+ {0,.1,.3},
+ {.2,0,.3},
}
local modeName={
"Normal",
@@ -96,8 +97,9 @@ local function reset()
progress={}
state,time=0,0
score=0
+ rollSpeed=8
- pos={rnd(4)}for _=1,5 do newTile()end
+ pos={rnd(4)}for _=1,6 do newTile()end
height=0
diePos=false
end
@@ -106,6 +108,7 @@ local scene={}
function scene.sceneInit()
mode=1
+ arcade=true
reset()
BG.set("grey")
BGM.play("way")
@@ -165,6 +168,8 @@ function scene.keyDown(key)
elseif(key=="q"or key=="tab")and state==0 then
mode=mode%#modeName+1
reset()
+ elseif key=="w"and state==0 then
+ arcade=not arcade
end
end
end
@@ -181,62 +186,80 @@ end
function scene.update()
if state==1 then
- time=TIME()-startTime
local t=TIME()
+ time=t-startTime
local v=0
for i=2,20 do v=v+i*(i-1)*.3/(t-keyTime[i])end
speed=speed*.99+v*.01
if speed>maxSpeed then maxSpeed=speed end
+
+ if arcade then
+ height=height-rollSpeed
+ rollSpeed=rollSpeed+.00355
+ if height<-120 then
+ state=2
+ end
+ else
+ height=height*.6
+ end
end
- height=height*.6
end
function scene.draw()
--Draw mode
gc.setColor(1,1,1)
setFont(50)
- mStr(modeName[mode],155,300)
+ mStr(modeName[mode],155,380)
- --Draw speed
- setFont(45)
- gc.setColor(1,.6,.6)
- mStr(format("%.2f",maxSpeed/60),155,400)
- gc.setColor(1,1,1)
- mStr(format("%.2f",speed/60),155,460)
+ if arcade then
+ --Draw rolling speed
+ mStr(format("%.2f/s",rollSpeed/2),155,490)
+ else
+ --Draw speed
+ setFont(45)
+ gc.setColor(1,.6,.6)
+ mStr(format("%.2f",maxSpeed/60),155,460)
+ gc.setColor(1,1,1)
+ mStr(format("%.2f",speed/60),155,520)
+
+ --Progress time list
+ setFont(30)
+ gc.setColor(.6,.6,.6)
+ for i=1,#progress do
+ gc.print(progress[i],1030,120+25*i)
+ end
+ end
--Draw time
setFont(45)
gc.print(format("%.3f",time),1030,70)
- --Progress time list
- setFont(30)
- gc.setColor(.6,.6,.6)
- for i=1,#progress do
- gc.print(progress[i],1030,120+25*i)
- end
--Draw tiles
gc.setColor(1,1,1)
gc.rectangle("fill",300,0,680,720)
gc.setColor(tileColor[mode])
- for i=1,#pos do
- if pos[i]<10 then
- gc.rectangle("fill",130+170*pos[i]+8,720-i*120-height+8,170-16,120-16)
- else
- gc.rectangle("fill",130+170*(pos[i]%10)+8,720-i*120-height+8,170-16,120-16)
- gc.rectangle("fill",130+170*int(pos[i]/10)+8,720-i*120-height+8,170-16,120-16)
+ gc.push("transform")
+ gc.translate(0,720-height+8)
+ for i=1,#pos do
+ if pos[i]<10 then
+ gc.rectangle("fill",130+170*pos[i]+8,-i*120,170-16,120-16)
+ else
+ gc.rectangle("fill",130+170*(pos[i]%10)+8,-i*120,170-16,120-16)
+ gc.rectangle("fill",130+170*int(pos[i]/10)+8,-i*120,170-16,120-16)
+ end
end
- end
+ gc.pop()
--Draw track line
gc.setColor(0,0,0)
- gc.setLineWidth(4)
+ gc.setLineWidth(2)
for x=1,5 do
x=130+170*x
gc.line(x,0,x,720)
end
for y=0,6 do
- y=720-120*y-height
+ y=720-120*y-height%120
gc.line(300,y,980,y)
end
@@ -259,6 +282,7 @@ end
scene.widgetList={
WIDGET.newButton{name="reset", x=155,y=100,w=180,h=100,color="lGreen",font=40,code=pressKey"r"},
WIDGET.newButton{name="mode", x=155,y=220,w=180,h=100,font=40,code=pressKey"q",hide=function()return state~=0 end},
+ WIDGET.newSwitch{name="arcade", x=230,y=330,font=40,disp=function()return arcade end,code=pressKey"w",hide=function()return state~=0 end},
WIDGET.newButton{name="back", x=1140,y=640,w=170,h=80,font=40,code=backScene},
}
From 6bb589325bb43d4e97e6b9f74919a149d7a58534 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 00:11:28 +0800
Subject: [PATCH 26/48] =?UTF-8?q?=E6=88=BF=E9=97=B4=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E7=9A=84=20=E6=B8=B8=E6=88=8F=E4=B8=AD=20=E6=A0=87=E8=AE=B0?=
=?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=A4=9A=E8=AF=AD=E8=A8=80=E6=96=87=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/lang_en.lua | 1 +
parts/language/lang_fr.lua | 1 +
parts/language/lang_pt.lua | 1 +
parts/language/lang_sp.lua | 1 +
parts/language/lang_yygq.lua | 1 +
parts/language/lang_zh.lua | 1 +
parts/scenes/net_rooms.lua | 2 +-
7 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua
index 77486fd1..82304989 100644
--- a/parts/language/lang_en.lua
+++ b/parts/language/lang_en.lua
@@ -95,6 +95,7 @@ return{
createRoomTooFast="Hold on there! We can't handle this fast!",
createRoomSuccessed="Room successfully created!",
+ started="Playing",
joinRoom="joined the room.",
leaveRoom="left the room.",
notReady="Waiting",
diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua
index ef7a6fde..5948d250 100644
--- a/parts/language/lang_fr.lua
+++ b/parts/language/lang_fr.lua
@@ -96,6 +96,7 @@ return{
createRoomTooFast="Vous avez créé un salon trop rapidement !",
createRoomSuccessed="Salon créé avec succès !",
+ -- started="Playing",
joinRoom="a rejoint le salon.",
leaveRoom="a quitté le salon.",
notReady="Attente",
diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua
index cf3f82be..2a0f3629 100644
--- a/parts/language/lang_pt.lua
+++ b/parts/language/lang_pt.lua
@@ -95,6 +95,7 @@ return{
-- createRoomTooFast="Create room too fast!",
-- createRoomSuccessed="Room successfully created!",
+ -- started="Playing",
joinRoom="Entrou a sala.",
leaveRoom="Saiu da sala.",
-- notReady="Waiting",
diff --git a/parts/language/lang_sp.lua b/parts/language/lang_sp.lua
index ca7be88a..46931b6f 100644
--- a/parts/language/lang_sp.lua
+++ b/parts/language/lang_sp.lua
@@ -96,6 +96,7 @@ return{
createRoomTooFast="¡Creas salas muy rápido, párale we!",
createRoomSuccessed="¡Sala creada con éxito!",
+ -- started="Playing",
joinRoom="entró a la sala.",
leaveRoom="salió de la sala.",
notReady="En espera",
diff --git a/parts/language/lang_yygq.lua b/parts/language/lang_yygq.lua
index 88f9187b..34aed1be 100644
--- a/parts/language/lang_yygq.lua
+++ b/parts/language/lang_yygq.lua
@@ -43,6 +43,7 @@ return{
createRoomTooFast="手痒要开这么多房间?",
createRoomSuccessed="创好了",
+ started="开了",
notReady="没有准备好",
beReady="准备好了",
champion="神仙是 $1",
diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua
index 4f5fecb2..14e1a430 100644
--- a/parts/language/lang_zh.lua
+++ b/parts/language/lang_zh.lua
@@ -95,6 +95,7 @@ return{
createRoomTooFast="创建房间太快啦,等等吧",
createRoomSuccessed="创建房间成功!",
+ started="游戏中",
joinRoom="进入房间",
leaveRoom="离开房间",
notReady="等待中",
diff --git a/parts/scenes/net_rooms.lua b/parts/scenes/net_rooms.lua
index c4943232..158744e7 100644
--- a/parts/scenes/net_rooms.lua
+++ b/parts/scenes/net_rooms.lua
@@ -104,7 +104,7 @@ function scene.draw()
end
if R.start then
gc.setColor(0,1,0)
- gc.print("S",800,66+40*i)
+ gc.print(text.started,800,66+40*i)
end
gc.setColor(.9,.9,1)
gc.print(scrollPos+i,95,66+40*i)
From 91c240c463c955b3bdb10ea8f02eedd8b338f68a Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 00:35:23 +0800
Subject: [PATCH 27/48] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=EF=BC=8CDOGC=E6=A8=A1=E5=9D=97=E5=8A=A0=E4=B8=80=E4=B8=AA?=
=?UTF-8?q?=E5=91=BD=E4=BB=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Zframework/doGC.lua | 1 +
parts/texture.lua | 18 ++++++++----------
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/Zframework/doGC.lua b/Zframework/doGC.lua
index 80ee3149..f7731541 100644
--- a/Zframework/doGC.lua
+++ b/Zframework/doGC.lua
@@ -4,6 +4,7 @@ local cmds={
zoom="scale",
setc="setColor",
lwid="setLineWidth",
+ draw="draw",
line="line",
rect="rectangle",
circ="circle",
diff --git a/parts/texture.lua b/parts/texture.lua
index f8631006..ad382c34 100644
--- a/parts/texture.lua
+++ b/parts/texture.lua
@@ -34,7 +34,6 @@ end
--Texture of puzzle mode
TEXTURE.puzzleMark={}
-gc.setLineWidth(3)
for i=1,17 do
TEXTURE.puzzleMark[i]=NSC(30,30)
local _=minoColor[i]
@@ -47,15 +46,14 @@ for i=18,24 do
gc.setColor(minoColor[i])
gc.rectangle("line",7,7,16,16)
end
-local _=NSC(30,30)
-gc.setColor(1,1,1)
-gc.line(5,5,25,25)
-gc.line(5,25,25,5)
-TEXTURE.puzzleMark[-1]=NSC(30,30)
-gc.setColor(1,1,1,.8)
-gc.draw(_)
-_:release()
-gc.setCanvas()
+TEXTURE.puzzleMark[-1]=DOGC{30,30,
+ {"setc",1,1,1,.8},
+ {"draw",DOGC{30,30,
+ {"lwid",3},
+ {"line",5,5,25,25},
+ {"line",5,25,25,5},
+ }}
+}
--A simple pixel font
TEXTURE.pixelNum={}
From b723469b437e73ad6af4758e3aeaf6e58e25491b Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 14:20:53 +0800
Subject: [PATCH 28/48] =?UTF-8?q?=E4=BF=AE=E6=94=B9DOGC=E6=A8=A1=E5=9D=97s?=
=?UTF-8?q?etc=E7=9A=84=E5=91=BD=E4=BB=A4=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Zframework/doGC.lua | 2 +-
parts/scenes/load.lua | 4 ++--
parts/texture.lua | 2 +-
parts/users.lua | 4 ++--
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Zframework/doGC.lua b/Zframework/doGC.lua
index f7731541..1a0e83fb 100644
--- a/Zframework/doGC.lua
+++ b/Zframework/doGC.lua
@@ -2,7 +2,7 @@ local gc=love.graphics
local cmds={
move="translate",
zoom="scale",
- setc="setColor",
+ rgba="setColor",
lwid="setLineWidth",
draw="draw",
line="line",
diff --git a/parts/scenes/load.lua b/parts/scenes/load.lua
index e335af55..819e2aac 100644
--- a/parts/scenes/load.lua
+++ b/parts/scenes/load.lua
@@ -103,7 +103,7 @@ local loadingThread=coroutine.wrap(function()
{"rect","line",05,05,10,20},{"rect","line",49,05,10,20},
{"rect","line",05,39,10,20},{"rect","line",49,39,10,20},
{"rect","line",20,10,23,43},
- {"setc",1,1,1,.7},
+ {"rgba",1,1,1,.7},
{"rect","fill",20,10,23,43},
}YIELD()
modeIcons.t99=DOGC{64,64,
@@ -117,7 +117,7 @@ local loadingThread=coroutine.wrap(function()
{"rect","line",47,34,6,12},{"rect","line",56,34,6,12},
{"rect","line",47,50,6,12},{"rect","line",56,50,6,12},
{"rect","line",20,10,23,43},
- {"setc",1,1,1,.7},
+ {"rgba",1,1,1,.7},
{"rect","fill",20,10,23,43},
}YIELD()
diff --git a/parts/texture.lua b/parts/texture.lua
index ad382c34..49ec0336 100644
--- a/parts/texture.lua
+++ b/parts/texture.lua
@@ -47,7 +47,7 @@ for i=18,24 do
gc.rectangle("line",7,7,16,16)
end
TEXTURE.puzzleMark[-1]=DOGC{30,30,
- {"setc",1,1,1,.8},
+ {"rgba",1,1,1,.8},
{"draw",DOGC{30,30,
{"lwid",3},
{"line",5,5,25,25},
diff --git a/parts/users.lua b/parts/users.lua
index 0ef2adaf..69dfe114 100644
--- a/parts/users.lua
+++ b/parts/users.lua
@@ -2,9 +2,9 @@ local loadImage=love.graphics.newImage
local fs=love.filesystem
local texture_noImage=DOGC{32,32,
- {"setc",0,0,0},
+ {"rgba",0,0,0},
{"rect","fill",0,0,32,32},
- {"setc",1,1,1},
+ {"rgba",1,1,1},
{"lwid",3},
{"line",0,0,31,31},
{"line",0,31,31,0},
From c26f50d35934fc0785b1ffeb8565cf7f2ed718f6 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 14:54:11 +0800
Subject: [PATCH 29/48] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86?=
=?UTF-8?q?=E8=AF=8D=E6=9D=A1=EF=BC=8C=E8=B0=83=E6=95=B4=E8=AF=8D=E6=9D=A1?=
=?UTF-8?q?=E9=A1=BA=E5=BA=8F(=E6=84=8F=E8=A7=81=E6=9D=A5=E8=87=AA?=
=?UTF-8?q?=E7=BE=A4=E5=8F=8B=20=E5=BA=93=E5=BE=B7=E9=87=8C=E5=B0=94)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/dict_en.lua | 120 ++++++++++++++---------------
parts/language/dict_zh.lua | 150 ++++++++++++++++++-------------------
2 files changed, 135 insertions(+), 135 deletions(-)
diff --git a/parts/language/dict_en.lua b/parts/language/dict_en.lua
index af51ba06..9bcb1676 100644
--- a/parts/language/dict_en.lua
+++ b/parts/language/dict_en.lua
@@ -202,26 +202,6 @@ return{
"term",
"Blocks per minute\n\tReflects playing speed of a player.\nAlso apparently MrZ forgot that it can be called PPM to avoid confusing with the music term.",
},
- {"APM",
- "apm attackperminute",
- "term",
- "Attack per minute\n\tReflects offensive power of a player.\nIn Techmino, the concept of \"attack\" sometimes includes the fractional lines of an attack. Since sending garbage rounds down before sending, this value can be higher than your actual attack power.",
- },
- {"SPM",
- "spm linessentperminute",
- "term",
- "[lines] Sent per minute\n\tReflects *actual* offensive power of a player. (Seems like this does not count lines used for cancelling garbage in buffer.)",
- },
- {"ADPM",
- "adpm attackdigperminute",
- "term",
- "Attack&Dig per minute\n\tUsed to compare skill differences between the two players within one match; slightly more accurate than APM.",
- },
- {"DPM",
- "dpm digperminute defendperminute",
- "term",
- "Dig/Defend per minute\n\tSometimes can reflect how well a player can survive garbage.",
- },
{"KPM",
"kpm keysperminute keypressesperminute",
"term",
@@ -232,47 +212,32 @@ return{
"term",
"Keypresses per piece\n\tReflects how efficient the player is with the controls. Reduce this number by learning to finesse.",
},
+ {"APM",
+ "apm attackperminute",
+ "term",
+ "Attack per minute\n\tReflects offensive power of a player.\nIn Techmino, the concept of \"attack\" sometimes includes the fractional lines of an attack. Since sending garbage rounds down before sending, this value can be higher than your actual attack power.",
+ },
+ {"SPM",
+ "spm linessentperminute",
+ "term",
+ "[lines] Sent per minute\n\tReflects *actual* offensive power of a player. (Seems like this does not count lines used for cancelling garbage in buffer.)",
+ },
+ {"DPM",
+ "dpm digperminute defendperminute",
+ "term",
+ "Dig/Defend per minute\n\tSometimes can reflect how well a player can survive garbage.",
+ },
+ {"ADPM",
+ "adpm attackdigperminute",
+ "term",
+ "Attack&Dig per minute\n\tUsed to compare skill differences between the two players within one match; slightly more accurate than APM.",
+ },
{"APL",
"apl attackperline efficiency",
"term",
"Attack per line [cleared]\n\tAlso known as \"efficiency\"; reflects the per-line efficiency of attacks. For example, Tetrises and T-spins have higher efficiency than doubles and triples.",
},
- {"All Clear",
- "pc perfectclear ac allclear",
- "term",
- "Formerly known as Perfect Clear (PC). That is also still the term preferred by the communities and used in Techmino.\nClear all minoes on the field.",
- },
- {"HPC",
- "hpc hc clear halfperfectclear",
- "term",
- "*Techmino-exclusive*\nHalf Perfect Clear\nExtension of an All Clear. Should a line clear resemble an All Clear when ignoring lines below the clear, the clear is a Half Perfect Clear, and sends a small extra amount of attack.",
- },
- {"TSS",
- "tss t1 tspinsingle",
- "term",
- "T-Spin Single\nClear 1 line with a T-Spin.",
- },
- {"TSD",
- "tsd t2 tspindouble",
- "term",
- "T-Spin Double\nClear 2 lines with a T-Spin.",
- },
- {"TST",
- "tst t3 tspintriple",
- "term",
- "T-Spin Triple\nClear 3 lines with a T-Spin.",
- },
- {"MTSS",
- "mtss minitspinsingle tsms tspinminisingle",
- "term",
- "Mini T-Spin Single\nFormerly known as T-Spin Mini Single.\nClear 1 line with a Mini T-Spin.\nDifferent games apparently have different ways to determine whether a T-Spin is a Mini.",
- },
- {"MTSD",
- "mtsd minitspindouble tsmd tspinminidouble",
- "term",
- "Mini T-Spin Double\nFormerly known as T-Spin Mini Double (TSMD).\nClear 2 lines with a Mini T-Spin.\nDifferent games apparently have different ways to determine whether a T-Spin is a Mini.\nIn addition, different games have different behavior when clearing a Mini T-Spin Double: some games credit this move correctly, and some games use a different displayed text because they never programmed this in.",
- },
{"Single",
"single",
"term",
@@ -298,12 +263,27 @@ return{
"term",
"The name of the game (and its trademark). Also the name for clearing 4 lines.\nCoined from Tetra (greek for \"four\") and Tennis (favorite sport of Alexey Pajitnov, creator of Tetris).",
},
+ {"All Clear",
+ "pc perfectclear ac allclear",
+ "term",
+ "Formerly known as Perfect Clear (PC). That is also still the term preferred by the communities and used in Techmino.\nClear all minoes on the field.",
+ },
+ {"HPC",
+ "hpc hc clear halfperfectclear",
+ "term",
+ "*Techmino-exclusive*\nHalf Perfect Clear\nExtension of an All Clear. Should a line clear resemble an All Clear when ignoring lines below the clear, the clear is a Half Perfect Clear, and sends a small extra amount of attack.",
+ },
{"Spin",
"spin",
"term",
"Use rotation to move a piece into a position otherwise unreachable. In some games, this sends extra attack or awards extra score.",
},
+ {"Mini",
+ "mini",
+ "term",
+ "A modifier to Spins, applied to Spin actions that the game considers easy (thus the name \"EZ T-Spin\" in an old game). Score and attack bonuses are reduced for Mini Spins.\nDifferent games have different rules for what counts as a Mini, and many are not intuitive. You can just remember a few common shapes.",
+ },
{"All-Spin",
"allspin",
"term",
@@ -314,6 +294,31 @@ return{
"term",
"A spin using the T piece.\nIn modern official games, T-Spins are detected using the 3-corner rule, i.e. if at least three of the four cells diagonal to the rotation center, it is a T-Spin. Some games have extra rules to mark a T-Spin as a Mini T-Spin instead, which has reduced attack/score.",
},
+ {"TSS",
+ "tss t1 tspinsingle",
+ "term",
+ "T-Spin Single\nClear 1 line with a T-Spin.",
+ },
+ {"TSD",
+ "tsd t2 tspindouble",
+ "term",
+ "T-Spin Double\nClear 2 lines with a T-Spin.",
+ },
+ {"TST",
+ "tst t3 tspintriple",
+ "term",
+ "T-Spin Triple\nClear 3 lines with a T-Spin.",
+ },
+ {"MTSS",
+ "mtss minitspinsingle tsms tspinminisingle",
+ "term",
+ "Mini T-Spin Single\nFormerly known as T-Spin Mini Single.\nClear 1 line with a Mini T-Spin.\nDifferent games apparently have different ways to determine whether a T-Spin is a Mini.",
+ },
+ {"MTSD",
+ "mtsd minitspindouble tsmd tspinminidouble",
+ "term",
+ "Mini T-Spin Double\nFormerly known as T-Spin Mini Double (TSMD).\nClear 2 lines with a Mini T-Spin.\nDifferent games apparently have different ways to determine whether a T-Spin is a Mini.\nIn addition, different games have different behavior when clearing a Mini T-Spin Double: some games credit this move correctly, and some games use a different displayed text because they never programmed this in.",
+ },
{"O-Spin",
"ospin",
"term",
@@ -350,11 +355,6 @@ return{
"*Techmino-exclusive*\nTechmino Rotation System\nThe rotation system used in Techmino.\nIt is based on SRS, with fixes on common cases where S/Z are locked from rotating, and some extra useful kicks. Each pentomino also has a kick table roughly based on SRS logic.",
},
- {"Mini",
- "mini",
- "term",
- "A modifier to Spins, applied to Spin actions that the game considers easy (thus the name \"EZ T-Spin\" in an old game). Score and attack bonuses are reduced for Mini Spins.\nDifferent games have different rules for what counts as a Mini, and many are not intuitive. You can just remember a few common shapes.",
- },
{"Back to Back",
"b2b btb backtoback",
"term",
diff --git a/parts/language/dict_zh.lua b/parts/language/dict_zh.lua
index e30e49c9..635b4def 100644
--- a/parts/language/dict_zh.lua
+++ b/parts/language/dict_zh.lua
@@ -61,7 +61,7 @@ return{
{"King of Stackers",
"回合制 kos kingofstackers",
"game",
- "King of Stackers\n网页版回合制对战方块点击即玩(可能很卡)",
+ "King of Stackers\n网页版回合制对战方块点击即玩(可能很卡),主要规则为:以7块为一个回合,双方轮流在自己场地中放置方块,任何的攻击只在对方回合放一块不消行后生效,策略性很强。有不同的伤害表设置。",
"https://kingofstackers.com/games.php",
},
{"Tetr.js",
@@ -79,13 +79,13 @@ return{
{"Jstris",
"网页 手机 js jstris",
"game",
- "全平台网页对战方块点击即玩(服务器在国外可能很卡)",
+ "全平台网页对战方块点击即玩(服务器在国外可能很卡)。有常用的科研向单机模式和自定义各种参数的功能,但没有很多强制速度向的挑战项目。都是纯色素材导致画面效果不怎么好。移动端的键位设置并不舒适。",
"https://jstris.jezevec10.com",
},
{"TETR.IO",
"网页 io tetrio",
"game",
- "炫酷在线对战方块点击即玩(推荐使用电脑,移动设备需要外接键盘)(服务器在国外,可能超级慢甚至打不开)",
+ "炫酷在线对战方块点击即玩(推荐使用电脑,移动设备需要外接键盘)(服务器在国外,可能超级慢甚至打不开)有很科学的排位系统,自定义功能非常全面,同时也提供电脑客户端下载(可以去除广告)。缺点是单机模式非常非常少。",
"https://tetr.io",
},
{"World Wide Combo",
@@ -202,26 +202,6 @@ return{
"term",
"Block per Minute\n块每分,体现玩家下块速度\n别问为什么不是PPM,问就是不知道",
},
- {"APM",
- "apm attack gongji",
- "term",
- "Attack per Minute\n攻击每分,即玩家每分钟能打出的垃圾行数。\n一定程度体现玩家攻击力",
- },
- {"SPM",
- "spm send gongji",
- "term",
- "Send per Minute\n送出每分,即玩家每分钟实际打出去给对手的垃圾行数。\n一定程度体现玩家给对手实际造成的攻击力",
- },
- {"ADPM",
- "adpm attack defend",
- "term",
- "Atk+Dig per Minute\n攻击+挖掘每分,用于在同一局游戏内对比玩家间水平差距,比apm更准确一些",
- },
- {"DPM",
- "dpm dig defend",
- "term",
- "Dig/Defend per Minute\n挖掘每分,即玩家每分钟向下挖掘的垃圾行数。\n某些时候可以体现玩家生存能力\n\n或:防御(抵消+挖掘)每分",
- },
{"KPM",
"kpm sudu",
"term",
@@ -232,6 +212,26 @@ return{
"term",
"Key per Piece\n按键每块,体现玩家操作是否繁琐。\n学会极简提升操作效率以减少此数字",
},
+ {"APM",
+ "apm attack gongji",
+ "term",
+ "Attack per Minute\n攻击每分,即玩家每分钟能打出的垃圾行数。\n一定程度体现玩家攻击力",
+ },
+ {"SPM",
+ "spm send gongji",
+ "term",
+ "Send per Minute\n送出每分,即玩家每分钟实际打出去给对手的垃圾行数。\n一定程度体现玩家给对手实际造成的攻击力",
+ },
+ {"DPM",
+ "dpm dig defend",
+ "term",
+ "Dig/Defend per Minute\n挖掘每分,即玩家每分钟向下挖掘的垃圾行数。\n某些时候可以体现玩家生存能力\n\n或:防御(抵消+挖掘)每分",
+ },
+ {"ADPM",
+ "adpm attack defend",
+ "term",
+ "Atk+Dig per Minute\n攻击+挖掘每分,用于在同一局游戏内对比玩家间水平差距,比apm更准确一些。\n在TETR.IO中有一个叫vs的数据就是ADPM(调整了比例)",--TODO
+ },
{"APL",
"apl xiaolv",
"term",
@@ -239,6 +239,31 @@ return{
},
--术语(消除名)
+ {"Single",
+ "single xiaoyi",
+ "term",
+ "消一行",
+ },
+ {"Double",
+ "double xiaoer",
+ "term",
+ "消两行",
+ },
+ {"Triple",
+ "triple xiaosan",
+ "term",
+ "消三行",
+ },
+ {"Techrash",
+ "techrash xiaosi",
+ "term",
+ "消四行(Tech限定)",
+ },
+ {"Tetris",
+ "tetris xiaosi",
+ "term",
+ "商标,Tetris游戏名,同时也是别的方块游戏里消四行的名字。\n含义是Tetra(古希腊语 四)+Tennis(游戏原作者喜欢的运动)。",
+ },
{"PC",
"pc perfectclear ac allclear quanxiao quanqing",
"term",
@@ -247,7 +272,29 @@ return{
{"HPC",
"hpc hc clear banqing banquanqing banquanxiao",
"term",
- "Half-PC\nPC(全消)的外延,如果去掉消除部分之下的场地后上面部分是一个PC,那么这个消除就是半PC,打出一些攻击(仅Tech中有)。",
+ "Half-PC\nPC(全消)的外延,\"下方有剩余方块\"的全消(特别地,如果只消1行则必须不剩余玩家放置的方块),能打出一些攻击和防御(仅Tech中有)。",
+ },
+
+ --术语(旋转相关)
+ {"Spin",
+ "spin xuanzhuan zuandong",
+ "term",
+ "(部分游戏中)使用旋转将方块卡进不能直接移动进入的位置,具体判定规则不同游戏不一样,可能会有攻击加成。",
+ },
+ {"Mini",
+ "迷你 mini",
+ "term",
+ "spin附加mini后攻击会弱化,用于平衡不同难易度的tspin攻击,判定在不同游戏都不一样,而且大多数很不好理解,建议只记住常见形状即可。",
+ },
+ {"Allspin",
+ "allspin",
+ "term",
+ "一种规则,指所有方块的spin都有攻击力,而不止是Tspin才有攻击(Tspin only)。",
+ },
+ {"Tspin",
+ "tspin txuan",
+ "term",
+ "在官方规则中,当T方块在锁定前的最后一个操作是旋转,并且锁定后旋转中心对应的四个斜角位置有三个不是空气,那么这就是一个Tspin。PS:如果满足一些额外条件会被打上mini标签减少攻击力。",
},
{"TSS",
"tss t1 tspin",
@@ -274,55 +321,13 @@ return{
"term",
"mini T-spin double\n指T方块mini spin消2行(仅部分游戏内存在且判定不一样)。",
},
- {"Single",
- "single xiaoyi",
- "term",
- "消一行",
- },
- {"Double",
- "double xiaoer",
- "term",
- "消两行",
- },
- {"Triple",
- "triple xiaosan",
- "term",
- "消三行",
- },
- {"Techrash",
- "techrash xiaosi",
- "term",
- "消四行(Tech限定)",
- },
- {"Tetris",
- "tetris xiaosi",
- "term",
- "商标,Tetris游戏名,同时也是别的方块游戏里消四行的名字。\n含义是Tetra(古希腊语 四)+Tennis(作者喜欢的运动)。",
- },
-
- --术语(旋转相关)
- {"Spin",
- "spin xuanzhuan zuandong",
- "term",
- "(部分游戏中)使用旋转将方块卡进不能直接移动进入的位置,具体判定规则不同游戏不一样,可能会有攻击加成。",
- },
- {"Allspin",
- "allspin",
- "term",
- "一种规则,指所有方块的spin都有攻击力,而不止是Tspin才有攻击(Tspin only)。",
- },
- {"Tspin",
- "tspin txuan",
- "term",
- "在官方规则中,当T方块在锁定前的最后一个操作是旋转,并且锁定后旋转中心对应的四个斜角位置有三个不是空气,那么这就是一个Tspin。PS:如果满足一些额外条件会被打上mini标签减少攻击力。",
- },
{"Ospin",
"ospin",
"term",
"由于O方块旋转后形状不变,只能左右移动,所以经常被卡住,于是方块圈就有了ospin的梗:\n有人做过T99/TF中的O变形的特效视频且广为流传;\nT-ex设计的旋转系统可以用spin使O传送进坑;\nTech设计的变形系统中可以旋转O来变形/传送进入一些特定形状的洞。",
},
- {"踢墙",
- "踢墙 wallkick tiqiang",
+ {"旋转系统(踢墙)",
+ "旋转系统 踢墙 xuanzhuanxitong wallkick tiqiang",
"term",
"(部分游戏中)方块旋转后可能和场地或者墙壁有碰撞,此时系统可能会给方块施加的偏移,让方块不会因此被卡住而不能操作。详见SRS词条",
},
@@ -353,11 +358,6 @@ return{
},
--术语(游戏内名词)
- {"mini",
- "迷你 mini",
- "term",
- "spin附加mini后攻击会弱化,用于平衡不同难易度的tspin攻击,判定在不同游戏都不一样,而且大多数很不好理解,建议只记住常见形状即可。",
- },
{"B2B",
"大满贯 b2b btb backtoback",
"term",
@@ -433,7 +433,7 @@ return{
{"连击",
"连击 ren combo",
"term",
- "从第二次消除起叫1ren/combo",
+ "从第二次消除起叫1ren/combo,打出的攻击根据游戏设计的不同也不同",
},
{"Side",
"连击 ·side",
@@ -538,7 +538,7 @@ return{
{"SDF",
"软降速度 sdf softdropfactor",
"term",
- "Soft Drop Factor,软降速度因子(倍率),部分游戏中的软降机制是让重力变为原来的若干倍,SDF就是这个倍数。\n基本所有官块和tetr.io使用这个机制,本游戏不使用。",
+ "Soft Drop Factor,软降速度因子(倍率),部分游戏中的软降机制就是在按住软件键时方块受到的重力变为原来的若干倍,SDF就是这个变大的倍数。\n基本所有官块和tetr.io使用这个机制,但本游戏不使用。",
},
{"bag7出块",
"bag出块 bag7bag",
From 532b1f370aea1cf4b0606772be1e1eacabb64da1 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 15:15:52 +0800
Subject: [PATCH 30/48] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=BB=E8=8F=9C?=
=?UTF-8?q?=E5=8D=95=E7=82=B9=E5=87=BB=E8=81=94=E7=BD=91=E6=B8=B8=E6=88=8F?=
=?UTF-8?q?=E6=8C=89=E9=92=AE=E4=BB=A3=E7=A0=81=E7=9A=84=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/scenes/main.lua | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/parts/scenes/main.lua b/parts/scenes/main.lua
index d4896977..776174f9 100644
--- a/parts/scenes/main.lua
+++ b/parts/scenes/main.lua
@@ -70,18 +70,21 @@ function scene.keyDown(key)
end
elseif key=="a"then
if testButton(3)then
- if WS.status("user")=="running"then
- if not NET.connected then
- TEXT.show(text.noInternet,640,450,60,"flicker")
- SFX.play("finesseError")
- elseif not NET.allow_online then
+ if NET.connected then
+ if NET.allow_online then
+ if WS.status("user")=="running"then
+ NET.getAccessToken()
+ else
+ SCN.go("login")
+ end
+ else
TEXT.show(text.needUpdate,640,450,60,"flicker")
SFX.play("finesseError")
- else
- NET.getAccessToken()
end
else
- SCN.go("login")
+ TEXT.show(text.noInternet,640,450,60,"flicker")
+ NET.wsconn_app()
+ SFX.play("finesseError")
end
end
elseif key=="z"then
From fb838d198a44ab5f2e35be8acd93ebeb9a69214f Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 17:28:53 +0800
Subject: [PATCH 31/48] =?UTF-8?q?=E6=8A=A5=E9=94=99=E5=90=8E=E8=87=AA?=
=?UTF-8?q?=E5=8A=A8=E6=96=AD=E5=BC=80=E6=89=80=E6=9C=89ws?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/net.lua | 13 ++++---------
parts/scenes/error.lua | 4 ++++
2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/parts/net.lua b/parts/net.lua
index 9770b9f3..fd9f783b 100644
--- a/parts/net.lua
+++ b/parts/net.lua
@@ -110,15 +110,10 @@ function NET.wsconn_stream()
end
--Disconnect
-function NET.wsclose_user()
- WS.close("user")
-end
-function NET.wsclose_play()
- WS.close("play")
-end
-function NET.wsclose_stream()
- WS.close("stream")
-end
+function NET.wsclose_app()WS.close("app")end
+function NET.wsclose_user()WS.close("user")end
+function NET.wsclose_play()WS.close("play")end
+function NET.wsclose_stream()WS.close("stream")end
--Account & User
function NET.register(username,email,password)
diff --git a/parts/scenes/error.lua b/parts/scenes/error.lua
index 1c8dc774..94ef389d 100644
--- a/parts/scenes/error.lua
+++ b/parts/scenes/error.lua
@@ -12,6 +12,10 @@ function scene.sceneInit()
stateInfo=SYSTEM.."-"..VERSION.string.." scene:"..ERRDATA[#ERRDATA].scene
errorText=LOADED and text.errorMsg or"An error has occurred during loading.\nError info has been created, and you can send it to the author."
errorShot,errorInfo=ERRDATA[#ERRDATA].shot,ERRDATA[#ERRDATA].mes
+ NET.wsclose_app()
+ NET.wsclose_user()
+ NET.wsclose_play()
+ NET.wsclose_stream()
if SETTING then SFX.fplay("error",SETTING.voc*.8 or 0)end
end
From 8aa8e431a7419376471335bf4b13e3001a2b555e Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 17:29:20 +0800
Subject: [PATCH 32/48] =?UTF-8?q?=E8=B0=83=E6=95=B4/=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=E5=87=A0=E4=B8=AA=E4=B8=AD=E6=96=87tip?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/lang_zh.lua | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua
index 14e1a430..6e5ed217 100644
--- a/parts/language/lang_zh.lua
+++ b/parts/language/lang_zh.lua
@@ -805,6 +805,7 @@ return{
"本游戏可不是休闲游戏。",
"本游戏内置了几个休(ying)闲(he)小游戏哦~入口就藏在这个菜单",
"必须要软降才能到达的位置都会判定为极简操作",
+ "别看攻击效率不高,其实消四还是很强的",
"别问游戏名怎么取的,问就是随便想的",
"不同人打40行最合适的方式不一样,s1w/63/散消/s2w...",
"不同游戏(甚至不同模式)中不同战术的能力都不一样,并没有绝对的强弱之分",
@@ -829,6 +830,7 @@ return{
"对战游戏不是单机游戏,所以timing在对战里也非常重要!",
"多年小游戏玩家表示痛恨假加载,启动动画主要是在加载资源",
"多hold现代块又回来了!",
+ "俄罗斯方块完全可以作为电竞游戏",
"发现有个\"隐形\"皮肤了吗",
"方块不能吃",
"方块教会我们,合群了就会消失,...",
@@ -946,6 +948,7 @@ return{
"这里的极简判定不松不严,放心软降,小心hold!",
"震惊,我只是一条凑数tip吗",
"中国的方块起步晚,所以世界级高手很少…下一个会是你吗?",
+ "众所周知俄罗斯方块是经典编程练手游戏(?",
"注意到方块\"旋转\"的时候到底发生了些什么吗?",
"自定义场地可以画图实现逐页演示",
"总共有300多条tip哦",
@@ -980,7 +983,7 @@ return{
"Farter:\"是民间UI动效艺术作品\"",
"Farter:\"是一滩散乱的代码组成的蜜汁结构\"",
"Farter:\"它是现在的techmino已发布版本\"",
- "Farter:论方块的软工意义(就算这么小个范围内,各种取舍蒙混翻车现象都总会以很易懂的方式出现(",
+ "Farter:\"论方块的软工意义(就算这么小个范围内,各种取舍蒙混翻车现象都总会以很易懂的方式出现(\"",
"fin neo iso 是满足tspin条件的特殊t2的名字",
"if a==true",
"l-=-1",
@@ -990,7 +993,7 @@ return{
"sin²α-cos²β=-C(α+β)C(α-β)",
"sin²α-sin²β=S(α+β)S(α-β)",
"sin2α=2SαCα",
- "Staff名单里飘过的是赞助榜单,喜欢本游戏的话可以给Z酱打赞助",
+ "Staff名单里飘过的是赞助榜单,喜欢本游戏的话可以给Z酱打赞助哦",
"SΔABC=√(h(h-a)(h-b)(h-c)), h=(a+b+c)/2",
"Tech生日不太清楚,那就定在2019.6.26吧",
"Tech也有节日主题了哦",
From 34a7ab3bf3a190c07083c755e21c1eccc8c74653 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 17:57:35 +0800
Subject: [PATCH 33/48] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=94=B9?=
=?UTF-8?q?=E8=81=94=E7=BD=91=E7=8E=A9=E5=AE=B6=E5=BD=95=E5=83=8F=E6=92=AD?=
=?UTF-8?q?=E6=94=BE=E6=9C=BA=E5=88=B6=E5=90=8E=E6=8E=A5=E5=8F=97=E6=94=BB?=
=?UTF-8?q?=E5=87=BB=E6=97=B6=E6=8A=A5=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/player/player.lua | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parts/player/player.lua b/parts/player/player.lua
index 39e5b52f..6b7e9a5c 100644
--- a/parts/player/player.lua
+++ b/parts/player/player.lua
@@ -352,7 +352,7 @@ function Player:attack(R,send,time,line,fromStream)
end
end
if fromStream and R.type=="human"then--Local player receiving lines
- ins(GAME.rep,self.frameRun)
+ ins(GAME.rep,R.frameRun)
ins(GAME.rep,
self.sid+
send*0x100+
From 064fca3b0ac911ad8b4b53c905faaa2586a6beb9 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 17:59:41 +0800
Subject: [PATCH 34/48] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B0=8F=E7=A8=8B?=
=?UTF-8?q?=E5=BA=8Fdtw=E7=9A=84ui=E5=92=8C=E7=BB=93=E7=AE=97=E9=80=BB?=
=?UTF-8?q?=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/scenes/app_dtw.lua | 43 +++++++++++++++++++---------------------
1 file changed, 20 insertions(+), 23 deletions(-)
diff --git a/parts/scenes/app_dtw.lua b/parts/scenes/app_dtw.lua
index e0c3f150..fda925ef 100644
--- a/parts/scenes/app_dtw.lua
+++ b/parts/scenes/app_dtw.lua
@@ -12,9 +12,6 @@ local targets={
[620]=true,
[1000]=true,
[2600]=true,
- [5000]=true,
- [10000]=true,
- [26000]=true,
}
local state,progress
@@ -25,13 +22,13 @@ local arcade,rollSpeed
local tileColor={
- {0,0,0},
- {.3,0,0},
- {0,.3,0},
- {0,0,.3},
- {.3,.3,0},
- {0,.1,.3},
- {.2,0,.3},
+ {.0,.0,.0},
+ {.3,.0,.0},
+ {.0,.3,.0},
+ {.0,.0,.3},
+ {.3,.3,.0},
+ {.0,.1,.3},
+ {.2,.0,.3},
}
local modeName={
"Normal",
@@ -97,7 +94,7 @@ local function reset()
progress={}
state,time=0,0
score=0
- rollSpeed=8
+ rollSpeed=6.26
pos={rnd(4)}for _=1,6 do newTile()end
height=0
@@ -134,9 +131,9 @@ local function touch(n)
ins(keyTime,1,TIME())
keyTime[21]=nil
score=score+1
- if targets[score]then
+ if not arcade and targets[score]then
ins(progress,format("%s - %.3fs",score,TIME()-startTime))
- if score==26000 then
+ if score==2600 then
for i=1,#pos do
pos[i]=626
end
@@ -161,10 +158,10 @@ function scene.keyDown(key)
if key=="r"then reset()
elseif key=="escape"then SCN.back()
elseif state~=2 then
- if key=="d"or key=="c"then touch(1)
- elseif key=="f"or key=="v"then touch(2)
- elseif key=="j"or key=="n"then touch(3)
- elseif key=="k"or key=="m"then touch(4)
+ if key=="d"or key=="c"then touch(1)
+ elseif key=="f"or key=="v"then touch(2)
+ elseif key=="j"or key=="n"then touch(3)
+ elseif key=="k"or key=="m"then touch(4)
elseif(key=="q"or key=="tab")and state==0 then
mode=mode%#modeName+1
reset()
@@ -198,6 +195,7 @@ function scene.update()
rollSpeed=rollSpeed+.00355
if height<-120 then
state=2
+ SFX.play("clear_2")
end
else
height=height*.6
@@ -228,15 +226,14 @@ function scene.draw()
for i=1,#progress do
gc.print(progress[i],1030,120+25*i)
end
+
+ --Draw time
+ gc.setColor(1,1,1)
+ setFont(45)
+ gc.print(format("%.3f",time),1030,70)
end
- --Draw time
- setFont(45)
- gc.print(format("%.3f",time),1030,70)
-
-
--Draw tiles
- gc.setColor(1,1,1)
gc.rectangle("fill",300,0,680,720)
gc.setColor(tileColor[mode])
gc.push("transform")
From 833d0723f229f7bd4fad3c8cb618063abedd83ca Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 18:23:43 +0800
Subject: [PATCH 35/48] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dc4w=E6=A8=A1=E5=BC=8F?=
=?UTF-8?q?=E5=9B=9E=E6=94=BE=E6=97=B6=E5=88=9D=E5=A7=8B=E5=9C=B0=E5=BD=A2?=
=?UTF-8?q?=E4=BC=9A=E4=B8=8D=E4=B8=80=E6=A0=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/modes/c4wtrain_l.lua | 11 +++++------
parts/modes/c4wtrain_n.lua | 11 +++++------
2 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/parts/modes/c4wtrain_l.lua b/parts/modes/c4wtrain_l.lua
index 7126300d..7c24df47 100644
--- a/parts/modes/c4wtrain_l.lua
+++ b/parts/modes/c4wtrain_l.lua
@@ -1,4 +1,3 @@
-local rnd=math.random
local rem=table.remove
local function check_c4w(P)
if P.lastPiece.row==0 then
@@ -38,18 +37,18 @@ return{
P.visTime[i]=FREEROW.get(20)
for x=4,7 do F[i][x]=0 end
end
- if rnd()<.6 then
+ if P:RND()<.6 then
local initCell={11,14,12,13,21,24}
for _=1,3 do
- _=rem(initCell,rnd(#initCell))
+ _=rem(initCell,P:RND(#initCell))
F[math.floor(_/10)][3+_%10]=20
end
else
local initCell={11,12,13,14,21,22,23,24}
- rem(initCell,rnd(5,8))
- rem(initCell,rnd(1,4))
+ rem(initCell,P:RND(5,8))
+ rem(initCell,P:RND(1,4))
for _=1,6 do
- _=rem(initCell,rnd(#initCell))
+ _=rem(initCell,P:RND(#initCell))
F[math.floor(_/10)][3+_%10]=20
end
end
diff --git a/parts/modes/c4wtrain_n.lua b/parts/modes/c4wtrain_n.lua
index a7f336a9..0432d660 100644
--- a/parts/modes/c4wtrain_n.lua
+++ b/parts/modes/c4wtrain_n.lua
@@ -1,4 +1,3 @@
-local rnd=math.random
local rem=table.remove
local function check_c4w(P)
if P.lastPiece.row>0 then
@@ -36,18 +35,18 @@ return{
P.visTime[i]=FREEROW.get(20)
for x=4,7 do F[i][x]=0 end
end
- if rnd()<.6 then
+ if P:RND()<.6 then
local initCell={11,14,12,13,21,24}
for _=1,3 do
- _=rem(initCell,rnd(#initCell))
+ _=rem(initCell,P:RND(#initCell))
F[math.floor(_/10)][3+_%10]=20
end
else
local initCell={11,12,13,14,21,22,23,24}
- rem(initCell,rnd(5,8))
- rem(initCell,rnd(1,4))
+ rem(initCell,P:RND(5,8))
+ rem(initCell,P:RND(1,4))
for _=1,6 do
- _=rem(initCell,rnd(#initCell))
+ _=rem(initCell,P:RND(#initCell))
F[math.floor(_/10)][3+_%10]=20
end
end
From 9cdb382d0d204d5d4f368b900403b0f9c1253ea8 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 18:40:32 +0800
Subject: [PATCH 36/48] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/list.lua | 124 +++++++++++++++++++++----------------------------
1 file changed, 52 insertions(+), 72 deletions(-)
diff --git a/parts/list.lua b/parts/list.lua
index 21a39f66..35d22c99 100644
--- a/parts/list.lua
+++ b/parts/list.lua
@@ -181,54 +181,6 @@ do--drawableText
}
end
-do--SCS(spinCenters)
- local N1,N2,N3,N4={0,1},{1,0},{1,1},{.5,.5}
- local I1,I2,I3,I4={-.5,1.5},{1.5,-.5},{.5,1.5},{1.5,.5}
- local V4={1.5,1.5}
- local L1,L2={0,2},{2,0}
- local S1,S2={-.5,.5},{.5,-.5}
- local D={0,0}
- SCS={
- --Tetramino
- {[0]=N1,N2,N3,N3},--Z
- {[0]=N1,N2,N3,N3},--S
- {[0]=N1,N2,N3,N3},--L
- {[0]=N1,N2,N3,N3},--J
- {[0]=N1,N2,N3,N3},--T
- {[0]=N4,N4,N4,N4},--O
- {[0]=I1,I2,I3,I4},--I
-
- --Pentomino
- {[0]=N3,N3,N3,N3},--Z5
- {[0]=N3,N3,N3,N3},--S5
- {[0]=N1,N2,N3,N3},--P
- {[0]=N1,N2,N3,N3},--Q
- {[0]=N3,N3,N3,N3},--F
- {[0]=N3,N3,N3,N3},--E
- {[0]=N3,N3,N3,N3},--T5
- {[0]=N1,N2,N3,N3},--U
- {[0]=I3,N4,I4,V4},--V
- {[0]=N3,N3,N3,N3},--W
- {[0]=N3,N3,N3,N3},--X
- {[0]=I3,I4,I3,I4},--J5
- {[0]=I3,I4,I3,I4},--L5
- {[0]=I3,I4,I3,I4},--R
- {[0]=I3,I4,I3,I4},--Y
- {[0]=I3,I4,I3,I4},--N
- {[0]=I3,I4,I3,I4},--H
- {[0]=L1,L2,L1,L2},--I5
-
- --Trimino
- {[0]=N1,N2,N1,N2},--I3
- {[0]=N4,N4,N4,N4},--C
-
- --Domino
- {[0]=S1,S2,N4,N4},--I2
-
- --Dot
- {[0]=D,D,D,D},--O1
- }
-end
do--BLOCKS
local O,_=true,false
BLOCKS={
@@ -292,6 +244,55 @@ do--BLOCKS
end
end
+do--SCS(spinCenters)
+ local N1,N2,N3,N4={0,1},{1,0},{1,1},{.5,.5}
+ local I1,I2,I3,I4={-.5,1.5},{1.5,-.5},{.5,1.5},{1.5,.5}
+ local V4={1.5,1.5}
+ local L1,L2={0,2},{2,0}
+ local S1,S2={-.5,.5},{.5,-.5}
+ local D={0,0}
+ SCS={
+ --Tetramino
+ {[0]=N1,N2,N3,N3},--Z
+ {[0]=N1,N2,N3,N3},--S
+ {[0]=N1,N2,N3,N3},--L
+ {[0]=N1,N2,N3,N3},--J
+ {[0]=N1,N2,N3,N3},--T
+ {[0]=N4,N4,N4,N4},--O
+ {[0]=I1,I2,I3,I4},--I
+
+ --Pentomino
+ {[0]=N3,N3,N3,N3},--Z5
+ {[0]=N3,N3,N3,N3},--S5
+ {[0]=N1,N2,N3,N3},--P
+ {[0]=N1,N2,N3,N3},--Q
+ {[0]=N3,N3,N3,N3},--F
+ {[0]=N3,N3,N3,N3},--E
+ {[0]=N3,N3,N3,N3},--T5
+ {[0]=N1,N2,N3,N3},--U
+ {[0]=I3,N4,I4,V4},--V
+ {[0]=N3,N3,N3,N3},--W
+ {[0]=N3,N3,N3,N3},--X
+ {[0]=I3,I4,I3,I4},--J5
+ {[0]=I3,I4,I3,I4},--L5
+ {[0]=I3,I4,I3,I4},--R
+ {[0]=I3,I4,I3,I4},--Y
+ {[0]=I3,I4,I3,I4},--N
+ {[0]=I3,I4,I3,I4},--H
+ {[0]=L1,L2,L1,L2},--I5
+
+ --Trimino
+ {[0]=N1,N2,N1,N2},--I3
+ {[0]=N4,N4,N4,N4},--C
+
+ --Domino
+ {[0]=S1,S2,N4,N4},--I2
+
+ --Dot
+ {[0]=D,D,D,D},--O1
+ }
+end
+
rankColor={
{.6,.3,.3},
{.7,.5,.3},
@@ -301,28 +302,7 @@ rankColor={
}
minoColor={
- COLOR.red,
- COLOR.fire,
- COLOR.orange,
- COLOR.yellow,
- COLOR.lame,
- COLOR.grass,
- COLOR.green,
- COLOR.water,
- COLOR.cyan,
- COLOR.sky,
- COLOR.sea,
- COLOR.blue,
- COLOR.purple,
- COLOR.grape,
- COLOR.magenta,
- COLOR.pink,
- COLOR.dGrey,
- COLOR.black,
- COLOR.lYellow,
- COLOR.grey,
- COLOR.lGrey,
- COLOR.dPurple,
- COLOR.dRed,
- COLOR.dGreen,
+ COLOR.red, COLOR.fire, COLOR.orange, COLOR.yellow, COLOR.lame, COLOR.grass, COLOR.green, COLOR.water,
+ COLOR.cyan, COLOR.sky, COLOR.sea, COLOR.blue, COLOR.purple, COLOR.grape, COLOR.magenta, COLOR.pink,
+ COLOR.dGrey,COLOR.black,COLOR.lYellow, COLOR.grey, COLOR.lGrey, COLOR.dPurple, COLOR.dRed, COLOR.dGreen,
}
\ No newline at end of file
From af0e14daffa3c3481957faaccd37d280e6953b3a Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 19:52:09 +0800
Subject: [PATCH 37/48] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=AF=8D=E5=85=B8?=
=?UTF-8?q?=E4=B8=AD=E9=83=A8=E5=88=86=E4=BA=BA=E7=89=A9=E8=AF=8D=E6=9D=A1?=
=?UTF-8?q?=E9=A1=BA=E5=BA=8F=E4=B8=8D=E6=AD=A3=E7=A1=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/dict_en.lua | 18 +++++++++---------
parts/language/dict_zh.lua | 20 ++++++++++----------
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/parts/language/dict_en.lua b/parts/language/dict_en.lua
index 9bcb1676..868603cb 100644
--- a/parts/language/dict_en.lua
+++ b/parts/language/dict_en.lua
@@ -903,17 +903,22 @@ return{
"Tetris Research community member.\nPersonal bests: Sprint 26.193 seconds\nOne of the prestigious players in the Chinese Tetris community. Author of T-ex and Tetr.js Farter's Dig Mod.",
"https://space.bilibili.com/132966",
},
+ {"Teatube",
+ "teatube ttb chaguan chanaiye sifangchaye 022",
+ "name",
+ "Administrator of the Tetris Research community, Operator of the Tetris Online Study private server, chief editor of the Huiji wiki.\nPersonal bests: Sprint 33 seconds, Tetris Online peak stats 50LPM, 70APM.",
+ "https://space.bilibili.com/834903",
+ },
{"Sniraite",
"sniraite",
"name",
"Tetris Research community member.\nPersonal bests: Sprint 23 seconds\nOne of the top players in China. Should be the fastest player in Mainland China.",
"https://space.bilibili.com/561589",
},
- {"Teatube",
- "teatube ttb chaguan chanaiye sifangchaye 022",
+ {"xb",
+ "xb",
"name",
- "Administrator of the Tetris Research community, Operator of the Tetris Online Study private server, chief editor of the Huiji wiki.\nPersonal bests: Sprint 33 seconds, Tetris Online peak stats 50LPM, 70APM.",
- "https://space.bilibili.com/834903",
+ "Tetris Research community member.\nMain organizer for competitions in the community.",
},
{"Flyz",
"flyz fxg",
@@ -927,11 +932,6 @@ return{
"Tetris Research community member.\nPersonal bests: Sprint 22.831 seconds (25.483 seconds on mobile), MPH Sprint 56 seconds, X rank on Tetr.io\nOne of the top players of 20G in China, achieved almost every achievement in TGM3.",
"https://space.bilibili.com/287769888",
},
- {"xb",
- "xb",
- "name",
- "Tetris Research community member.\nMain organizer for competitions in the community.",
- },
{"蕴空之灵",
"ykzl yunkongzhiling niao bird",
"name",
diff --git a/parts/language/dict_zh.lua b/parts/language/dict_zh.lua
index 635b4def..4d000f2e 100644
--- a/parts/language/dict_zh.lua
+++ b/parts/language/dict_zh.lua
@@ -913,17 +913,23 @@ return{
"【研究群】「TTTT」\n40行26.193秒\nCN块圈元老之一,《T-ex》和《屁块》的作者",
"https://space.bilibili.com/132966",
},
+ {"Teatube",
+ "teatube ttb chaguan chanaiye sifangchaye t022",
+ "name",
+ "【研究群】「T022」\n40行33秒 top数据高峰约50L70A\n研究群管理,探索群群主,茶服服主,人形方块百科史书,现中文方块维基主催\n自2011年正式加入CN方块社区以来,以探索方块有趣的思想作为主动力,茶茶今天也在茶馆里当着茶房管理员——\n\n其他名称:TTB,永远旋转的炸弹,茶乃叶,四方茶叶\n明明茶管是蓝孩子却被群友叫茶娘…怎么想都很奇怪啊!嘛大家喜欢的话就随便啦——",
+ "https://space.bilibili.com/834903",
+ },
{"Sniraite",
"sniraite shege 11renpc t024",
"name",
"【研究群】「T024」\n40行sub23\n国内一流方块玩家,应该是大陆最速",
"https://space.bilibili.com/561589",
},
- {"Teatube",
- "teatube ttb chaguan chanaiye sifangchaye t022",
+ {"xb",
+ "xb t043",
"name",
- "【研究群】「T022」\n40行33秒 top数据高峰约50L70A\n研究群管理,探索群群主,茶服服主,人形方块百科史书,现中文方块维基主催\n自2011年正式加入CN方块社区以来,以探索方块有趣的思想作为主动力,茶茶今天也在茶馆里当着茶房管理员——\n\n其他名称:TTB,永远旋转的炸弹,茶乃叶,四方茶叶\n明明茶管是蓝孩子却被群友叫茶娘…怎么想都很奇怪啊!嘛大家喜欢的话就随便啦——",
- "https://space.bilibili.com/834903",
+ "【研究群】「T043」\n俄罗斯方块中文维基(灰机wiki)主要编者(之一",
+ "https://space.bilibili.com/226132",
},
{"Flyz",
"flyz fxg t114",
@@ -937,12 +943,6 @@ return{
"【研究群】「T127」\n40行22.831秒(手机25.483),MPH40行56秒,tetr.io段位X,数据约60L95A\n20G规则国内一流玩家,拿到了TGM3几乎全部的最终成就(全世界都没几个)\n其他名称:小柒 kissne 127\n还是车车人,几个正作成绩:永EX NM 1B FS 风L NM",
"https://space.bilibili.com/287769888",
},
- {"xb",
- "xb t043",
- "name",
- "【研究群】「T043」\n俄罗斯方块中文维基(灰机wiki)主要编者(之一",
- "https://space.bilibili.com/226132",
- },
{"蕴空之灵",
"蕴空之灵 ykzl yunkongzhiling niao bird t196",
"name",
From b382b8b264358da65d96aebad03f15b5410a1116 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 20:35:01 +0800
Subject: [PATCH 38/48] =?UTF-8?q?=E7=BC=A9=E7=9F=AD=E5=BC=80=E6=88=BFcd?=
=?UTF-8?q?=E8=87=B36=E7=A7=92?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/scenes/net_rooms.lua | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parts/scenes/net_rooms.lua b/parts/scenes/net_rooms.lua
index 158744e7..dcaf454a 100644
--- a/parts/scenes/net_rooms.lua
+++ b/parts/scenes/net_rooms.lua
@@ -29,7 +29,7 @@ function scene.keyDown(k)
fetchRoom()
end
elseif k=="m"or k=="n"then
- if TIME()-lastCreateRoomTime>16.2 then
+ if TIME()-lastCreateRoomTime>6.26 then
NET.createRoom(
k=="m"and"classic"or
tonumber(USER.uid)<100 and(
From 59a612c6fc36841dbb20681c9c465e7bbabab4f6 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 19:53:10 +0800
Subject: [PATCH 39/48] =?UTF-8?q?=E6=B7=BB=E5=8A=A00.14.5=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0=E6=97=A5=E5=BF=97=E5=92=8C=E7=89=88=E6=9C=AC=E5=8F=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
conf.lua | 6 +++---
parts/updateLog.lua | 31 ++++++++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/conf.lua b/conf.lua
index d1d29c10..4a8c10c1 100644
--- a/conf.lua
+++ b/conf.lua
@@ -1,7 +1,7 @@
VERSION={
- code=1404,
- string="Alpha V0.14.4",
- name="日出 Sunrise",
+ code=1405,
+ string="Alpha V0.14.5",
+ name="晨 Morn",
}
function love.conf(t)
t.identity="Techmino"--Saving folder
diff --git a/parts/updateLog.lua b/parts/updateLog.lua
index a14f61a3..3f1f5758 100644
--- a/parts/updateLog.lua
+++ b/parts/updateLog.lua
@@ -1,7 +1,7 @@
return SPLITSTR([=[
未来模式:
无尽PC挑战; 简单极简练习; 任务生存; 对称; 无摩擦; 连击练习; 拼方形
- 极简教程/考试; 大爆炸; 音游模式; 跑酷; 术语问答; 养成玩法
+ 极简教程/考试; 大爆炸; 音游模式; 跑酷; 术语问答; 养成玩法; 收集向抽奖玩法
OSD; 强制Misdrop; 涂色模式(模仿喷喷, designed by teatube)
未来大游戏:
puyo; 花仙子方块; 2048; 泡泡龙
@@ -22,6 +22,35 @@ return SPLITSTR([=[
可选虚拟按键颜色; 工程编译到字节码; task-Z(新AI)
录像回放菜单; 跳帧开关; 教学关; 超60帧; 热更新
+0.14.5: 晨 Morn
+ 新增:
+ 新增BGM:Empty(用于节日主题,by ERM)
+ 音乐室显示音乐作者
+ 新增开5人房的按钮
+ 小程序dtw增加街机模式
+ 改动:
+ 微调TRS中PQT5J5L5的踢墙表
+ 加强消四,增加b2b点数(100→150)
+ 增强hpc攻击力(2→4)
+ 修改pc和hpc对b2b点数的影响
+ 调整master-ph命数奖励
+ 对战背景改为主题默认背景
+ 词典修改部分词条,调整词条顺序(意见来自群友 库德里尔)
+ 移除词典中两个不必要的个人词条
+ 代码:
+ file模块升级
+ 新增users模块用来管理网络用户缓存信息
+ play场景改名game
+ 重构GAME.frame相关内容
+ 修复:
+ 登录界面邮箱格式判定错误
+ 调整主菜单点击联网游戏按钮代码的逻辑
+ 没开ihs的时候提前hold会死
+ 修复锁延刷新次数比显示(设置)的多一次
+ 网络玩家倒计时阶段按键会让别人看到的录像播放不正确
+ c4w模式回放时初始地形会不一样
+ 上踢无限悬空
+
0.14.4: 日出 Sunrise
新增:
添加触摸/点击特效开关
From 63d3f02abe1c43b46768ae9d1b050bb0751d2887 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Sun, 18 Apr 2021 23:21:56 +0800
Subject: [PATCH 40/48] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=B8=89=E4=B8=AA?=
=?UTF-8?q?=E4=B8=8D=E5=BD=93=E9=A2=9C=E8=89=B2=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Zframework/color.lua | 26 ++---
parts/globalTables.lua | 26 ++---
parts/language/lang_en.lua | 2 +-
parts/language/lang_pt.lua | 4 +-
parts/language/lang_zh.lua | 30 +++---
parts/list.lua | 4 +-
parts/modes/bigbang.lua | 2 +-
parts/modes/master_final.lua | 2 +-
parts/modes/sprint_1000l.lua | 2 +-
parts/modes/tech_finesse_f.lua | 2 +-
parts/modes/ultra.lua | 2 +-
parts/modes/zen.lua | 2 +-
parts/patron.lua | 158 +++++++++++++++----------------
parts/player/draw.lua | 8 +-
parts/scenes/app_15p.lua | 12 +--
parts/scenes/app_2048.lua | 8 +-
parts/scenes/app_cannon.lua | 8 +-
parts/scenes/app_cmd.lua | 34 +++----
parts/scenes/app_dropper.lua | 2 +-
parts/scenes/app_dtw.lua | 2 +-
parts/scenes/app_tap.lua | 2 +-
parts/scenes/app_ten.lua | 2 +-
parts/scenes/customGame.lua | 8 +-
parts/scenes/custom_advance.lua | 2 +-
parts/scenes/custom_field.lua | 16 ++--
parts/scenes/custom_mission.lua | 4 +-
parts/scenes/custom_sequence.lua | 46 ++++-----
parts/scenes/depause.lua | 2 +-
parts/scenes/load.lua | 2 +-
parts/scenes/main.lua | 2 +-
parts/scenes/net_game.lua | 2 +-
parts/scenes/pause.lua | 4 +-
parts/scenes/test.lua | 8 +-
33 files changed, 218 insertions(+), 218 deletions(-)
diff --git a/Zframework/color.lua b/Zframework/color.lua
index 1e05dff0..3456562c 100644
--- a/Zframework/color.lua
+++ b/Zframework/color.lua
@@ -3,10 +3,10 @@ local COLOR={
fire= {1.0, 0.4, 0.0},
orange= {1.0, 0.6, 0.0},
yellow= {1.0, 1.0, 0.0},
- lame= {0.7, 1.0, 0.0},
+ lime= {0.7, 1.0, 0.0},
grass= {0.5, 1.0, 0.0},
green= {0.0, 1.0, 0.0},
- water= {0.0, 1.0, 0.6},
+ aqua= {0.0, 1.0, 0.6},
cyan= {0.0, 1.0, 1.0},
sky= {0.0, 0.7, 1.0},
sea= {0.0, 0.4, 1.0},
@@ -20,10 +20,10 @@ local COLOR={
lFire= {1.0, 0.7, 0.5},
lOrange= {1.0, 0.8, 0.3},
lYellow= {1.0, 1.0, 0.5},
- lLame= {0.8, 1.0, 0.4},
+ lLime= {0.8, 1.0, 0.4},
lGrass= {0.6, 1.0, 0.4},
lGreen= {0.5, 1.0, 0.5},
- lWater= {0.4, 1.0, 0.7},
+ lAqua= {0.4, 1.0, 0.7},
lCyan= {0.5, 1.0, 1.0},
lSky= {0.5, 0.8, 1.0},
lSea= {0.4, 0.7, 1.0},
@@ -37,10 +37,10 @@ local COLOR={
dFire= {0.6, 0.3, 0.0},
dOrange= {0.6, 0.4, 0.0},
dYellow= {0.6, 0.6, 0.0},
- dLame= {0.5, 0.6, 0.0},
+ dLime= {0.5, 0.6, 0.0},
dGrass= {0.3, 0.6, 0.0},
dGreen= {0.0, 0.6, 0.0},
- dWater= {0.0, 0.6, 0.4},
+ dAqua= {0.0, 0.6, 0.4},
dCyan= {0.0, 0.6, 0.6},
dSky= {0.0, 0.4, 0.6},
dSea= {0.0, 0.2, 0.6},
@@ -51,9 +51,9 @@ local COLOR={
dPink= {0.6, 0.0, 0.3},
black= {0.0, 0.0, 0.0},
- dGrey= {0.3, 0.3, 0.3},
- grey= {0.6, 0.6, 0.6},
- lGrey= {0.8, 0.8, 0.8},
+ dGray= {0.3, 0.3, 0.3},
+ gray= {0.6, 0.6, 0.6},
+ lGray= {0.8, 0.8, 0.8},
white= {1.0, 1.0, 1.0},
}
local map={
@@ -63,20 +63,20 @@ local map={
W="white",
}for k,v in next,map do COLOR[k]=COLOR[v]end
-local list_norm={"red","fire","orange","yellow","lame","grass","green","water","cyan","sky","sea","blue","purple","grape","magenta","pink"}
+local list_norm={"red","fire","orange","yellow","i","grass","green","aqua","cyan","sky","sea","blue","purple","grape","magenta","pink"}
local len_list_norm=#list_norm
local rnd=math.random
function COLOR.random_norm()
return COLOR[list_norm[rnd(len_list_norm)]]
end
-local list_bright={"lRed","lFire","lOrange","lYellow","lLame","lGrass","lGreen","lWater","lCyan","lSky","lSea","lBlue","lPurple","lGrape","lMagenta","lPink"}
+local list_bright={"lRed","lFire","lOrange","lYellow","lLime","lGrass","lGreen","lAqua","lCyan","lSky","lSea","lBlue","lPurple","lGrape","lMagenta","lPink"}
local len_list_bright=#list_bright
function COLOR.random_bright()
return COLOR[list_bright[rnd(len_list_bright)]]
end
-local list_dark={"dRed","dFire","dOrange","dYellow","dLame","dGrass","dGreen","dWater","dCyan","dSky","dSea","dBlue","dPurple","dGrape","dMagenta","dPink"}
+local list_dark={"dRed","dFire","dOrange","dYellow","dLime","dGrass","dGreen","dAqua","dCyan","dSky","dSea","dBlue","dPurple","dGrape","dMagenta","dPink"}
local len_list_dark=#list_dark
function COLOR.random_dark()
return COLOR[list_dark[rnd(len_list_dark)]]
@@ -101,7 +101,7 @@ function COLOR.rainbow_dark(phase)
sin(phase+2.0944)*.2+.4,
sin(phase-2.0944)*.2+.4
end
-function COLOR.rainbow_grey(phase)
+function COLOR.rainbow_gray(phase)
return
sin(phase)*.16+.5,
sin(phase+2.0944)*.16+.5,
diff --git a/parts/globalTables.lua b/parts/globalTables.lua
index 36c305d7..4ee9d2ec 100644
--- a/parts/globalTables.lua
+++ b/parts/globalTables.lua
@@ -15,12 +15,12 @@ MODOPT={--Mod options
unranked=true,
},
{no=2,id="FL",name="hideNext",
- key="e",x=320,y=230,color="water",
+ key="e",x=320,y=230,color="aqua",
list={1,2,3,4,5},
func=function(P,O)P.gameEnv.nextStartPos=O +1 end,
},
{no=3,id="IH",name="infHold",
- key="r",x=440,y=230,color="water",
+ key="r",x=440,y=230,color="aqua",
func=function(P)P.gameEnv.infHold=true end,
unranked=true,
},
@@ -91,7 +91,7 @@ MODOPT={--Mod options
},
{no=16,id="TL",name="tele",
- key="z",x=200,y=470,color="lGrey",
+ key="z",x=200,y=470,color="lGray",
func=function(P)
P.gameEnv.das,P.gameEnv.arr=0,0
P.gameEnv.sddas,P.gameEnv.sdarr=0,0
@@ -99,7 +99,7 @@ MODOPT={--Mod options
unranked=true,
},
{no=17,id="FX",name="noRotation",
- key="x",x=320,y=470,color="lGrey",
+ key="x",x=320,y=470,color="lGray",
func=function(P)
disableKey(P,3)
disableKey(P,4)
@@ -108,7 +108,7 @@ MODOPT={--Mod options
unranked=true,
},
{no=18,id="GL",name="noMove",
- key="c",x=440,y=470,color="lGrey",
+ key="c",x=440,y=470,color="lGray",
func=function(P)
disableKey(P,1)disableKey(P,2)
disableKey(P,11)disableKey(P,12)
@@ -331,8 +331,8 @@ keyMap=FILE.load("conf/key")or{--Key setting
},
}
VK_org=FILE.load("conf/virtualkey")or{--Virtualkey layout, refresh all VKs' position with this before each game
- {ava=true, x=80, y=720-200, r=80,color=COLOR.lame},--moveLeft
- {ava=true, x=320, y=720-200, r=80,color=COLOR.lame},--moveRight
+ {ava=true, x=80, y=720-200, r=80,color=COLOR.lime},--moveLeft
+ {ava=true, x=320, y=720-200, r=80,color=COLOR.lime},--moveRight
{ava=true, x=1280-80, y=720-200, r=80,color=COLOR.red},--rotRight
{ava=true, x=1280-200, y=720-80, r=80,color=COLOR.orange},--rotLeft
{ava=true, x=1280-200, y=720-320, r=80,color=COLOR.magenta},--rot180
@@ -341,16 +341,16 @@ VK_org=FILE.load("conf/virtualkey")or{--Virtualkey layout, refresh all VKs' posi
{ava=true, x=1280-320, y=720-200, r=80,color=COLOR.yellow},--hold
{ava=true, x=1280-80, y=280, r=80,color=COLOR.lRed},--func1
{ava=true, x=80, y=280, r=80,color=COLOR.lMagenta},--func2
- {ava=false, x=100, y=50, r=80,color=COLOR.water},--insLeft
- {ava=false, x=200, y=50, r=80,color=COLOR.water},--insRight
+ {ava=false, x=100, y=50, r=80,color=COLOR.aqua},--insLeft
+ {ava=false, x=200, y=50, r=80,color=COLOR.aqua},--insRight
{ava=false, x=300, y=50, r=80,color={COLOR.rainbow(3.5)}},--insDown
{ava=false, x=400, y=50, r=80,color={COLOR.rainbow(3.3)}},--down1
{ava=false, x=500, y=50, r=80,color={COLOR.rainbow(3.1)}},--down4
{ava=false, x=600, y=50, r=80,color={COLOR.rainbow(2.9)}},--down10
- {ava=false, x=700, y=50, r=80,color=COLOR.lLame},--dropLeft
- {ava=false, x=800, y=50, r=80,color=COLOR.lLame},--dropRight
- {ava=false, x=900, y=50, r=80,color=COLOR.lWater},--addToLeft
- {ava=false, x=1000, y=50, r=80,color=COLOR.lWater},--addToRight
+ {ava=false, x=700, y=50, r=80,color=COLOR.lLime},--dropLeft
+ {ava=false, x=800, y=50, r=80,color=COLOR.lLime},--dropRight
+ {ava=false, x=900, y=50, r=80,color=COLOR.laqua},--addToLeft
+ {ava=false, x=1000, y=50, r=80,color=COLOR.laqua},--addToRight
}
virtualkey={}for i=1,#VK_org do virtualkey[i]={}end--In-game virtualkey layout
REPLAY=FILE.load("conf/replay")or{}
\ No newline at end of file
diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua
index 82304989..37b11337 100644
--- a/parts/language/lang_en.lua
+++ b/parts/language/lang_en.lua
@@ -864,7 +864,7 @@ return{
{c.fire,"Also try Tetr.js"},
{c.fire,"Also try Tetralegends"},
{c.grape,"T-spin!"},
- {c.grey,"REGRET!!"},
+ {c.gray,"REGRET!!"},
{c.lR,"Z ",c.lG,"S ",c.lSea,"J ",c.lOrange,"L ",c.lGrape,"T ",c.lY,"O ",c.lC,"I"},
{c.lY,"COOL!!"},
{c.R,"\"DMCA abusing\""},
diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua
index 2a0f3629..7858b18f 100644
--- a/parts/language/lang_pt.lua
+++ b/parts/language/lang_pt.lua
@@ -860,8 +860,8 @@ return{
{COLOR.fire,"Tente também Tetr.js"},
{COLOR.fire,"Tente também Tetralegends"},
{COLOR.grape,"T-spin!"},
- {COLOR.grey,"暫定段位:9"},
- {COLOR.grey,"REGRET!!"},
+ {COLOR.gray,"暫定段位:9"},
+ {COLOR.gray,"REGRET!!"},
{COLOR.lR,"Z ",COLOR.lG,"S ",COLOR.lSea,"J ",COLOR.lOrange,"L ",COLOR.lGrape,"T ",COLOR.lY,"O ",COLOR.lC,"I"},
{COLOR.lY,"LEGAL!!"},
{COLOR.R,"\"DMCA abusing\""},
diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua
index 6e5ed217..ffc9104e 100644
--- a/parts/language/lang_zh.lua
+++ b/parts/language/lang_zh.lua
@@ -1013,6 +1013,7 @@ return{
"Z酱累了,Z酱不想更新",
"Z酱只是个写代码的,懂什么方块",
"Z块等身抱枕来一个(x",
+ {c.aqua,"AQUA"},
{c.B,"BLUE"},
{c.C,""},
{c.C,"15puzzle好玩!"},
@@ -1043,23 +1044,24 @@ return{
{c.G,"快捷键: Ctrl+Tab=切换标签页"},
{c.G,"快捷键: Ctrl+W=关闭当前标签页"},
{c.G,"快捷键: shift+del=永久删除文件 (技术人员别杠)"},
+ {c.G,"GREEN"},
{c.grape,"GRAPE"},
{c.grape,"T-spin!"},
{c.grass,"GRASS"},
- {c.grey,"感谢Phigros提供部分tip模板("},
- {c.grey,"暂定段位:9"},
- {c.grey,"REGRET!!"},
- {c.lame,"LAME"},
+ {c.gray,"感谢Phigros提供部分tip模板("},
+ {c.gray,"暂定段位:9"},
+ {c.gray,"REGRET!!"},
+ {c.lime,"LIME"},
{c.lC,"26连T2来一个?"},
{c.lC,"Xspin",c.W,"是啥"},
{c.lGrape,"Naki",c.W," 可爱!"},
- {c.lGrey,"腱鞘炎警告"},
- {c.lGrey,"看起来是个计算器,其实…"},
- {c.lGrey,"没学过编曲,音乐都是自己瞎写的,觉得不好听就去设置关了吧"},
- {c.lGrey,"秘密数字:626"},
- {c.lGrey,"你有一个好"},
- {c.lGrey,"STSD必死"},
- {c.lGrey,"Techmino没有抽卡没有氪金,太良心了"},
+ {c.lGray,"腱鞘炎警告"},
+ {c.lGray,"看起来是个计算器,其实…"},
+ {c.lGray,"没学过编曲,音乐都是自己瞎写的,觉得不好听就去设置关了吧"},
+ {c.lGray,"秘密数字:626"},
+ {c.lGray,"你有一个好"},
+ {c.lGray,"STSD必死"},
+ {c.lGray,"Techmino没有抽卡没有氪金,太良心了"},
{c.lR,"Z ",c.lG,"S ",c.lSea,"J ",c.lOrange,"L ",c.lGrape,"T ",c.lY,"O ",c.lC,"I"},
{c.lSea,"茶娘",c.W," 可爱!"},
{c.lY,"COOL!!"},
@@ -1085,16 +1087,14 @@ return{
{c.sky,"Lua",c.W,"天下第一"},
{c.sky,"SKY"},
{c.W,"1, 2, ",c.C,"⑨",c.W,"!!!!!"},
- {c.W,"效率药水",c.grey," 效率提升 (8:00)"},
- {c.W,"协调药水",c.grey," MD减少 II(1:30)"},
- {c.water,"WATER"},
+ {c.W,"效率药水",c.gray," 效率提升 (8:00)"},
+ {c.W,"协调药水",c.gray," MD减少 II(1:30)"},
{c.Y,"暂定段位:GM"},
{c.Y,"暂定段位:M"},
{c.Y,"暂定段位:MK"},
{c.Y,"暂定段位:MM"},
{c.Y,"暂定段位:MO"},
{c.Y,"暂定段位:MV"},
- {c.Y,"GREEN"},
{c.Y,"Miya",c.W," 可爱!"},
{c.Y,"O-spin Triple!"},
{c.Y,"YELLOW"},
diff --git a/parts/list.lua b/parts/list.lua
index 35d22c99..23c92c35 100644
--- a/parts/list.lua
+++ b/parts/list.lua
@@ -302,7 +302,7 @@ rankColor={
}
minoColor={
- COLOR.red, COLOR.fire, COLOR.orange, COLOR.yellow, COLOR.lame, COLOR.grass, COLOR.green, COLOR.water,
+ COLOR.red, COLOR.fire, COLOR.orange, COLOR.yellow, COLOR.lime, COLOR.grass, COLOR.green, COLOR.aqua,
COLOR.cyan, COLOR.sky, COLOR.sea, COLOR.blue, COLOR.purple, COLOR.grape, COLOR.magenta, COLOR.pink,
- COLOR.dGrey,COLOR.black,COLOR.lYellow, COLOR.grey, COLOR.lGrey, COLOR.dPurple, COLOR.dRed, COLOR.dGreen,
+ COLOR.dGray,COLOR.black,COLOR.lYellow, COLOR.gray, COLOR.lGray, COLOR.dPurple, COLOR.dRed, COLOR.dGreen,
}
\ No newline at end of file
diff --git a/parts/modes/bigbang.lua b/parts/modes/bigbang.lua
index bb697a37..a318f911 100644
--- a/parts/modes/bigbang.lua
+++ b/parts/modes/bigbang.lua
@@ -1,6 +1,6 @@
local format=string.format
return{
- color=COLOR.lGrey,
+ color=COLOR.lGray,
env={
drop=1e99,lock=1e99,
holdCount=0,
diff --git a/parts/modes/master_final.lua b/parts/modes/master_final.lua
index 8715ad59..c777780c 100644
--- a/parts/modes/master_final.lua
+++ b/parts/modes/master_final.lua
@@ -40,7 +40,7 @@ local function score(P)
end
return{
- color=COLOR.lGrey,
+ color=COLOR.lGray,
env={
noTele=true,
das=5,arr=1,
diff --git a/parts/modes/sprint_1000l.lua b/parts/modes/sprint_1000l.lua
index 2a645188..12620407 100644
--- a/parts/modes/sprint_1000l.lua
+++ b/parts/modes/sprint_1000l.lua
@@ -1,5 +1,5 @@
return{
- color=COLOR.lGrey,
+ color=COLOR.lGray,
env={
drop=60,lock=60,
dropPiece=function(P)if P.stat.row>=1000 then P:win("finish")end end, bg="rainbow",bgm="push",
diff --git a/parts/modes/tech_finesse_f.lua b/parts/modes/tech_finesse_f.lua
index 71c4cbaf..355d61f8 100644
--- a/parts/modes/tech_finesse_f.lua
+++ b/parts/modes/tech_finesse_f.lua
@@ -13,7 +13,7 @@ local function tech_check_hard(P)
end
return{
- color=COLOR.grey,
+ color=COLOR.gray,
env={
arr=0,
drop=1e99,lock=60,
diff --git a/parts/modes/ultra.lua b/parts/modes/ultra.lua
index 815e06cc..ef36ecf9 100644
--- a/parts/modes/ultra.lua
+++ b/parts/modes/ultra.lua
@@ -1,7 +1,7 @@
local gc=love.graphics
local warnTime={60,90,105,115,116,117,118,119,120}
return{
- color=COLOR.lGrey,
+ color=COLOR.lGray,
env={
noTele=true,
minarr=1,minsdarr=1,
diff --git a/parts/modes/zen.lua b/parts/modes/zen.lua
index aab2917d..0de30483 100644
--- a/parts/modes/zen.lua
+++ b/parts/modes/zen.lua
@@ -1,5 +1,5 @@
return{
- color=COLOR.lGrey,
+ color=COLOR.lGray,
env={
drop=120,lock=120,
infHold=true,
diff --git a/parts/patron.lua b/parts/patron.lua
index 00380ce4..e20aab4f 100644
--- a/parts/patron.lua
+++ b/parts/patron.lua
@@ -110,337 +110,337 @@ return{
{
name="八零哥",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="蕴空之灵",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="gggf127",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="solainu",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="ThTsOd",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="Fireboos",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="星月千雪",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="10元",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="立斐",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="Deep_Sea",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="时雪",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="yyangdid",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="sfqr",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="心痕",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="Sasoric",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="夏小亚",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="仁参",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="乐↗乐↘",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="喜欢c4w的ztcjoin",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="面包",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="蠢熏",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="潘一栗",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="Lied",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="星街书婉",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="祝西",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="829",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="e m*12",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="我永远爱白银诺艾尔(鹏",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="PCX",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="kagura77",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="呆喂",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="GlowingEmbers",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="轩辕辚",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="HimuroAki",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="TCV100",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="tech有养成系统了@7065",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="HAGE KANOBU",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="闪电和拐棍",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="葡萄味的曼妥思",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="蓝绿",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="天生的魔法师",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="琳雨空",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="T8779.易缄",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="诗情画意",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="星姐阿夸双推Man暗炎",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="[*炎]",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="[*Y]",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="aaa222",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="[**城]",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="cnDD",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="红桃老给",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="昭庭玲秋",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="旋树墩",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="火花工作室",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="Cosine",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="沁音的芝麻王",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="SuperJH",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="天上_飞",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="uiro",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="宇酱",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="[W*N]",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="[Z*.]",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="[*之]",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="白衣",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="给虫",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="我永远喜欢樱花小姐",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="xb",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="flaribbit",
@@ -450,47 +450,47 @@ return{
{
name="工口发动机",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="金海星",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="tatianyi",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="[*瞳]",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="彼方云城",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="pm250",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="nanaya",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="黑红蓝白",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="细胞",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="流光梦",
@@ -500,16 +500,16 @@ return{
{
name="George2003",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="竹月可安",
font=25,
- color=C.grey,
+ color=C.gray,
},
{
name="T7887库德里尔",
font=25,
- color=C.grey,
+ color=C.gray,
},
}
\ No newline at end of file
diff --git a/parts/player/draw.lua b/parts/player/draw.lua
index f06cd03c..16b13306 100644
--- a/parts/player/draw.lua
+++ b/parts/player/draw.lua
@@ -218,8 +218,8 @@ local function drawBoarders(P)
gc_rectangle("line",-16,-3,15,604)--B2b bar boarder
end
local attackColor={
- {COLOR.dGrey,COLOR.white},
- {COLOR.grey,COLOR.white},
+ {COLOR.dGray,COLOR.white},
+ {COLOR.gray,COLOR.white},
{COLOR.lPurple,COLOR.white},
{COLOR.lRed,COLOR.white},
{COLOR.dGreen,COLOR.cyan},
@@ -650,7 +650,7 @@ function draw.norm(P)
gc_setStencilTest("equal",1)
gc_setLineWidth(20)
for i=0,24 do
- gc_setColor(COLOR.rainbow_grey(t*.626+i*.1))
+ gc_setColor(COLOR.rainbow_gray(t*.626+i*.1))
gc_line(20*i-190,-2,20*i+10,602)
end
gc_setStencilTest()
@@ -800,7 +800,7 @@ function draw.norm_remote(P)
gc_setStencilTest("equal",1)
gc_setLineWidth(20)
for i=0,24 do
- gc_setColor(COLOR.rainbow_grey(t*.626+i*.1))
+ gc_setColor(COLOR.rainbow_gray(t*.626+i*.1))
gc_line(20*i-190,-2,20*i+10,602)
end
gc_setStencilTest()
diff --git a/parts/scenes/app_15p.lua b/parts/scenes/app_15p.lua
index d8b73b98..2906e68c 100644
--- a/parts/scenes/app_15p.lua
+++ b/parts/scenes/app_15p.lua
@@ -223,7 +223,7 @@ local frontColor={
COLOR.white,COLOR.white,COLOR.white,COLOR.white,
COLOR.white,COLOR.white,COLOR.white,COLOR.white,
COLOR.white,COLOR.white,COLOR.white,COLOR.white,
- },--Grey
+ },--Gray
{
COLOR.white,COLOR.white,COLOR.white,COLOR.white,
COLOR.white,COLOR.white,COLOR.white,COLOR.white,
@@ -251,11 +251,11 @@ local backColor={
COLOR.dGreen,COLOR.dYellow,COLOR.dPurple,COLOR.dPurple,
},--Colored(row)
{
- COLOR.dGrey,COLOR.dGrey,COLOR.dGrey,COLOR.dGrey,
- COLOR.dGrey,COLOR.dGrey,COLOR.dGrey,COLOR.dGrey,
- COLOR.dGrey,COLOR.dGrey,COLOR.dGrey,COLOR.dGrey,
- COLOR.dGrey,COLOR.dGrey,COLOR.dGrey,COLOR.dGrey,
- },--Grey
+ COLOR.dGray,COLOR.dGray,COLOR.dGray,COLOR.dGray,
+ COLOR.dGray,COLOR.dGray,COLOR.dGray,COLOR.dGray,
+ COLOR.dGray,COLOR.dGray,COLOR.dGray,COLOR.dGray,
+ COLOR.dGray,COLOR.dGray,COLOR.dGray,COLOR.dGray,
+ },--Gray
{
COLOR.black,COLOR.black,COLOR.black,COLOR.black,
COLOR.black,COLOR.black,COLOR.black,COLOR.black,
diff --git a/parts/scenes/app_2048.lua b/parts/scenes/app_2048.lua
index b80d682d..3fa5abe7 100644
--- a/parts/scenes/app_2048.lua
+++ b/parts/scenes/app_2048.lua
@@ -370,7 +370,7 @@ function scene.draw()
"Y"
)or(
repeater.seq[i]==repeater.last[i]and
- "grey"or
+ "gray"or
"white"
)
])
@@ -414,7 +414,7 @@ function scene.draw()
mStr(tileName[N],320+(x-.5)*160,40+(y-.5)*160-fontSize*.7)
end
else
- setColor(COLOR.grey)
+ setColor(COLOR.gray)
rectangle("fill",x*160+163,y*160-117,154,154,15)
end
else
@@ -489,8 +489,8 @@ scene.widgetList={
WIDGET.newKey{name="left", x=55,y=560,w=100,fText="←",font=50,color="yellow",code=pressKey"left",hide=function()return tapControl end},
WIDGET.newKey{name="right", x=255,y=560,w=100,fText="→",font=50,color="yellow",code=pressKey"right",hide=function()return tapControl end},
WIDGET.newKey{name="skip", x=155,y=400,w=100,font=20,color="yellow",code=pressKey"space",hide=function()return state~=1 or not skipper.cd or skipper.cd>0 end},
- WIDGET.newKey{name="record1", x=1100,y=390,w=220,h=50,fText="",color="grey",code=pressKey"1",hide=function()return state==2 end},
- WIDGET.newKey{name="record2", x=1100,y=450,w=220,h=50,fText="",color="grey",code=pressKey"2",hide=function()return state==2 end},
+ WIDGET.newKey{name="record1", x=1100,y=390,w=220,h=50,fText="",color="gray",code=pressKey"1",hide=function()return state==2 end},
+ WIDGET.newKey{name="record2", x=1100,y=450,w=220,h=50,fText="",color="gray",code=pressKey"2",hide=function()return state==2 end},
WIDGET.newKey{name="replay1", x=1245,y=390,w=50,fText="!",color="green",code=pressKey"c1",hide=function()return state==2 or #repeater.seq[1]==0 end},
WIDGET.newKey{name="replay2", x=1245,y=450,w=50,fText="!",color="green",code=pressKey"c2",hide=function()return state==2 or #repeater.seq[2]==0 end},
WIDGET.newButton{name="back", x=1140,y=640,w=170,h=80,font=40,code=backScene},
diff --git a/parts/scenes/app_cannon.lua b/parts/scenes/app_cannon.lua
index 38ce5a79..4ec26a0d 100644
--- a/parts/scenes/app_cannon.lua
+++ b/parts/scenes/app_cannon.lua
@@ -82,16 +82,16 @@ end
local scoreColor={
"white",--0
- "water",--20
+ "aqua",--20
"sky",--40
"blue",--60
"grape",--80
"pink",--100
- "red","fire","orange","yellow","lWater",--200
+ "red","fire","orange","yellow","lAqua",--200
"lSky","lBlue","lGrape","lPink","lRed",--300
- "lFire","lOrange","lYellow","dWater","dSky",--400
+ "lFire","lOrange","lYellow","dAqua","dSky",--400
"dBlue","dGrape","dPink","dRed","dFire",--500
- "dYellow","lGrey","grey","dGrey",--before 600, black after
+ "dYellow","lGray","gray","dGray",--before 600, black after
}
function scene.draw()
--Spawn area
diff --git a/parts/scenes/app_cmd.lua b/parts/scenes/app_cmd.lua
index 81be3d9f..2f26efd3 100644
--- a/parts/scenes/app_cmd.lua
+++ b/parts/scenes/app_cmd.lua
@@ -275,7 +275,7 @@ do--commands.help(arg)
log{C.lPink,"Page ",C.lG,page,C.lPink," of ",C.lG,maxPage}
for i=pageSize*(page-1)+1,math.min(pageSize*page,#command_help_list)do
local cmd=command_help_list[i]
- log{C.W,cmd,C.grey," "..command_help_messages[cmd].description}
+ log{C.W,cmd,C.gray," "..command_help_messages[cmd].description}
end
else
log{C.R,"Invalid page number. Must be between 1 and "..maxPage.." (inclusive)."}
@@ -306,7 +306,7 @@ function commands.print(name)
log{C.R,"No file called '"..name.."'"}
end
else
- log{C.water,"Usage: print [filename]"}
+ log{C.aqua,"Usage: print [filename]"}
end
end
function commands.url(url)
@@ -316,7 +316,7 @@ function commands.url(url)
log{C.R,"[ERR] ",C.W,err}
end
else
- log{C.water,"Usage: url [url]"}
+ log{C.aqua,"Usage: url [url]"}
end
end
local function tree(path,name,depth)
@@ -368,7 +368,7 @@ function commands.del(name)
log{C.R,"No file called '"..name.."'"}
end
else
- log{C.water,"Usage: del [filename]"}
+ log{C.aqua,"Usage: del [filename]"}
end
end
commands.exit=backScene
@@ -384,7 +384,7 @@ function commands.fn(n)
return
end
end
- log{C.water,"Usage: fn [1~12]"}
+ log{C.aqua,"Usage: fn [1~12]"}
end
function commands.scrinfo()
for _,v in next,SCR.info()do
@@ -396,7 +396,7 @@ function commands.wireframe(bool)
gc.setWireframe(bool=="true")
log("Wireframe: "..(gc.isWireframe()and"on"or"off"))
else
- log{C.water,"Usage: wireframe [true|false]"}
+ log{C.aqua,"Usage: wireframe [true|false]"}
end
end
function commands.gammacorrect(bool)
@@ -404,7 +404,7 @@ function commands.gammacorrect(bool)
love._setGammaCorrect(bool=="true")
log("GammaCorrect: "..(gc.isGammaCorrect()and"on"or"off"))
else
- log{C.water,"Usage: gammacorrect [true|false]"}
+ log{C.aqua,"Usage: gammacorrect [true|false]"}
end
end
function commands.rmwtm(pw)
@@ -413,7 +413,7 @@ function commands.rmwtm(pw)
log{C.lC,"\87\97\116\101\114\109\97\114\107\32\82\101\109\111\118\101\100"}
SFX.play("clear")
else
- log{C.water,"Usage: rmwtm [password]"}
+ log{C.aqua,"Usage: rmwtm [password]"}
end
end
function commands.unlockall(bool)
@@ -437,7 +437,7 @@ function commands.play(m)--marathon_bfmax can only entered through here
elseif m~=""then
log{C.R,"No mode called "..m}
else
- log{C.water,"Usage: play [modeName]"}
+ log{C.aqua,"Usage: play [modeName]"}
end
end
function commands.playbgm(bgm)
@@ -452,7 +452,7 @@ function commands.playbgm(bgm)
log("Already playing: "..bgm)
end
else
- log{C.water,"Usage: playbgm [bgmName]"}
+ log{C.aqua,"Usage: playbgm [bgmName]"}
end
end
function commands.stopbgm()
@@ -470,7 +470,7 @@ function commands.setbg(name)
log("Background already set to '"..name.."'")
end
else
- log{C.water,"Usage: setbg [bgName]"}
+ log{C.aqua,"Usage: setbg [bgName]"}
end
end
function commands.theme(name)
@@ -481,7 +481,7 @@ function commands.theme(name)
log("No theme called "..name)
end
else
- log{C.water,"Usage: theme [themeName]"}
+ log{C.aqua,"Usage: theme [themeName]"}
end
end
function commands.demo()
@@ -519,11 +519,11 @@ do--commands.applet(name)
return
end
end
- log{C.water,"No this applet"}
+ log{C.aqua,"No this applet"}
else
- log{C.water,"Usage:"}
- log{C.water,"applet -list"}
- log{C.water,"applet [appName]"}
+ log{C.aqua,"Usage:"}
+ log{C.aqua,"applet -list"}
+ log{C.aqua,"applet [appName]"}
end
end
commands.app=commands.applet
@@ -689,7 +689,7 @@ function scene.keyDown(k)
log(">Commands start with '"..str.."' :")
table.sort(res)
for i=1,#res do
- log{COLOR.lGrey,res[i]}
+ log{COLOR.lGray,res[i]}
end
elseif #res==1 then
inputBox.value=res[1]
diff --git a/parts/scenes/app_dropper.lua b/parts/scenes/app_dropper.lua
index 31f58064..ba284c71 100644
--- a/parts/scenes/app_dropper.lua
+++ b/parts/scenes/app_dropper.lua
@@ -188,7 +188,7 @@ function scene.draw()
gc.setColor(COLOR.rainbow_light(TIME()*2.6))
mStr("DROPPER",640,120)
- gc.setColor(COLOR.rainbow_grey(TIME()*1.626))
+ gc.setColor(COLOR.rainbow_gray(TIME()*1.626))
setFont(55)
mStr("Score - "..score,640,290)
mStr("High Score - "..highScore,640,370)
diff --git a/parts/scenes/app_dtw.lua b/parts/scenes/app_dtw.lua
index fda925ef..f89d6be6 100644
--- a/parts/scenes/app_dtw.lua
+++ b/parts/scenes/app_dtw.lua
@@ -107,7 +107,7 @@ function scene.sceneInit()
mode=1
arcade=true
reset()
- BG.set("grey")
+ BG.set("gray")
BGM.play("way")
love.keyboard.setKeyRepeat(false)
end
diff --git a/parts/scenes/app_tap.lua b/parts/scenes/app_tap.lua
index a0d3fe34..6cec4407 100644
--- a/parts/scenes/app_tap.lua
+++ b/parts/scenes/app_tap.lua
@@ -13,7 +13,7 @@ function scene.sceneInit()
lastKey=nil
speed=0
keyTime={}for i=1,40 do keyTime[i]=-1e99 end
- BG.set("grey")
+ BG.set("gray")
BGM.play("push")
love.keyboard.setKeyRepeat(false)
end
diff --git a/parts/scenes/app_ten.lua b/parts/scenes/app_ten.lua
index e176f909..fcd24d1d 100644
--- a/parts/scenes/app_ten.lua
+++ b/parts/scenes/app_ten.lua
@@ -269,7 +269,7 @@ function scene.draw()
local N=board[i][j]
if N>0 then
if hide and N>maxNew then
- setColor(COLOR.dGrey)
+ setColor(COLOR.dGray)
rectangle("fill",320+j*128-128,40+i*128-128,128,128)
setColor(1,1,1,.3)
mStr("?",j*128+256,i*128-75)
diff --git a/parts/scenes/customGame.lua b/parts/scenes/customGame.lua
index d3988082..3d1a100b 100644
--- a/parts/scenes/customGame.lua
+++ b/parts/scenes/customGame.lua
@@ -144,9 +144,9 @@ end
scene.widgetList={
WIDGET.newText{name="title", x=520, y=5,font=70,align="R"},
- WIDGET.newText{name="subTitle", x=530, y=50,font=35,align="L",color="grey"},
- WIDGET.newText{name="defSeq", x=330, y=550,align="L",color="grey",hide=function()return BAG[1]end},
- WIDGET.newText{name="noMsn", x=610, y=550,align="L",color="grey",hide=function()return MISSION[1]end},
+ WIDGET.newText{name="subTitle", x=530, y=50,font=35,align="L",color="gray"},
+ WIDGET.newText{name="defSeq", x=330, y=550,align="L",color="gray",hide=function()return BAG[1]end},
+ WIDGET.newText{name="noMsn", x=610, y=550,align="L",color="gray",hide=function()return MISSION[1]end},
--Basic
WIDGET.newSelector{name="drop", x=170, y=150,w=220,color="orange", list={0,.125,.25,.5,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},disp=CUSval("drop"),code=CUSsto("drop")},
@@ -167,7 +167,7 @@ scene.widgetList={
--More
WIDGET.newKey{name="advance", x=730, y=190,w=220,h=90,color="red", font=35,code=goScene"custom_advance"},
WIDGET.newKey{name="mod", x=730, y=310,w=220,h=90,color="white", font=35,code=goScene"mod"},
- WIDGET.newKey{name="field", x=170, y=640,w=240,h=80,color="water", font=25,code=goScene"custom_field"},
+ WIDGET.newKey{name="field", x=170, y=640,w=240,h=80,color="aqua", font=25,code=goScene"custom_field"},
WIDGET.newKey{name="sequence", x=450, y=640,w=240,h=80,color="pink", font=25,code=goScene"custom_sequence"},
WIDGET.newKey{name="mission", x=730, y=640,w=240,h=80,color="sky", font=25,code=goScene"custom_mission"},
diff --git a/parts/scenes/custom_advance.lua b/parts/scenes/custom_advance.lua
index 14df8793..ef9132ab 100644
--- a/parts/scenes/custom_advance.lua
+++ b/parts/scenes/custom_advance.lua
@@ -11,7 +11,7 @@ local scene={}
scene.widgetList={
WIDGET.newText{name="title", x=520,y=5,font=70,align="R"},
- WIDGET.newText{name="subTitle", x=530,y=50,font=35,align="L",color="grey"},
+ WIDGET.newText{name="subTitle", x=530,y=50,font=35,align="L",color="gray"},
--Control
WIDGET.newSlider{name="nextCount", x=200, y=150, w=200,unit=6,disp=CUSval("nextCount"),code=CUSsto("nextCount")},
diff --git a/parts/scenes/custom_field.lua b/parts/scenes/custom_field.lua
index 0edef2b3..14d00f73 100644
--- a/parts/scenes/custom_field.lua
+++ b/parts/scenes/custom_field.lua
@@ -424,16 +424,16 @@ end
local function setPen(i)return function()penType=i end end
scene.widgetList={
WIDGET.newText{name="title", x=1020,y=5,font=70,align="R"},
- WIDGET.newText{name="subTitle", x=1030,y=50,font=35,align="L",color="grey"},
+ WIDGET.newText{name="subTitle", x=1030,y=50,font=35,align="L",color="gray"},
WIDGET.newButton{name="b1", x=580, y=130,w=75,fText="",color=COLOR.red, code=setPen(1)},--B1
WIDGET.newButton{name="b2", x=660, y=130,w=75,fText="",color=COLOR.fire, code=setPen(2)},--B2
WIDGET.newButton{name="b3", x=740, y=130,w=75,fText="",color=COLOR.orange, code=setPen(3)},--B3
WIDGET.newButton{name="b4", x=820, y=130,w=75,fText="",color=COLOR.yellow, code=setPen(4)},--B4
- WIDGET.newButton{name="b5", x=900, y=130,w=75,fText="",color=COLOR.lame, code=setPen(5)},--B5
+ WIDGET.newButton{name="b5", x=900, y=130,w=75,fText="",color=COLOR.lime, code=setPen(5)},--B5
WIDGET.newButton{name="b6", x=980, y=130,w=75,fText="",color=COLOR.grass, code=setPen(6)},--B6
WIDGET.newButton{name="b7", x=1060, y=130,w=75,fText="",color=COLOR.green, code=setPen(7)},--B7
- WIDGET.newButton{name="b8", x=1140, y=130,w=75,fText="",color=COLOR.water, code=setPen(8)},--B8
+ WIDGET.newButton{name="b8", x=1140, y=130,w=75,fText="",color=COLOR.aqua, code=setPen(8)},--B8
WIDGET.newButton{name="b9", x=580, y=210,w=75,fText="",color=COLOR.cyan, code=setPen(9)},--B9
WIDGET.newButton{name="b10", x=660, y=210,w=75,fText="",color=COLOR.sky, code=setPen(10)},--B10
@@ -444,17 +444,17 @@ scene.widgetList={
WIDGET.newButton{name="b15", x=1060, y=210,w=75,fText="",color=COLOR.magenta,code=setPen(15)},--B15
WIDGET.newButton{name="b16", x=1140, y=210,w=75,fText="",color=COLOR.pink, code=setPen(16)},--B16
- WIDGET.newButton{name="b17", x=580, y=290,w=75,fText="[ ]",color="dGrey", code=setPen(17)},--BONE
+ WIDGET.newButton{name="b17", x=580, y=290,w=75,fText="[ ]",color="dGray", code=setPen(17)},--BONE
WIDGET.newButton{name="b18", x=660, y=290,w=75,fText="N", color="black", code=setPen(18)},--HIDE
WIDGET.newButton{name="b19", x=740, y=290,w=75,fText="B", color="lYellow",code=setPen(19)},--BOMB
- WIDGET.newButton{name="b20", x=820, y=290,w=75,fText="_", color="grey", code=setPen(20)},--GB1
- WIDGET.newButton{name="b21", x=900, y=290,w=75,fText="_", color="lGrey", code=setPen(21)},--GB2
+ WIDGET.newButton{name="b20", x=820, y=290,w=75,fText="_", color="gray", code=setPen(20)},--GB1
+ WIDGET.newButton{name="b21", x=900, y=290,w=75,fText="_", color="lGray", code=setPen(21)},--GB2
WIDGET.newButton{name="b22", x=980, y=290,w=75,fText="_", color="dPurple",code=setPen(22)},--GB3
WIDGET.newButton{name="b23", x=1060, y=290,w=75,fText="_", color="dRed", code=setPen(23)},--GB4
WIDGET.newButton{name="b24", x=1140, y=290,w=75,fText="_", color="dGreen", code=setPen(24)},--GB5
- WIDGET.newButton{name="any", x=600, y=400,w=120,color="lGrey", font=40,code=setPen(0)},
- WIDGET.newButton{name="space", x=730, y=400,w=120,color="grey", font=65,code=setPen(-1)},
+ WIDGET.newButton{name="any", x=600, y=400,w=120,color="lGray", font=40,code=setPen(0)},
+ WIDGET.newButton{name="space", x=730, y=400,w=120,color="gray", font=65,code=setPen(-1)},
WIDGET.newButton{name="smartPen", x=860, y=400,w=120,color="lGreen", font=30,code=setPen(-2)},
WIDGET.newButton{name="pushLine", x=990, y=400,w=120,h=120,color="lYellow",font=20,code=pressKey"k"},
WIDGET.newButton{name="delLine", x=1120, y=400,w=120,h=120,color="lYellow",font=20,code=pressKey"l"},
diff --git a/parts/scenes/custom_mission.lua b/parts/scenes/custom_mission.lua
index b5688b98..78ba8218 100644
--- a/parts/scenes/custom_mission.lua
+++ b/parts/scenes/custom_mission.lua
@@ -160,7 +160,7 @@ function scene.draw()
elseif L[i]>4 then
gc.setColor(COLOR.rainbow(i+TIME()*6.26))
else
- gc.setColor(COLOR.grey)
+ gc.setColor(COLOR.gray)
end
gc.print(missionEnum[L[i]],x,y-25)
x=x+56
@@ -185,7 +185,7 @@ end
scene.widgetList={
WIDGET.newText{name="title", x=520,y=5,font=70,align="R"},
- WIDGET.newText{name="subTitle", x=530,y=50,font=35,align="L",color="grey"},
+ WIDGET.newText{name="subTitle", x=530,y=50,font=35,align="L",color="gray"},
WIDGET.newKey{name="_1", x=800, y=540, w=90, font=50,code=pressKey(01)},
WIDGET.newKey{name="_2", x=900, y=540, w=90, font=50,code=pressKey(02)},
diff --git a/parts/scenes/custom_sequence.lua b/parts/scenes/custom_sequence.lua
index 17deb1b6..061711a0 100644
--- a/parts/scenes/custom_sequence.lua
+++ b/parts/scenes/custom_sequence.lua
@@ -186,7 +186,7 @@ end
scene.widgetList={
WIDGET.newText{name="title", x=520,y=5,font=70,align="R"},
- WIDGET.newText{name="subTitle",x=530,y=50,font=35,align="L",color="grey"},
+ WIDGET.newText{name="subTitle",x=530,y=50,font=35,align="L",color="gray"},
WIDGET.newSelector{name="sequence",
x=1080,y=60,w=200,color="yellow",
@@ -208,30 +208,30 @@ scene.widgetList={
WIDGET.newKey{name="backsp",x=920,y=460,w=80,color="lYellow",font=50,code=pressKey"backspace"},
WIDGET.newKey{name="reset", x=1000,y=460,w=80,color="lYellow",font=25,code=pressKey"delete"},
- WIDGET.newKey{name="Z5", x=120,y=540,w=80,color="lGrey",font=50,code=pressKey(8)},
- WIDGET.newKey{name="S5", x=200,y=540,w=80,color="lGrey",font=50,code=pressKey(9)},
- WIDGET.newKey{name="P", x=280,y=540,w=80,color="lGrey",font=50,code=pressKey(10)},
- WIDGET.newKey{name="Q", x=360,y=540,w=80,color="lGrey",font=50,code=pressKey(11)},
- WIDGET.newKey{name="F", x=440,y=540,w=80,color="lGrey",font=50,code=pressKey(12)},
- WIDGET.newKey{name="E", x=520,y=540,w=80,color="lGrey",font=50,code=pressKey(13)},
- WIDGET.newKey{name="T5", x=600,y=540,w=80,color="lGrey",font=50,code=pressKey(14)},
- WIDGET.newKey{name="U", x=680,y=540,w=80,color="lGrey",font=50,code=pressKey(15)},
- WIDGET.newKey{name="V", x=760,y=540,w=80,color="lGrey",font=50,code=pressKey(16)},
- WIDGET.newKey{name="I3", x=840,y=540,w=80,color="grey",font=50,code=pressKey(26)},
- WIDGET.newKey{name="C", x=920,y=540,w=80,color="grey",font=50,code=pressKey(27)},
+ WIDGET.newKey{name="Z5", x=120,y=540,w=80,color="lGray",font=50,code=pressKey(8)},
+ WIDGET.newKey{name="S5", x=200,y=540,w=80,color="lGray",font=50,code=pressKey(9)},
+ WIDGET.newKey{name="P", x=280,y=540,w=80,color="lGray",font=50,code=pressKey(10)},
+ WIDGET.newKey{name="Q", x=360,y=540,w=80,color="lGray",font=50,code=pressKey(11)},
+ WIDGET.newKey{name="F", x=440,y=540,w=80,color="lGray",font=50,code=pressKey(12)},
+ WIDGET.newKey{name="E", x=520,y=540,w=80,color="lGray",font=50,code=pressKey(13)},
+ WIDGET.newKey{name="T5", x=600,y=540,w=80,color="lGray",font=50,code=pressKey(14)},
+ WIDGET.newKey{name="U", x=680,y=540,w=80,color="lGray",font=50,code=pressKey(15)},
+ WIDGET.newKey{name="V", x=760,y=540,w=80,color="lGray",font=50,code=pressKey(16)},
+ WIDGET.newKey{name="I3", x=840,y=540,w=80,color="gray",font=50,code=pressKey(26)},
+ WIDGET.newKey{name="C", x=920,y=540,w=80,color="gray",font=50,code=pressKey(27)},
WIDGET.newKey{name="rnd", x=1000,y=540,w=80,color="red",font=25,code=pressKey"="},
- WIDGET.newKey{name="W", x=120,y=620,w=80,color="lGrey",font=50,code=pressKey(17)},
- WIDGET.newKey{name="X", x=200,y=620,w=80,color="lGrey",font=50,code=pressKey(18)},
- WIDGET.newKey{name="J5", x=280,y=620,w=80,color="lGrey",font=50,code=pressKey(19)},
- WIDGET.newKey{name="L5", x=360,y=620,w=80,color="lGrey",font=50,code=pressKey(20)},
- WIDGET.newKey{name="R", x=440,y=620,w=80,color="lGrey",font=50,code=pressKey(21)},
- WIDGET.newKey{name="Y", x=520,y=620,w=80,color="lGrey",font=50,code=pressKey(22)},
- WIDGET.newKey{name="N", x=600,y=620,w=80,color="lGrey",font=50,code=pressKey(23)},
- WIDGET.newKey{name="H", x=680,y=620,w=80,color="lGrey",font=50,code=pressKey(24)},
- WIDGET.newKey{name="I5", x=760,y=620,w=80,color="lGrey",font=50,code=pressKey(25)},
- WIDGET.newKey{name="I2", x=840,y=620,w=80,color="dGrey",font=50,code=pressKey(28)},
- WIDGET.newKey{name="O1", x=920,y=620,w=80,color="dGrey",font=50,code=pressKey(29)},
+ WIDGET.newKey{name="W", x=120,y=620,w=80,color="lGray",font=50,code=pressKey(17)},
+ WIDGET.newKey{name="X", x=200,y=620,w=80,color="lGray",font=50,code=pressKey(18)},
+ WIDGET.newKey{name="J5", x=280,y=620,w=80,color="lGray",font=50,code=pressKey(19)},
+ WIDGET.newKey{name="L5", x=360,y=620,w=80,color="lGray",font=50,code=pressKey(20)},
+ WIDGET.newKey{name="R", x=440,y=620,w=80,color="lGray",font=50,code=pressKey(21)},
+ WIDGET.newKey{name="Y", x=520,y=620,w=80,color="lGray",font=50,code=pressKey(22)},
+ WIDGET.newKey{name="N", x=600,y=620,w=80,color="lGray",font=50,code=pressKey(23)},
+ WIDGET.newKey{name="H", x=680,y=620,w=80,color="lGray",font=50,code=pressKey(24)},
+ WIDGET.newKey{name="I5", x=760,y=620,w=80,color="lGray",font=50,code=pressKey(25)},
+ WIDGET.newKey{name="I2", x=840,y=620,w=80,color="dGray",font=50,code=pressKey(28)},
+ WIDGET.newKey{name="O1", x=920,y=620,w=80,color="dGray",font=50,code=pressKey(29)},
WIDGET.newButton{name="copy", x=1140, y=460,w=170,h=80,color="lRed", font=40,code=pressKey"cC",hide=function()return #BAG==0 end},
diff --git a/parts/scenes/depause.lua b/parts/scenes/depause.lua
index 3d3d2978..f8ef896b 100644
--- a/parts/scenes/depause.lua
+++ b/parts/scenes/depause.lua
@@ -24,7 +24,7 @@ function scene.draw()
SCN.scenes.game.draw()
end
- --Grey screen cover
+ --Gray screen cover
gc.setColor(.15,.15,.15,timer*1.26)
gc.push("transform")
gc.origin()
diff --git a/parts/scenes/load.lua b/parts/scenes/load.lua
index 819e2aac..47880155 100644
--- a/parts/scenes/load.lua
+++ b/parts/scenes/load.lua
@@ -356,7 +356,7 @@ function scene.draw()
setFont(25)
for i=0,26 do
local x,y=light[3*i+1],light[3*i+2]
- gc.setColor(COLOR[i==progress and"grey"or light[3*i+3]and"dOrange"or"dGrey"])
+ gc.setColor(COLOR[i==progress and"gray"or light[3*i+3]and"dOrange"or"dGray"])
gc.circle("fill",x,y,23)
gc.setColor(.16,.16,.16)
gc.circle("line",x,y,23)
diff --git a/parts/scenes/main.lua b/parts/scenes/main.lua
index 776174f9..4a223d0d 100644
--- a/parts/scenes/main.lua
+++ b/parts/scenes/main.lua
@@ -177,7 +177,7 @@ scene.widgetList={
WIDGET.newButton{name="custom", x=-1200,y=570,w=800,h=100, color="lSea", font=45,align="R",edge=30, code=pressKey"z"},
WIDGET.newButton{name="setting",x=2480,y=210,w=800,h=100, color="lOrange",font=40,align="L",edge=30, code=pressKey"-"},
- WIDGET.newButton{name="stat", x=2480,y=330,w=800,h=100, color="lLame", font=40,align="L",edge=30, code=pressKey"p"},
+ WIDGET.newButton{name="stat", x=2480,y=330,w=800,h=100, color="lLime", font=40,align="L",edge=30, code=pressKey"p"},
WIDGET.newButton{name="dict", x=2480,y=450,w=800,h=100, color="lGreen", font=40,align="L",edge=30, code=pressKey"l"},
WIDGET.newButton{name="manual", x=2480,y=570,w=800,h=100, color="lC", font=40,align="L",edge=30, code=pressKey","},
diff --git a/parts/scenes/net_game.lua b/parts/scenes/net_game.lua
index 2e1407e4..744dcc57 100644
--- a/parts/scenes/net_game.lua
+++ b/parts/scenes/net_game.lua
@@ -275,7 +275,7 @@ scene.widgetList={
PLY_NET[1].ready or
NET.getlock("ready")
end},
- WIDGET.newKey{name="cancel",x=900,y=560,w=400,h=100,color="grey",font=40,code=pressKey"space",
+ WIDGET.newKey{name="cancel",x=900,y=560,w=400,h=100,color="gray",font=40,code=pressKey"space",
hide=function()
return
playing or
diff --git a/parts/scenes/pause.lua b/parts/scenes/pause.lua
index e4155e25..ccc88685 100644
--- a/parts/scenes/pause.lua
+++ b/parts/scenes/pause.lua
@@ -6,7 +6,7 @@ local SCR,setFont,mStr=SCR,setFont,mStr
local fnsRankColor={
Z=COLOR.lYellow,
- S=COLOR.lGrey,
+ S=COLOR.lGray,
A=COLOR.sky,
B=COLOR.lGreen,
C=COLOR.magenta,
@@ -38,7 +38,7 @@ function scene.sceneInit(org)
local frameLostRate=(S.frame/S.time/60-1)*100
form={
- {COLOR.white,TIMESTR(S.time),COLOR[frameLostRate>10 and"red"or frameLostRate>3 and"yellow"or"grey"],format(" (%.2f%%)",frameLostRate)},
+ {COLOR.white,TIMESTR(S.time),COLOR[frameLostRate>10 and"red"or frameLostRate>3 and"yellow"or"gray"],format(" (%.2f%%)",frameLostRate)},
format("%d/%d/%d",S.key,S.rotate,S.hold),
format("%d %.2fPPS",S.piece,S.piece/S.time),
format("%d(%d) %.2fLPM",S.row,S.dig,S.row/S.time*60),
diff --git a/parts/scenes/test.lua b/parts/scenes/test.lua
index c856b7d5..3a520bdd 100644
--- a/parts/scenes/test.lua
+++ b/parts/scenes/test.lua
@@ -24,13 +24,13 @@ function scene.gamepadDown(key)
push("[gamepadDown] <"..key..">")
end
function scene.gamepadUp(key)
- push{COLOR.grey,"[gamepadUp] <"..key..">"}
+ push{COLOR.gray,"[gamepadUp] <"..key..">"}
end
function scene.keyDown(key)
push("[keyDown] <"..key..">")
end
function scene.keyUp(key)
- push{COLOR.grey,"[keyUp] <"..key..">"}
+ push{COLOR.gray,"[keyUp] <"..key..">"}
end
function scene.mouseDown(x,y,k)
push(("[mouseDown] <%d: %d, %d>"):format(k,x,y))
@@ -40,7 +40,7 @@ function scene.mouseMove(x,y)
end
function scene.mouseUp(x,y,k)
SYSFX.newRectRipple(1,x-10,y-10,21,21)
- push{COLOR.grey,"[mouseUp] <"..k..">"}
+ push{COLOR.gray,"[mouseUp] <"..k..">"}
end
function scene.touchClick(x,y)
SYSFX.newRipple(.5,x,y,50)
@@ -55,7 +55,7 @@ function scene.touchMove(x,y)
end
function scene.touchUp(x,y)
SYSFX.newRipple(.5,x,y,50)
- push{COLOR.grey,"[touchUp]"}
+ push{COLOR.gray,"[touchUp]"}
end
function scene.wheelMoved(dx,dy)
push(("[wheelMoved] <%d, %d>"):format(dx,dy))
From 026fbc910f76d71bcc790a8f881b7374517ff782 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Mon, 19 Apr 2021 00:20:35 +0800
Subject: [PATCH 41/48] =?UTF-8?q?=E5=8D=87=E7=BA=A7doGC=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=E5=91=BD=E4=BB=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Zframework/doGC.lua | 28 +++++++++++------
parts/scenes/load.lua | 72 +++++++++++++++++++++----------------------
parts/texture.lua | 8 ++---
parts/users.lua | 12 ++++----
4 files changed, 65 insertions(+), 55 deletions(-)
diff --git a/Zframework/doGC.lua b/Zframework/doGC.lua
index 1a0e83fb..c0e42bfe 100644
--- a/Zframework/doGC.lua
+++ b/Zframework/doGC.lua
@@ -1,14 +1,17 @@
local gc=love.graphics
local cmds={
- move="translate",
- zoom="scale",
- rgba="setColor",
- lwid="setLineWidth",
+ trans="translate",
+ scale="scale",
+ setCL="setColor",
+ setLW="setLineWidth",
draw="draw",
- line="line",
- rect="rectangle",
- circ="circle",
- poly="polygon",
+ dLine="line",
+ fRect=function(...)gc.rectangle("fill",...)end,
+ dRect=function(...)gc.rectangle("line",...)end,
+ fCirc=function(...)gc.circle("fill",...)end,
+ dCirc=function(...)gc.circle("line",...)end,
+ fPoly=function(...)gc.polygon("line",...)end,
+ dPoly=function(...)gc.polygon("line",...)end,
}
return function(L)
gc.push()
@@ -18,7 +21,14 @@ return function(L)
gc.setColor(1,1,1)
gc.setLineWidth(1)
for i=3,#L do
- gc[cmds[L[i][1]]](unpack(L[i],2))
+ print(L[i][1])
+ local cmd=cmds[L[i][1]]
+ print(L[i][1])
+ if type(cmd)=="string"then
+ gc[cmd](unpack(L[i],2))
+ else
+ cmd(unpack(L[i],2))
+ end
end
gc.setCanvas()
gc.pop()
diff --git a/parts/scenes/load.lua b/parts/scenes/load.lua
index 47880155..8803ede0 100644
--- a/parts/scenes/load.lua
+++ b/parts/scenes/load.lua
@@ -75,50 +75,50 @@ local loadingThread=coroutine.wrap(function()
upFloor()
local modeIcons={}
modeIcons.marathon=DOGC{32,32,
- {"move",3,1},
- {"rect","fill",10,4,-2,23},
- {"poly","fill",10,4,24,10,10,16.5},
- {"rect","fill",4,24,10,3},
+ {"trans",3,1},
+ {"fRect",10,4,-2,23},
+ {"fPoly",10,4,24,10,10,16.5},
+ {"fRect",4,24,10,3},
}YIELD()
modeIcons.tsd=DOGC{64,64,
- {"rect","fill",7,7,16,16},
- {"rect","fill",7,41,16,16},
- {"rect","fill",41,41,16,16},
- {"move",.5,.5},
- {"poly","line",7,24,56,24,56,39,39,39,39,56,24,56,24,39,7,39},
+ {"fRect",7,7,16,16},
+ {"fRect",7,41,16,16},
+ {"fRect",41,41,16,16},
+ {"trans",.5,.5},
+ {"dPoly",7,24,56,24,56,39,39,39,39,56,24,56,24,39,7,39},
}YIELD()
modeIcons.infinite=DOGC{64,64,
- {"lwid",4},
- {"circ","line",32,32,28},
- {"line",32,32,32,14},
- {"line",32,32,41,41},
- {"move",.5,.5},
- {"rect","fill",30,7,4,4},
- {"rect","fill",7,30,4,4},
- {"rect","fill",52,30,4,4},
- {"rect","fill",30,52,4,4},
+ {"setLW",4},
+ {"dCirc",32,32,28},
+ {"dLine",32,32,32,14},
+ {"dLine",32,32,41,41},
+ {"trans",.5,.5},
+ {"fRect",30,7,4,4},
+ {"fRect",7,30,4,4},
+ {"fRect",52,30,4,4},
+ {"fRect",30,52,4,4},
}YIELD()
modeIcons.t49=DOGC{64,64,
- {"lwid",2},
- {"rect","line",05,05,10,20},{"rect","line",49,05,10,20},
- {"rect","line",05,39,10,20},{"rect","line",49,39,10,20},
- {"rect","line",20,10,23,43},
- {"rgba",1,1,1,.7},
- {"rect","fill",20,10,23,43},
+ {"setLW",2},
+ {"dRect",05,05,10,20},{"dRect",49,05,10,20},
+ {"dRect",05,39,10,20},{"dRect",49,39,10,20},
+ {"dRect",20,10,23,43},
+ {"setCL",1,1,1,.7},
+ {"fRect",20,10,23,43},
}YIELD()
modeIcons.t99=DOGC{64,64,
- {"lwid",2},
- {"rect","line",02,02,6,12},{"rect","line",11,02,6,12},
- {"rect","line",02,18,6,12},{"rect","line",11,18,6,12},
- {"rect","line",02,34,6,12},{"rect","line",11,34,6,12},
- {"rect","line",02,50,6,12},{"rect","line",11,50,6,12},
- {"rect","line",47,02,6,12},{"rect","line",56,02,6,12},
- {"rect","line",47,18,6,12},{"rect","line",56,18,6,12},
- {"rect","line",47,34,6,12},{"rect","line",56,34,6,12},
- {"rect","line",47,50,6,12},{"rect","line",56,50,6,12},
- {"rect","line",20,10,23,43},
- {"rgba",1,1,1,.7},
- {"rect","fill",20,10,23,43},
+ {"setLW",2},
+ {"dRect",02,02,6,12},{"dRect",11,02,6,12},
+ {"dRect",02,18,6,12},{"dRect",11,18,6,12},
+ {"dRect",02,34,6,12},{"dRect",11,34,6,12},
+ {"dRect",02,50,6,12},{"dRect",11,50,6,12},
+ {"dRect",47,02,6,12},{"dRect",56,02,6,12},
+ {"dRect",47,18,6,12},{"dRect",56,18,6,12},
+ {"dRect",47,34,6,12},{"dRect",56,34,6,12},
+ {"dRect",47,50,6,12},{"dRect",56,50,6,12},
+ {"dRect",20,10,23,43},
+ {"setCL",1,1,1,.7},
+ {"fRect",20,10,23,43},
}YIELD()
upFloor()
diff --git a/parts/texture.lua b/parts/texture.lua
index 49ec0336..ac70d6a5 100644
--- a/parts/texture.lua
+++ b/parts/texture.lua
@@ -47,11 +47,11 @@ for i=18,24 do
gc.rectangle("line",7,7,16,16)
end
TEXTURE.puzzleMark[-1]=DOGC{30,30,
- {"rgba",1,1,1,.8},
+ {"setCL",1,1,1,.8},
{"draw",DOGC{30,30,
- {"lwid",3},
- {"line",5,5,25,25},
- {"line",5,25,25,5},
+ {"setLW",3},
+ {"dLine",5,5,25,25},
+ {"dLine",5,25,25,5},
}}
}
diff --git a/parts/users.lua b/parts/users.lua
index 69dfe114..c0af85d0 100644
--- a/parts/users.lua
+++ b/parts/users.lua
@@ -2,12 +2,12 @@ local loadImage=love.graphics.newImage
local fs=love.filesystem
local texture_noImage=DOGC{32,32,
- {"rgba",0,0,0},
- {"rect","fill",0,0,32,32},
- {"rgba",1,1,1},
- {"lwid",3},
- {"line",0,0,31,31},
- {"line",0,31,31,0},
+ {"setCL",0,0,0},
+ {"fRect",0,0,32,32},
+ {"setCL",1,1,1},
+ {"setLW",3},
+ {"dLine",0,0,31,31},
+ {"dLine",0,31,31,0},
}
local function _getEmptyUser()
From b79b6ab8463812fea4ca19c709ae212c517db916 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Mon, 19 Apr 2021 01:16:28 +0800
Subject: [PATCH 42/48] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A1=AC=E9=99=8D?=
=?UTF-8?q?=E9=9F=B3=E6=95=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
media/SFX/drop.ogg | Bin 4801 -> 6048 bytes
parts/updateLog.lua | 1 +
2 files changed, 1 insertion(+)
diff --git a/media/SFX/drop.ogg b/media/SFX/drop.ogg
index 2192f71cbee75adc59f44440585f1d1b23288463..0063a1b99a465f555281705142f69b489e9a33ec 100644
GIT binary patch
literal 6048
zcmeG=c~q0f_LBrcK%guE69||<5CTC71_eYLA}EAK2#YMDvMFn;1W>d-!zKYDg$NW8
zF(P4!fP#XeRa2Esb`YV`x(h1S4Xd?Uee)%>$M(E)Ue9^`>vw*0CX<Rxu%beWpxCW3i`FJ>At%H}1j+@F-O08#3_BZ!jUCzIbJ%DITa>b54~@Ml
z5Cw1m@J&1kSNKDP0RU(LAZ}Pzx~u#Ao144R>(=0R36R;nhBZSw1?_P5^n9(su3iY^
zk(p6?04M=I4OgCYoBjCw8)M>>wy%L@7c$GvwJ9cMuPC_@GDF$_1N-rcX=9v5urgE_
zuyB+tJlBnq{rfZ+!Cyu2ij+G{k2g)abiNS4&lYj1V)yXIzHgyo0(nKaS
z(LH;SQr6xEG>Ae>BDTo8XJ2sNt-vf+v^lMGOKy4Hf%1p-m1=Sl=uRc%X~69rdDA-z
zwxo&VV|i_CdClMLte9>~z=F2y+D20JHAz$zxrMs{^eKx=?MkAr;W4{-PHU1~x{^J6
ziv4?9*U$Ui3DE7Zv2^LKeokHcod$L721l9wx?a9auhGBJ{qX7Xc!7#g4s9-tOTa;gBwNq+F%``yjYCc&L1;t{o3&
zxy1*~Tig8={Nzk|1N9p!2EKE+19#-!I2hlq8U|-?qbi>Et0FKccWzLXhYt(-EqsE|
zc_@Rty8s)3r_@mP8z+CQxnIoard1p7D_G5`&-CFE%_Yeha?QyAWNCdG#gx5-2mz(G
zB1z4%u3D65dDY@%pKUK485%ARIL@57thGv=acYD^w;KzL+}Ao)$!l_Oif6@nEkYF$?;#nTd0qar|gTG0c
zJe?gjk#cK%_pR}L8|Uwh4leyuSEvp(0Z2N@)3G>0$mpub^k%Cn96XmfYqsILiby?0
zRF4*_*9g7;C3Ed8b6D3EhKrwG*sxy8sD8BH(y&px=+S`avDE1A+oD5H?+$L;ee2C9
zeLUsU%zI$sBP^UTs-ktsrk&P+*Z;
z8k<`#ZLdnW+B9?azxF>e2PO>cu3W0?pE5_rAgzMQ(?a)}Rp_{47@iKvuJb>2006Q=
zbr0kyq55*I$GCQ5TL5rE65?vEr5?i0INu4%n4@_j(7&A^XF4aXWT4Qq{qaf<^-h(NOoMeRjX
zJuuLZNOK;EKVZZqjGvYN;106t0u@PY1C)*sJQ6{HVzug
zA=6A>#ex}S2DFsHZ6AE^2-EkzeW@h2s=J8pG3rtj9a}zqU?H=A)>FG`I;}=^a2Dzv
zn^z@8!|Mf_T^TX^(ije1(2z+DMR|=>Y6%4m%CD$^fUubIIq=y1e)2b};YU-s;^L+8Hu<(Hg__#7;
z3PIAxXITggg2Ltt6fB!&&~rp3VfRNDyUT2;Iyg`cz5WrXvhI1Ga^++AI+L3Tiwi_ji%eACQ)Yz70
zC0u7WNj2A&V=XD=DpN{CoO*IKmrGLyd?S1K3&LgZZBPO)VYL^DT-wuAHit1)!PB8g
z2(YrL$44SHPO*pq3mtFHqcR9HmqhhJ*nX}fQvA5nB*~Bj*4FHYq-0os9O7xRQGlhe
zc3y(FjgG(E+?UWQYXHB!-su;w)
z(s@Wx=^rqjjTE?2>CB}z#H`~f;gisa&`L6BGHAkXx^
z4vpNGSqvNv)?D4>YAv=KExYi~;g90`Lx5I%BP^)mH6q~vXFAgj$WjjbM~6T_PR+*1
zyt6cpnO5NUDeD`w=m4Aw^r*9d@sJAZxooY-A$K=PE5Ry@km?A#v87
z_Z_Cm)z?CVjD_P+6G>@Ae)Ac9wk56gdPGAHp@bV}-A0K2siUr#|8hNJwKVHd5H!-Z~N2-%cm|i=JK#3B
z&eno52BRx%(YM;ibWxijhq!6pdc=14#DMkKz@h}IaWUU&n;<^YsfYQ
zHY6Szm}{w^J9RB29Oy~v
zYezCTaYk1786X-M#?GHV6wRM^_RI_m=Zs@(8S`o?kJn+?uJIoX0Vezt8b8
z09JWaLzasRlSeW#UO=Xpm{QFank%lI+gPvwmWOIu+S>i3H91`>Zh~%{dv1>^2LLiW
zu3^KG0SYBAu;go$;$wtTnxPyEkdG0_4K}N+dRNVP$<(d>N3z>p8xkBJ@ZUD7yz#6(
zFnsIh;(y)HZ`>iwn90%&Ja%4i+05awtusg`nRIDVmKNkjWpsyE{DKYDPSfk}*}QSz
zQN}8eyiy|eou7Gk+Am2|m!JLOTIiW14Q-o&rO)d0G>`Ic*yI&fXHu@TMf!eiyY%%t
zDa#wRlbHQ&pMOVhM)=!vLiWw-d7Zt=k3TN*h;H=nS96W>{%pV1vVHiTIH5tV-Z22q
zh@6GmhQm=LqbG68u0`mrvAQcRO`S4(d-O_#dc1SGR%U|gtqn$7uD#4DG9^u*d$%^(
zk^{u|ZtQqok}J^Z>JxTM3iM=3>0X3Q&Q;WcCyAlUDr~})Om&0#!W}784>F*Qo_M$D$acMN!Y4o7Jm7h6=(4&*yI;L4>NB5P{@It|U7=HY8Nr_gKV@j<(f_p(vD^fIZZy
z>5MjM_pCmCY{{XgtC<^1J#av6BXK!Vu(fEsv*B(Qo{yR=h%yaINT)D*RWfCCP{@8=
z{L}fI$8S5-)l5{6tDlV=vuYhm-PP%RAz}HRg;WrJlpNT--v-^w@ANkR*{c73{gNML
zr(NtqCae!8MSpvwVp!;4`<=P3PXYbT3e|0PZK&;_{ql9Kexlpt^45`gQK0hOp?id$
zNDTSS@($YbGB7c|-cp*Sm6;cy3{K<+G}~OUX^1FGozxjU<)`csy0mn!B(IL5ALw%8
zR9qCNWm$tXwkPQcxtOlh=Bwo%Zebm!8p?-Ho|SkKU@=bX8f?p?C(17^VXux-Ri6Bn
z``rS5GUkTs=SC&DcaHl$$|@wzQoGudtUGTWU;p`$ebw*2hzSr}jPey0
z==$A_wAXzUwAn>kpkC+UVsLnKy>j4U{tI^Ja1j}Ut2>j4G228a(F8vU4^+y4L0L0Hj$m}$Epv%T
zNOYfi5~P>^mFFrRp+VEqQw@Eyaa47Hn7aXjqn#|UjE<=O9O9ltFq&`sX#${AJPyW}gbxG^$m2g{)
zbI!JmJ3RlkK`r6_gzes+o`kLp@?QJc7+A5c8yjw8C7N}zyjJjqhMf;l_KWUxXBNHq
z2rzt=M(&3<*m2qD@vn?^O~Hj<*K>u>U38CcxHZ_8-%)IE=xFZi+^Sc>c(<#sl`q}9
zFcQK@Pf+6Mi}rq&f}z2#Kh7ovQtd!1bk=>O)an?
z#I?DZML2VL!Ofv7HmGW?J2vD?8?nE?O^;HxipfRo2R
z>`nt0a-T?CnpQ7a`N*T?N7V_Z(vgUQaDvrttG3V7X0kT~8RoF31To#KQ~fxh!YH9D
z`HUJ6n@I20r8b9L*?e+BV3A=^7Syxgz2VrshS2U~qd=^sc0(msVw|VBguxXqycgNj!{)d!U_)`0K{cf8Droj}qP*tk;mC_+}qDZ5QYyWHxl}
zi7Fod{ASz>zVhXX7^M=gK-|I64%$*zK$f&b`ioxO3(VGB2JRo`Tw$~qqQWv8QYk#~3
z?Tr=_OTUSye019U^0zy(kh{;6;AiLEOMX4({qx5yKqS;YprJR)S-saNvK38CyMdi5
z5s4kIF1>+1H|ZNeeh~pnVJrZPp3Mh9KRI#V=$98hyy{DVAE7V4?|68a+}ETe{(dwb
zWpObVV+dB3zTY0Y(i3HU%i?9p`;+76*1Fn~9K^WGQ7m?*46)-}W9CTDu1h%{2UvDF
tahhW!sfZKjw|wyWZz&f)e26xhc7!tR_pa;Me)L4wWi;SV`FLr7e*-oTCOQBB
literal 4801
zcmcgPYgm)V(i<)kZx}90zz`D!Nf0lAfQHf*kc%P_Nb(XxeB}}&UK+e4Z>ptKlz@I5
zpa=;d4JZN%2x<}VR)Kl}m4adjX^4oeRRnvqUs16w*0XPDdwP1l=RD8(^X)U4%skgT=I|RYdNXMAF_k_@6aL>QzX(|3_d@UNfUc7TjsaS$A^W|7)gn8=|7A{5rj*?jBro+4fakjI(gq7?p>5I#D
zS2+eVs^ziblg#GQxLX&lYvnzfBpx&LFfSU)NqEdD&U}0E7CMx(sgOgeq5A8%t(+FE
zyg|cT%d8^v4@NvG;YH$9cEl5{{0`@_mY)+r^wq@iZ?ZDg;x$ag+F+YnRS$2?=ZgFY
z8+S#t|2B@sp3f|k#0GD@P)*_AYB*jZ&)Ih;AHnTx4Zkg_Tm*%qp-dJEtU
zfYk#=-nWc``J4g?XO39}?ga^e_8pF^4>@-AQn+`$y6*k5*6WGYgwhIX(?i4a4`hPEzLXU(jTDpudS^zk@qFtHuXX6H7d@whUK|
zm#03eNuKf1w9g^+{4%~cK6lb{A^>z1iMNWL=?GC4Iq3%d0A)YXv$pD3wr5=pj=U;!
zyl*iIA@Zus^B=9b+7mpDS#>vJdP9>yynV5rsv-pwp%OD{9jBV(mkz+P4zeUC$jn*A
ztX3ywGmn>8n8OK~_%ZQXUC0iX2XsQ<2ZSp^a8QS=ZVKVP2#H~bB2A%#eOw5ro@;7G
z#4S?PfT9K|+7AirpKxx{b?8ZAe$W(WXbAL1&C6zWkmWs`-`%9a1p{|FhVP`@Jmhw>
z(X0DMuiN&%d>>!F+*c?M6=Gb20x{s2E5r#@h~XFqHjZ_FTG7eu;wk{1tjK%#JGc=l
z=qCYi#Q{QMl8%Cfw&0X7)8gJrBz!>kBdr=L;PQW
zi#fsb0f^p7>4b0ydPNDJj4nJ279e^C^fbJ{>t+GFtC7te3yD#1^=wpU_2&(M)A2pv
z>evuZ65%?$`yaups}TnnSa*2pKzp35xqra(5v^*#rNXh&WzjWCmCHNdsm~60Kh_ow
zcqZi}mU>sJce%iz*?|z~c?YeNB)`G&s4aBl4A&?GE=1SrJYI5bQ)$vy3{45IJ~tze
z7rwYsz154U?BnHBx4>+%punG(3Yu>PVgOLFRxzs_lX5sG$RRn*PO>74HN{n)7c{I@
z@jQo16wwja$nrc+jW&bl?V-ttj_@c0ARXAi-}H(*`LhXuT96)85D@hvJ4Vfpat!4w
z&=@vi_%T5DB9f21+bcl$h}0-Rge?KL+3)fN$Za;F7a&Go1W|?}dZ`Y7W1=FGmdhsHi_pSd4DFW<6$eBi
zxaQkzn5d{J7B%$y>eMhxWg<8d3nwDNA`Ehk3RL8WB1MQ%j|r6+><&R;1K03UCO(%N
zUnCn`jv8JeqE~5%QWoEjJuJbD=iWtLrtyn1hZJc1xwJv&O{O_ny;xejMi#$LY8=N<
z&cMYKO6AjOZJw8|oW9t&8$$uf
z10)=Bi&1-ZIl6b*!)!(oHrJqGce8!FeGu+gq@Il+eq2PenCrvs)(QAyY#kekiRJ3m
zh>k6T8!Lv~7F5`e88lK8n=AA~_(f1&Duf%Zk&26ORk!)v?lG7wh{z9m1-nSM1J~dX
ziXdEJGosf>yT&3B2VcXB5I($Dnh?D?p-i}D#Gsc7o6#W+3_t90^-VBGq$UkA*enwp
z+;OX*=CJ_2FQUV^2nJON^bVmyJ-b(dz^-0_pkpw&F$g;B$>FG8BT7
z*{VJ%f}v;&ItV5EQR7P)f??u*=}-|mI9nM%o(6-1LYs@EVy8_echkiN2kvB;@Ux>q
zO;EK{m`*L#Bbb4W7>i}1b5dh}8g3tg8vRgxi&WHtiHg$(H7KgYVA3Kj_&uAbl!VaHh~z
z0`Fm(Dw;P;QSo@AT6p*)D%1kr*2QWbFQNfH_tEBD$vA%PTacMmZv}V+Fe6VQDo-x0
zt9zQ~wx^r{|9@^>AS(CBt{c7B(f~(FkB{DJT>1eVIX-gnRQ=Oq@V2hIc*^T(DF2}!YzrOG7Y~;
zuT2HuU~~ktx-SMIH4mZ!9GNLI68vlTpN#*T8fE-x?!SxFR{i_fpI7@U_YbQk84>?t
z+FynLJ4^q+RcZdSc^05*J_S@!BN>*zrxTEwW2s0w&%7FU18Ay!wZj|=
z9Tu*kt6iZ=*et=v08ktQLqg=U=Qxp_UFK3;spi5f!5Yj1pwotA*SkLRx^-Aq$CU5`
z@ErcuNF-QB!v-r#Kq8sH&8(_?%tHYGHp6Sz`Sh%asoo5AO?|nxp*(VA*t8>*OpBhV
zwivT&T3UQgvGV*v8?em7O1d5cIwGa4|3Q@0zajhK>%G1@(YIi|EUIJ{AiNj`AbItp
z54OEJm>9GC6Y_cwPG!(SNnFawk${3JE0Y`s_MYys{4BouNC7oKUZ305U$o(Q`RA!&
z_J`#o@0zw*Z?f*#cIrFn9QM*^!wi+S;@moPN1F>*wx~
zRg$->N`|Mt;R
zL1XMVpH=y{81|wgp6e0{*`Er--`HE6X;~n&dDy*#ixoaaogLFJCvIvTkMr4>U0ATa=t23v;
zokHu4Ng-d(pTASr8?jDSP&^yM}u8{I1B(J*|)5e%D#I>Fh`Hc?0*B
z?WNMKFYnGcJlowV33Gg0;hM5x`=SN(3wHL7J66xKxf)S@CeHSQGe-h8W*)Su`1zwt
zdr}=h`pdf5jucUt=Z&xCf+vS=`IfSd)=k@e**(;LMi9r;C;&%y+9WW5>uxFyL@xxh
z(tTD~QtzL77G5}ON?iXB?HwVck7h3|*vu>BWvJR|=aas)%Y#P*5RTp+Olw_}_539J
zhY_8rH)-#^gi9^%*+XLm<*&U8e>w5}g$2#WN|Y~->|I{b>vm^{)6ReoljpY$%{zR)
z?o(@jVsVW{Ni%)F1*W!VGy-bbCm(0HMSZa4BU{_`2dt^eJc6yQ&%CTK628;vY5a*36FIUCH~Ej+KHV@cdGwCp
z>KtgFvE*56#gXq%*mgd}y4EVc8_tch`C*^Kv5`8k^@UP-3wtmx;q(z|Jwdy@Qa_bV
z3u@mF(lf0B?Z9U6NkD7Y@=IDWX7t!+ihL2~^tqp5QNcC8u+8U_+OLwrNmhZdZurGz
z?cXV1J{!CHaHQ*!Wc2R+sOIsvm)y;ZEEhUd1ujw
z6B_!GXKu2IFtoUq`g-K(l7>}r#hAv>GW&Vx+UByzTbJG|3aL9}NxJ;2+WoVs%@yTI
zL8~fvdJ=ENS#>PTwY4?6(NCA8v|AlzHWrI^3R`
zF26#Rd%L!;i$1n=zn$&m)k96IUC0_Od?~wGc;RB3f7|o9183j7dG&V7+(whcy=3B{
z=kq<5J#)9$-ZGg?pMebHp7P|Bp}qEJ?(Z1`puBH&gQ@eArO)cMolkbBrlvkzeEqZW
nF9;w%e*5+>F7IhCvq&HQJC}O;^*e+wV*P+CcvcfcV1R!BH#zs*
diff --git a/parts/updateLog.lua b/parts/updateLog.lua
index 3f1f5758..1b358f1f 100644
--- a/parts/updateLog.lua
+++ b/parts/updateLog.lua
@@ -35,6 +35,7 @@ return SPLITSTR([=[
修改pc和hpc对b2b点数的影响
调整master-ph命数奖励
对战背景改为主题默认背景
+ 修改硬降音效
词典修改部分词条,调整词条顺序(意见来自群友 库德里尔)
移除词典中两个不必要的个人词条
代码:
From cb78009e64f648d3feeeffa8e3df15fb751738da Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Mon, 19 Apr 2021 10:48:18 +0800
Subject: [PATCH 43/48] =?UTF-8?q?=E8=AF=8D=E5=85=B8=E6=94=AF=E6=8C=81?=
=?UTF-8?q?=E5=B7=A6=E5=8F=B3=E9=94=AE=E7=BF=BB=E9=A1=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/scenes/dict.lua | 6 +++---
parts/updateLog.lua | 1 +
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/parts/scenes/dict.lua b/parts/scenes/dict.lua
index 5f394ad6..e9f36068 100644
--- a/parts/scenes/dict.lua
+++ b/parts/scenes/dict.lua
@@ -3,7 +3,7 @@ local gc=love.graphics
local inputBox=WIDGET.newInputBox{name="input",x=20,y=110,w=726,h=60,font=40}
local int,abs=math.floor,math.abs
local min,sin=math.min,math.sin
-local ins,rem=table.insert,table.remove
+local ins=table.insert
local find=string.find
local scene={}
@@ -78,9 +78,9 @@ function scene.keyDown(key)
scrollPos=selected-15
end
end
- elseif key=="pageup"then
+ elseif key=="left"or key=="pageup"then
for _=1,12 do scene.keyDown("up")end
- elseif key=="pagedown"then
+ elseif key=="right"or key=="pagedown"then
for _=1,12 do scene.keyDown("down")end
elseif key=="link"then
love.system.openURL(url)
diff --git a/parts/updateLog.lua b/parts/updateLog.lua
index 1b358f1f..19b62bce 100644
--- a/parts/updateLog.lua
+++ b/parts/updateLog.lua
@@ -38,6 +38,7 @@ return SPLITSTR([=[
修改硬降音效
词典修改部分词条,调整词条顺序(意见来自群友 库德里尔)
移除词典中两个不必要的个人词条
+ 词典支持左右键翻页
代码:
file模块升级
新增users模块用来管理网络用户缓存信息
From f389fa4eb2911b810dd5b022e670a64e807a0f99 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Mon, 19 Apr 2021 10:49:44 +0800
Subject: [PATCH 44/48] =?UTF-8?q?"=E5=91=BD=E4=BB=A4=E8=A1=8C"=E6=94=B9?=
=?UTF-8?q?=E5=90=8D=E6=8E=A7=E5=88=B6=E5=8F=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/dict_en.lua | 2 +-
parts/language/dict_zh.lua | 2 +-
parts/language/lang_en.lua | 2 +-
parts/language/lang_fr.lua | 2 +-
parts/language/lang_pt.lua | 2 +-
parts/language/lang_sp.lua | 2 +-
parts/language/lang_yygq.lua | 2 +-
parts/language/lang_zh.lua | 4 ++--
parts/scenes/app_cmd.lua | 2 +-
parts/updateLog.lua | 1 +
10 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/parts/language/dict_en.lua b/parts/language/dict_en.lua
index 868603cb..c720acc1 100644
--- a/parts/language/dict_en.lua
+++ b/parts/language/dict_en.lua
@@ -39,7 +39,7 @@ return{
{"Applets",
"applets",
"help",
- "[Entrance of applets has been moved to command line]",
+ "[Entrance of applets has been moved to console]",
},
--Games
diff --git a/parts/language/dict_zh.lua b/parts/language/dict_zh.lua
index 4d000f2e..41d834c0 100644
--- a/parts/language/dict_zh.lua
+++ b/parts/language/dict_zh.lua
@@ -34,7 +34,7 @@ return{
{"小程序",
"小程序 applets",
"help",
- "[小程序入口已移动至命令行]",
+ "[小程序入口已移动至控制台]",
},
--游戏(题库)
diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua
index 37b11337..aa93ac1d 100644
--- a/parts/language/lang_en.lua
+++ b/parts/language/lang_en.lua
@@ -668,7 +668,7 @@ return{
resetData="Reset Data",
},
error={
- cmd="CMD",
+ cmd="Console",
quit="Quit",
},
},
diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua
index 5948d250..5b728543 100644
--- a/parts/language/lang_fr.lua
+++ b/parts/language/lang_fr.lua
@@ -582,7 +582,7 @@ return{
resetData="Réinitialiser les données",
},
error={
- cmd="CMD",
+ cmd="Console",
quit="Quit",
},
},
diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua
index 7858b18f..0a7994b4 100644
--- a/parts/language/lang_pt.lua
+++ b/parts/language/lang_pt.lua
@@ -666,7 +666,7 @@ return{
resetData="Reset data",
},
error={
- cmd="CMD",
+ cmd="Console",
quit="Quit",
},
},
diff --git a/parts/language/lang_sp.lua b/parts/language/lang_sp.lua
index 46931b6f..77acdc5c 100644
--- a/parts/language/lang_sp.lua
+++ b/parts/language/lang_sp.lua
@@ -581,7 +581,7 @@ return{
resetData="Reiniciar datos",
},
error={
- cmd="CMD",
+ cmd="Console",
quit="Salir",
},
},
diff --git a/parts/language/lang_yygq.lua b/parts/language/lang_yygq.lua
index 34aed1be..14d3dfac 100644
--- a/parts/language/lang_yygq.lua
+++ b/parts/language/lang_yygq.lua
@@ -183,7 +183,7 @@ return{
tapFX="动画",
},
error={
- cmd="CMD",
+ cmd="Console",
quit="Quit",
},
},
diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua
index ffc9104e..a3e0f2cb 100644
--- a/parts/language/lang_zh.lua
+++ b/parts/language/lang_zh.lua
@@ -669,7 +669,7 @@ return{
resetData="重置统计",
},
error={
- cmd="命令行",
+ cmd="控制台",
quit="退出",
},
},
@@ -999,7 +999,7 @@ return{
"Tech也有节日主题了哦",
"Techmino = Technique + tetromino",
"Techmino n.铁壳米诺(游戏名)",
- "Techmino shell了解一下",
+ "Techmino console了解一下",
"Techmino安卓下载",
"Techmino好玩!",
"Techmino 好玩!",
diff --git a/parts/scenes/app_cmd.lua b/parts/scenes/app_cmd.lua
index 2f26efd3..cc70af9e 100644
--- a/parts/scenes/app_cmd.lua
+++ b/parts/scenes/app_cmd.lua
@@ -6,7 +6,7 @@ local C=COLOR
local inputBox=WIDGET.newInputBox{name="input",x=40,y=650,w=1200,h=50}
local outputBox=WIDGET.newTextBox{name="output",x=40,y=30,w=1200,h=600,font=25,lineH=25,fix=true}
local function log(str)outputBox:push(str)end
-log{C.lGrape,"Techmino Shell"}
+log{C.lGrape,"Techmino Console"}
log{C.lBlue,"©2020 26F Studio some rights reserved"}
log{C.dRed,"DO NOT RUN ANY CODE YOU DON'T UNDERSTAND"}
diff --git a/parts/updateLog.lua b/parts/updateLog.lua
index 19b62bce..3b45d43b 100644
--- a/parts/updateLog.lua
+++ b/parts/updateLog.lua
@@ -39,6 +39,7 @@ return SPLITSTR([=[
词典修改部分词条,调整词条顺序(意见来自群友 库德里尔)
移除词典中两个不必要的个人词条
词典支持左右键翻页
+ "命令行"改名控制台
代码:
file模块升级
新增users模块用来管理网络用户缓存信息
From 129e9d54175b98f1ce08cc8c4ebb335cbfa95b0e Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Mon, 19 Apr 2021 13:30:15 +0800
Subject: [PATCH 45/48] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=B8=AD=E6=96=87?=
=?UTF-8?q?=E8=AF=8D=E5=85=B8=E4=B8=80=E4=B8=AA=E7=94=A8=E8=AF=8D=E5=87=8F?=
=?UTF-8?q?=E5=B0=91=E8=AF=AF=E8=A7=A3=E5=8F=AF=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/dict_zh.lua | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parts/language/dict_zh.lua b/parts/language/dict_zh.lua
index 41d834c0..65a96201 100644
--- a/parts/language/dict_zh.lua
+++ b/parts/language/dict_zh.lua
@@ -28,7 +28,7 @@ return{
{"灰机wiki",
"灰机wiki huiji wiki",
"help",
- "俄罗斯方块中文维基,由一群来自俄罗斯方块研究群及下属群的方块同好建立的关于俄罗斯方块的中文百科全书。\n当前大部分页面翻译和参考来自Harddrop wiki和Tetris Wiki",
+ "俄罗斯方块中文维基,由一群来自俄罗斯方块研究群及下属群的方块同好建立的关于俄罗斯方块的中文百科全书。\n目前其大部分页面翻译和参考来自Harddrop wiki和Tetris Wiki",
"https://tetris.huijiwiki.com",
},
{"小程序",
From 635be949f0a5fce220aeef36550164f581ff69ca Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Mon, 19 Apr 2021 13:35:09 +0800
Subject: [PATCH 46/48] =?UTF-8?q?=E6=95=B4=E7=90=86=E8=AF=8D=E5=85=B8?=
=?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=A7=A6=E5=B1=8F?=
=?UTF-8?q?=E5=8F=AF=E7=94=A8=E7=9A=84=E7=BF=BB=E9=A1=B5=E6=8C=89=E9=92=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/language/lang_en.lua | 4 +-
parts/language/lang_fr.lua | 2 -
parts/language/lang_pt.lua | 2 -
parts/language/lang_sp.lua | 2 -
parts/language/lang_symbol.lua | 2 -
parts/language/lang_zh.lua | 4 +-
parts/scenes/dict.lua | 69 ++++++++++++++++++----------------
parts/updateLog.lua | 2 +-
8 files changed, 41 insertions(+), 46 deletions(-)
diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua
index aa93ac1d..821eacb4 100644
--- a/parts/language/lang_en.lua
+++ b/parts/language/lang_en.lua
@@ -505,8 +505,8 @@ return{
dict={
title="TetroDictionary",
link="Open URL",
- up="↑",
- down="↓",
+ up="↑",down="↓",
+ pageup="↑↑",pagedown="↓↓",
},
stat={
path="Open Data Folder",
diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua
index 5b728543..11e5dcd3 100644
--- a/parts/language/lang_fr.lua
+++ b/parts/language/lang_fr.lua
@@ -461,8 +461,6 @@ return{
dict={
title="TetroDictionary",
link="Ouvrir URL",
- up="↑",
- down="↓",
},
stat={
path="Ouvrir dossier des données",
diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua
index 0a7994b4..55f7890e 100644
--- a/parts/language/lang_pt.lua
+++ b/parts/language/lang_pt.lua
@@ -505,8 +505,6 @@ return{
dict={
title="TetroDictionary",
link="Abrir URL",
- up="↑",
- down="↓",
},
stat={
path="Abrir Pasta De Data",
diff --git a/parts/language/lang_sp.lua b/parts/language/lang_sp.lua
index 77acdc5c..9914cec9 100644
--- a/parts/language/lang_sp.lua
+++ b/parts/language/lang_sp.lua
@@ -466,8 +466,6 @@ return{
dict={
title="TetroDictionary",
link="Abrir URL",
- up="↑",
- down="↓",
},
stat={
path="Abrir carpeta del juego",
diff --git a/parts/language/lang_symbol.lua b/parts/language/lang_symbol.lua
index f95189ad..5f3e33ba 100644
--- a/parts/language/lang_symbol.lua
+++ b/parts/language/lang_symbol.lua
@@ -346,8 +346,6 @@ return{
dict={
title="TetroDictionary",
link="~~e>>",
- up="↑",
- down="↓",
},
stat={
path="%$%",
diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua
index a3e0f2cb..3a4df2d5 100644
--- a/parts/language/lang_zh.lua
+++ b/parts/language/lang_zh.lua
@@ -582,8 +582,8 @@ return{
dict={
title="小Z方块词典",
link="打开链接",
- up="↑",
- down="↓",
+ up="↑",down="↓",
+ pageup="↑↑",pagedown="↓↓",
},
stat={
path="打开存储目录",
diff --git a/parts/scenes/dict.lua b/parts/scenes/dict.lua
index e9f36068..b0141b37 100644
--- a/parts/scenes/dict.lua
+++ b/parts/scenes/dict.lua
@@ -19,22 +19,17 @@ local scrollPos--Scroll down length
local lastSearch--Last searched string
-function scene.sceneInit()
- dict=require("parts.language.dict_"..({"zh","zh","zh","en","en","en","en","en"})[SETTING.lang])
-
- inputBox:clear()
- result={}
- url=dict[1][5]
-
- waiting=0
- selected=1
- scrollPos=0
-
- lastSearch=false
- TASK.new(function()YIELD()WIDGET.sel=inputBox end)
- BG.set("rainbow")
-end
-
+local typeColor={
+ help=COLOR.Y,
+ other=COLOR.lOrange,
+ game=COLOR.lC,
+ term=COLOR.lR,
+ setup=COLOR.lY,
+ pattern=COLOR.lGrass,
+ english=COLOR.B,
+ name=COLOR.lPurple,
+}
+local function getList()return result[1]and result or dict end
local function clearResult()
TABLE.clear(result)
selected,scrollPos=1,0
@@ -56,10 +51,26 @@ local function search()
if #result>0 then
SFX.play("reach")
end
- url=(result[1]and result or dict)[selected][5]
+ url=getList()[selected][5]
lastSearch=input
end
+function scene.sceneInit()
+ dict=require("parts.language.dict_"..({"zh","zh","zh","en","en","en","en","en"})[SETTING.lang])
+
+ inputBox:clear()
+ result={}
+ url=dict[1][5]
+
+ waiting=0
+ selected=1
+ scrollPos=0
+
+ lastSearch=false
+ TASK.new(function()YIELD()WIDGET.sel=inputBox end)
+ BG.set("rainbow")
+end
+
function scene.wheelMoved(_,y)
WHEELMOV(y)
end
@@ -72,7 +83,7 @@ function scene.keyDown(key)
end
end
elseif key=="down"then
- if selected and selected<#(result[1]and result or dict)then
+ if selected and selected<#getList()then
selected=selected+1
if selected>scrollPos+15 then
scrollPos=selected-15
@@ -99,7 +110,7 @@ function scene.keyDown(key)
SCN.back()
end
end
- url=(result[1]and result or dict)[selected][5]
+ url=getList()[selected][5]
end
function scene.update(dt)
@@ -122,18 +133,8 @@ function scene.update(dt)
end
end
-local typeColor={
- help=COLOR.yellow,
- other=COLOR.lOrange,
- game=COLOR.lCyan,
- term=COLOR.lRed,
- setup=COLOR.lYellow,
- pattern=COLOR.lGrass,
- english=COLOR.blue,
- name=COLOR.lPurple,
-}
function scene.draw()
- local list=result[1]and result or dict
+ local list=getList()
gc.setColor(1,1,1)
local t=list[selected][4]
if #t>900 then
@@ -181,9 +182,11 @@ end
scene.widgetList={
WIDGET.newText{name="title", x=20, y=5,font=70,align="L"},
inputBox,
- WIDGET.newKey{name="link", x=1140, y=650,w=200,h=80,font=35,code=pressKey"link",hide=function()return not url end},
- WIDGET.newKey{name="up", x=1190, y=440,w=100,h=100,font=35,code=pressKey"up",hide=not MOBILE},
- WIDGET.newKey{name="down", x=1190, y=550,w=100,h=100,font=35,code=pressKey"down",hide=not MOBILE},
+ WIDGET.newKey{name="link", x=1150, y=655,w=200,h=80,font=35,code=pressKey"link",hide=function()return not url end},
+ WIDGET.newKey{name="up", x=1130, y=460,w=60,h=90,font=35,code=pressKey"up",hide=not MOBILE},
+ WIDGET.newKey{name="down", x=1130, y=560,w=60,h=90,font=35,code=pressKey"down",hide=not MOBILE},
+ WIDGET.newKey{name="pageup", x=1210, y=460,w=80,h=90,font=35,code=pressKey"pageup",hide=not MOBILE},
+ WIDGET.newKey{name="pagedown", x=1210, y=560,w=80,h=90,font=35,code=pressKey"pagedown",hide=not MOBILE},
WIDGET.newButton{name="back", x=1165, y=60,w=170,h=80,font=40,code=backScene},
}
diff --git a/parts/updateLog.lua b/parts/updateLog.lua
index 3b45d43b..620f1715 100644
--- a/parts/updateLog.lua
+++ b/parts/updateLog.lua
@@ -38,7 +38,7 @@ return SPLITSTR([=[
修改硬降音效
词典修改部分词条,调整词条顺序(意见来自群友 库德里尔)
移除词典中两个不必要的个人词条
- 词典支持左右键翻页
+ 词典支持左右键翻页,添加触屏可用的翻页按钮
"命令行"改名控制台
代码:
file模块升级
From f12e4128e6ff29911e5a2259867a587d79331154 Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Mon, 19 Apr 2021 15:13:00 +0800
Subject: [PATCH 47/48] =?UTF-8?q?=E5=86=8D=E5=8D=87=E7=BA=A7doGC=E6=A8=A1?=
=?UTF-8?q?=E5=9D=97=EF=BC=8C=E7=BB=8F=E5=85=B8=E6=A8=A1=E5=BC=8F=E5=9B=BE?=
=?UTF-8?q?=E6=A0=87=E4=BD=BF=E7=94=A8doGC=E7=94=9F=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Zframework/doGC.lua | 9 ++++++++-
media/image/modeicon/classic.png | Bin 183 -> 0 bytes
parts/scenes/load.lua | 21 ++++++++++++++-------
3 files changed, 22 insertions(+), 8 deletions(-)
delete mode 100644 media/image/modeicon/classic.png
diff --git a/Zframework/doGC.lua b/Zframework/doGC.lua
index c0e42bfe..48193c2e 100644
--- a/Zframework/doGC.lua
+++ b/Zframework/doGC.lua
@@ -1,16 +1,23 @@
local gc=love.graphics
local cmds={
+ reset="origin",
trans="translate",
scale="scale",
+ rotat="rotate",
+
setCL="setColor",
+ setCM="setColorMask",
setLW="setLineWidth",
+ setLS="setLineStyle",
+ setLJ="setLineJoin",
+
draw="draw",
dLine="line",
fRect=function(...)gc.rectangle("fill",...)end,
dRect=function(...)gc.rectangle("line",...)end,
fCirc=function(...)gc.circle("fill",...)end,
dCirc=function(...)gc.circle("line",...)end,
- fPoly=function(...)gc.polygon("line",...)end,
+ fPoly=function(...)gc.polygon("fill",...)end,
dPoly=function(...)gc.polygon("line",...)end,
}
return function(L)
diff --git a/media/image/modeicon/classic.png b/media/image/modeicon/classic.png
deleted file mode 100644
index e8c92191b8bee4f12b382d4068ba7c82bb05d4ef..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 183
zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg?3oArNM~bhqvgP%zWe
z#W5t~-rH-Ad<_abEDi?${-6HJEX2Gl>hYOSzMLCeYZ)2-gv-}gTe~DWM4f(YZa%
diff --git a/parts/scenes/load.lua b/parts/scenes/load.lua
index 8803ede0..5b9372e2 100644
--- a/parts/scenes/load.lua
+++ b/parts/scenes/load.lua
@@ -80,13 +80,6 @@ local loadingThread=coroutine.wrap(function()
{"fPoly",10,4,24,10,10,16.5},
{"fRect",4,24,10,3},
}YIELD()
- modeIcons.tsd=DOGC{64,64,
- {"fRect",7,7,16,16},
- {"fRect",7,41,16,16},
- {"fRect",41,41,16,16},
- {"trans",.5,.5},
- {"dPoly",7,24,56,24,56,39,39,39,39,56,24,56,24,39,7,39},
- }YIELD()
modeIcons.infinite=DOGC{64,64,
{"setLW",4},
{"dCirc",32,32,28},
@@ -98,6 +91,20 @@ local loadingThread=coroutine.wrap(function()
{"fRect",52,30,4,4},
{"fRect",30,52,4,4},
}YIELD()
+ modeIcons.classic=DOGC{64,64,
+ {"setLW",6},
+ {"dRect",10,24,12,12},
+ {"dRect",26,24,12,12},
+ {"dRect",42,24,12,12},
+ {"dRect",26,40,12,12},
+ }YIELD()
+ modeIcons.tsd=DOGC{64,64,
+ {"fRect",7,7,16,16},
+ {"fRect",7,41,16,16},
+ {"fRect",41,41,16,16},
+ {"trans",.5,.5},
+ {"fPoly",7,24,56,24,56,39,39,39,39,56,24,56,24,39,7,39},
+ }YIELD()
modeIcons.t49=DOGC{64,64,
{"setLW",2},
{"dRect",05,05,10,20},{"dRect",49,05,10,20},
From 65da7fdfbdbb7d2605d826217d967095d610ba4d Mon Sep 17 00:00:00 2001
From: MrZ626 <1046101471@qq.com>
Date: Mon, 19 Apr 2021 15:23:02 +0800
Subject: [PATCH 48/48] =?UTF-8?q?=E8=B0=83=E4=BD=8E=E7=AB=9E=E9=80=9F?=
=?UTF-8?q?=E6=A8=A1=E5=BC=8F=E9=83=A8=E5=88=86=E8=AF=84=E4=BB=B7=E8=A6=81?=
=?UTF-8?q?=E6=B1=82=EF=BC=8C=E7=A7=91=E7=A0=94=E6=A8=A1=E5=BC=8F=E9=80=9A?=
=?UTF-8?q?=E5=85=B3=E6=9D=A1=E4=BB=B6=E6=94=B9=E4=B8=BA100=E6=94=BB?=
=?UTF-8?q?=E5=87=BB=EF=BC=88=E5=8E=9F200=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
parts/modes/sprint_1000l.lua | 8 ++++----
parts/modes/sprint_100l.lua | 6 +++---
parts/modes/sprint_400l.lua | 6 +++---
parts/modes/sprint_40l.lua | 2 +-
parts/modes/tech_finesse.lua | 2 +-
parts/modes/tech_finesse_f.lua | 2 +-
parts/modes/tech_h.lua | 2 +-
parts/modes/tech_h_plus.lua | 2 +-
parts/modes/tech_l.lua | 2 +-
parts/modes/tech_l_plus.lua | 2 +-
parts/modes/tech_n.lua | 2 +-
parts/modes/tech_n_plus.lua | 2 +-
parts/updateLog.lua | 1 +
13 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/parts/modes/sprint_1000l.lua b/parts/modes/sprint_1000l.lua
index 12620407..da262acd 100644
--- a/parts/modes/sprint_1000l.lua
+++ b/parts/modes/sprint_1000l.lua
@@ -22,10 +22,10 @@ return{
local T=P.stat.time
return
T<=750 and 5 or
- T<=950 and 4 or
- T<=1100 and 3 or
- T<=1260 and 2 or
- T<=1600 and 1 or
+ T<=900 and 4 or
+ T<=1260 and 3 or
+ T<=1620 and 2 or
+ T<=2000 and 1 or
0
end,
}
\ No newline at end of file
diff --git a/parts/modes/sprint_100l.lua b/parts/modes/sprint_100l.lua
index c5168975..a97b866e 100644
--- a/parts/modes/sprint_100l.lua
+++ b/parts/modes/sprint_100l.lua
@@ -23,9 +23,9 @@ return{
return
T<=70 and 5 or
T<=90 and 4 or
- T<=120 and 3 or
- T<=150 and 2 or
- T<=200 and 1 or
+ T<=126 and 3 or
+ T<=162 and 2 or
+ T<=226 and 1 or
0
end,
}
\ No newline at end of file
diff --git a/parts/modes/sprint_400l.lua b/parts/modes/sprint_400l.lua
index cdb88311..27eb89e1 100644
--- a/parts/modes/sprint_400l.lua
+++ b/parts/modes/sprint_400l.lua
@@ -23,9 +23,9 @@ return{
return
T<=300 and 5 or
T<=380 and 4 or
- T<=440 and 3 or
- T<=500 and 2 or
- T<=640 and 1 or
+ T<=500 and 3 or
+ T<=626 and 2 or
+ T<=800 and 1 or
0
end,
}
\ No newline at end of file
diff --git a/parts/modes/sprint_40l.lua b/parts/modes/sprint_40l.lua
index 6f1b8c3f..442e2a58 100644
--- a/parts/modes/sprint_40l.lua
+++ b/parts/modes/sprint_40l.lua
@@ -23,7 +23,7 @@ return{
local T=P.stat.time
return
T<=26 and 5 or
- T<=32.6 and 4 or
+ T<=36 and 4 or
T<=52.6 and 3 or
T<=92.9 and 2 or
T<=183 and 1 or
diff --git a/parts/modes/tech_finesse.lua b/parts/modes/tech_finesse.lua
index 684dcfc3..45940117 100644
--- a/parts/modes/tech_finesse.lua
+++ b/parts/modes/tech_finesse.lua
@@ -6,7 +6,7 @@ return{
arr=0,
drop=1e99,lock=60,
freshLimit=15,
- function(P)if P.stat.atk>=200 then P:win("finish")end end,
+ function(P)if P.stat.atk>=100 then P:win("finish")end end,
fineKill=true,
bg="flink",bgm="infinite",
},
diff --git a/parts/modes/tech_finesse_f.lua b/parts/modes/tech_finesse_f.lua
index 355d61f8..80f90bc2 100644
--- a/parts/modes/tech_finesse_f.lua
+++ b/parts/modes/tech_finesse_f.lua
@@ -7,7 +7,7 @@ local function tech_check_hard(P)
return
end
end
- if P.stat.atk>=200 then
+ if P.stat.atk>=100 then
P:win("finish")
end
end
diff --git a/parts/modes/tech_h.lua b/parts/modes/tech_h.lua
index ebee9481..aeb3e311 100644
--- a/parts/modes/tech_h.lua
+++ b/parts/modes/tech_h.lua
@@ -6,7 +6,7 @@ return{
drop=20,lock=60,
freshLimit=15,
b2bKill=true,
- function(P)if P.stat.atk>=200 then P:win("finish")end end,
+ function(P)if P.stat.atk>=100 then P:win("finish")end end,
bg="matrix",bgm="down",
},
load=function()
diff --git a/parts/modes/tech_h_plus.lua b/parts/modes/tech_h_plus.lua
index 41970f71..18e63acf 100644
--- a/parts/modes/tech_h_plus.lua
+++ b/parts/modes/tech_h_plus.lua
@@ -7,7 +7,7 @@ local function tech_check_hard(P)
return
end
end
- if P.stat.atk>=200 then
+ if P.stat.atk>=100 then
P:win("finish")
end
end
diff --git a/parts/modes/tech_l.lua b/parts/modes/tech_l.lua
index 702ffca3..24a6908a 100644
--- a/parts/modes/tech_l.lua
+++ b/parts/modes/tech_l.lua
@@ -6,7 +6,7 @@ return{
drop=0,lock=60,
freshLimit=15,
b2bKill=true,
- function(P)if P.stat.atk>=200 then P:win("finish")end end,
+ function(P)if P.stat.atk>=100 then P:win("finish")end end,
bg="matrix",bgm="warped",
},
load=function()
diff --git a/parts/modes/tech_l_plus.lua b/parts/modes/tech_l_plus.lua
index 4306437f..b304130e 100644
--- a/parts/modes/tech_l_plus.lua
+++ b/parts/modes/tech_l_plus.lua
@@ -7,7 +7,7 @@ local function tech_check_hard(P)
return
end
end
- if P.stat.atk>=200 then
+ if P.stat.atk>=100 then
P:win("finish")
end
end
diff --git a/parts/modes/tech_n.lua b/parts/modes/tech_n.lua
index 501b563c..d2808579 100644
--- a/parts/modes/tech_n.lua
+++ b/parts/modes/tech_n.lua
@@ -6,7 +6,7 @@ return{
infHold=true,
drop=1e99,lock=1e99,
b2bKill=true,
- function(P)if P.stat.atk>=200 then P:win("finish")end end,
+ function(P)if P.stat.atk>=100 then P:win("finish")end end,
bg="matrix",bgm="new era",
},
load=function()
diff --git a/parts/modes/tech_n_plus.lua b/parts/modes/tech_n_plus.lua
index e1a9b318..c1e1d4c8 100644
--- a/parts/modes/tech_n_plus.lua
+++ b/parts/modes/tech_n_plus.lua
@@ -7,7 +7,7 @@ local function tech_check_hard(P)
return
end
end
- if P.stat.atk>=200 then
+ if P.stat.atk>=100 then
P:win("finish")
end
end
diff --git a/parts/updateLog.lua b/parts/updateLog.lua
index 620f1715..c9b8b533 100644
--- a/parts/updateLog.lua
+++ b/parts/updateLog.lua
@@ -33,6 +33,7 @@ return SPLITSTR([=[
加强消四,增加b2b点数(100→150)
增强hpc攻击力(2→4)
修改pc和hpc对b2b点数的影响
+ 调低竞速模式部分评价要求,科研模式通关条件改为100攻击(原200)
调整master-ph命数奖励
对战背景改为主题默认背景
修改硬降音效