Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e196790e2c |
2
conf.lua
2
conf.lua
@@ -1,5 +1,5 @@
|
|||||||
math.randomseed(os.time())
|
math.randomseed(os.time())
|
||||||
gameVersion="Alpha V0.8.0"
|
gameVersion="Alpha V0.8.1"
|
||||||
function love.conf(t)
|
function love.conf(t)
|
||||||
t.identity="Techmino"--Save directory name
|
t.identity="Techmino"--Save directory name
|
||||||
t.version="11.1"
|
t.version="11.1"
|
||||||
|
|||||||
74
dataList.lua
74
dataList.lua
@@ -452,6 +452,9 @@ end
|
|||||||
Event_task={}
|
Event_task={}
|
||||||
function Event_task.finish(P)
|
function Event_task.finish(P)
|
||||||
P.endCounter=P.endCounter+1
|
P.endCounter=P.endCounter+1
|
||||||
|
if scene.cur~="play"then
|
||||||
|
return true
|
||||||
|
end
|
||||||
if P.endCounter>120 then
|
if P.endCounter>120 then
|
||||||
pauseGame()
|
pauseGame()
|
||||||
return true
|
return true
|
||||||
@@ -472,7 +475,7 @@ function Event_task.lose(P)
|
|||||||
removeRow(P.field)
|
removeRow(P.field)
|
||||||
removeRow(P.visTime)
|
removeRow(P.visTime)
|
||||||
end
|
end
|
||||||
if #players==1 then
|
if #players==1 and scene=="play"then
|
||||||
pauseGame()
|
pauseGame()
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
@@ -796,14 +799,14 @@ modes.sprint={
|
|||||||
load=function()
|
load=function()
|
||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(55)
|
setFont(55)
|
||||||
local r=max(P.gameEnv.target-P.stat.row,0)
|
local r=max(P.gameEnv.target-P.stat.row,0)
|
||||||
mStr(r,-82,265)
|
mStr(r,-82,265)
|
||||||
if r<21 and r>0 then
|
if r<21 and r>0 then
|
||||||
gc.setLineWidth(4)
|
gc.setLineWidth(4)
|
||||||
gc.setColor(1,r>10 and 0 or rnd(),.5)
|
gc.setColor(1,r>10 and 0 or rnd(),.5)
|
||||||
gc.line(0,600-30*r,300,600-30*r)
|
gc.line(dx,600-30*r+dy,300+dx,600-30*r+dy)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
@@ -829,7 +832,7 @@ modes.marathon={
|
|||||||
load=function()
|
load=function()
|
||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(45)
|
setFont(45)
|
||||||
mStr(P.stat.row,-82,320)
|
mStr(P.stat.row,-82,320)
|
||||||
mStr(P.gameEnv.target,-82,370)
|
mStr(P.gameEnv.target,-82,370)
|
||||||
@@ -870,7 +873,7 @@ modes.master={
|
|||||||
load=function()
|
load=function()
|
||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(45)
|
setFont(45)
|
||||||
mStr(P.modeData.point,-82,320)
|
mStr(P.modeData.point,-82,320)
|
||||||
mStr((P.modeData.event+1)*100,-82,370)
|
mStr((P.modeData.event+1)*100,-82,370)
|
||||||
@@ -894,7 +897,7 @@ modes.classic={
|
|||||||
load=function()
|
load=function()
|
||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(75)
|
setFont(75)
|
||||||
local r=P.gameEnv.target*.1
|
local r=P.gameEnv.target*.1
|
||||||
mStr(r<11 and 18 or r<22 and r+8 or r==22 and"00"or r==23 and"0a"or format("%x",r*10-220),-82,210)
|
mStr(r<11 and 18 or r<22 and r+8 or r==22 and"00"or r==23 and"0a"or format("%x",r*10-220),-82,210)
|
||||||
@@ -918,7 +921,7 @@ modes.zen={
|
|||||||
load=function()
|
load=function()
|
||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(70)
|
setFont(70)
|
||||||
mStr(max(200-P.stat.row,0),-82,280)
|
mStr(max(200-P.stat.row,0),-82,280)
|
||||||
end,
|
end,
|
||||||
@@ -947,7 +950,7 @@ modes.infinite={
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(45)
|
setFont(45)
|
||||||
mStr(P.stat.atk,-82,310)
|
mStr(P.stat.atk,-82,310)
|
||||||
mStr(format("%.2f",P.stat.atk/P.stat.row),-82,420)
|
mStr(format("%.2f",P.stat.atk/P.stat.row),-82,420)
|
||||||
@@ -988,7 +991,7 @@ modes.solo={
|
|||||||
newPlayer(2,965,360,.5,AITemplate("CC",10,4,true,80000))
|
newPlayer(2,965,360,.5,AITemplate("CC",10,4,true,80000))
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
|
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
@@ -1017,7 +1020,7 @@ modes.round={
|
|||||||
end
|
end
|
||||||
garbageSpeed=1e4
|
garbageSpeed=1e4
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
|
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
@@ -1042,7 +1045,7 @@ modes.tsd={
|
|||||||
load=function()
|
load=function()
|
||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(75)
|
setFont(75)
|
||||||
mStr(P.modeData.event,-82,330)
|
mStr(P.modeData.event,-82,330)
|
||||||
mDraw(drawableText.tsd,-82,407)
|
mDraw(drawableText.tsd,-82,407)
|
||||||
@@ -1093,6 +1096,7 @@ modes.blind={
|
|||||||
_20G=true,
|
_20G=true,
|
||||||
drop=0,lock=15,
|
drop=0,lock=15,
|
||||||
wait=10,fall=15,
|
wait=10,fall=15,
|
||||||
|
next=3,
|
||||||
visible="fast",
|
visible="fast",
|
||||||
freshLimit=15,
|
freshLimit=15,
|
||||||
dropPiece="GM_score",
|
dropPiece="GM_score",
|
||||||
@@ -1106,7 +1110,7 @@ modes.blind={
|
|||||||
players[1].modeData.event="M7"
|
players[1].modeData.event="M7"
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
mDraw(drawableText.line,-82,300)
|
mDraw(drawableText.line,-82,300)
|
||||||
mDraw(drawableText.techrash,-82,420)
|
mDraw(drawableText.techrash,-82,420)
|
||||||
if curMode.lv==6 then
|
if curMode.lv==6 then
|
||||||
@@ -1140,7 +1144,7 @@ modes.dig={
|
|||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
pushSpeed=1
|
pushSpeed=1
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(65)
|
setFont(65)
|
||||||
mStr(P.modeData.event,-82,310)
|
mStr(P.modeData.event,-82,310)
|
||||||
mDraw(drawableText.wave,-82,375)
|
mDraw(drawableText.wave,-82,375)
|
||||||
@@ -1189,7 +1193,7 @@ modes.survivor={
|
|||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
pushSpeed=curMode.lv>2 and 2 or 1
|
pushSpeed=curMode.lv>2 and 2 or 1
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(65)
|
setFont(65)
|
||||||
mStr(P.modeData.event,-82,310)
|
mStr(P.modeData.event,-82,310)
|
||||||
mDraw(drawableText.wave,-82,375)
|
mDraw(drawableText.wave,-82,375)
|
||||||
@@ -1221,7 +1225,7 @@ modes.defender={
|
|||||||
pushSpeed=2
|
pushSpeed=2
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(55)
|
setFont(55)
|
||||||
mStr(P.modeData.event,-82,200)
|
mStr(P.modeData.event,-82,200)
|
||||||
mStr(P.modeData.point,-82,320)
|
mStr(P.modeData.point,-82,320)
|
||||||
@@ -1253,7 +1257,7 @@ modes.attacker={
|
|||||||
pushSpeed=2
|
pushSpeed=2
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(55)
|
setFont(55)
|
||||||
mStr(P.modeData.event,-82,200)
|
mStr(P.modeData.event,-82,200)
|
||||||
mStr(
|
mStr(
|
||||||
@@ -1322,7 +1326,7 @@ modes.tech={
|
|||||||
load=function()
|
load=function()
|
||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(45)
|
setFont(45)
|
||||||
mStr(P.stat.atk,-82,310)
|
mStr(P.stat.atk,-82,310)
|
||||||
mStr(format("%.2f",P.stat.atk/P.stat.row),-82,420)
|
mStr(format("%.2f",P.stat.atk/P.stat.row),-82,420)
|
||||||
@@ -1367,7 +1371,7 @@ modes.c4wtrain={
|
|||||||
elseif r==6 then F[1][7],F[1][6],F[1][5]=10,10,10
|
elseif r==6 then F[1][7],F[1][6],F[1][5]=10,10,10
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(45)
|
setFont(45)
|
||||||
mStr(max(100-P.stat.row,0),-82,220)
|
mStr(max(100-P.stat.row,0),-82,220)
|
||||||
mStr(P.combo,-82,310)
|
mStr(P.combo,-82,310)
|
||||||
@@ -1405,7 +1409,7 @@ modes.pctrain={
|
|||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
Event.newPC(players[1])
|
Event.newPC(players[1])
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(75)
|
setFont(75)
|
||||||
mStr(P.stat.pc,-82,330)
|
mStr(P.stat.pc,-82,330)
|
||||||
mDraw(drawableText.pc,-82,412)
|
mDraw(drawableText.pc,-82,412)
|
||||||
@@ -1441,10 +1445,10 @@ modes.pcchallenge={
|
|||||||
load=function()
|
load=function()
|
||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(45)
|
setFont(45)
|
||||||
mStr(max(100-P.stat.row,0),-82,250)
|
mStr(max(100-P.stat.row,0),-82,250)
|
||||||
|
|
||||||
setFont(75)
|
setFont(75)
|
||||||
mStr(P.stat.pc,-82,350)
|
mStr(P.stat.pc,-82,350)
|
||||||
mDraw(drawableText.pc,-82,432)
|
mDraw(drawableText.pc,-82,432)
|
||||||
@@ -1504,7 +1508,7 @@ modes.techmino49={
|
|||||||
n=n+1
|
n=n+1
|
||||||
end end
|
end end
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(35)
|
setFont(35)
|
||||||
mStr(#players.alive.."/49",-82,175)
|
mStr(#players.alive.."/49",-82,175)
|
||||||
mStr(P.ko,-70,215)
|
mStr(P.ko,-70,215)
|
||||||
@@ -1568,7 +1572,7 @@ modes.techmino99={
|
|||||||
n=n+1
|
n=n+1
|
||||||
end end
|
end end
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(35)
|
setFont(35)
|
||||||
mStr(#players.alive.."/99",-82,175)
|
mStr(#players.alive.."/99",-82,175)
|
||||||
mStr(P.ko,-70,215)
|
mStr(P.ko,-70,215)
|
||||||
@@ -1607,7 +1611,7 @@ modes.drought={
|
|||||||
load=function()
|
load=function()
|
||||||
newPlayer(1,340,15)
|
newPlayer(1,340,15)
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(70)
|
setFont(70)
|
||||||
mStr(max(100-P.stat.row,0),-82,280)
|
mStr(max(100-P.stat.row,0),-82,280)
|
||||||
end,
|
end,
|
||||||
@@ -1636,7 +1640,7 @@ modes.hotseat={
|
|||||||
newPlayer(4,955,160,.5)
|
newPlayer(4,955,160,.5)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
|
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
@@ -1694,7 +1698,7 @@ modes.custom={
|
|||||||
modeEnv.bg=customRange.bg[customSel[12]]
|
modeEnv.bg=customRange.bg[customSel[12]]
|
||||||
modeEnv.bgm=customRange.bgm[customSel[13]]
|
modeEnv.bgm=customRange.bgm[customSel[13]]
|
||||||
end,
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P,dx,dy)
|
||||||
setFont(55)
|
setFont(55)
|
||||||
if P.gameEnv.puzzle or P.gameEnv.target>1e10 then
|
if P.gameEnv.puzzle or P.gameEnv.target>1e10 then
|
||||||
mStr(P.stat.row,-82,225)
|
mStr(P.stat.row,-82,225)
|
||||||
@@ -1703,21 +1707,11 @@ modes.custom={
|
|||||||
mStr(max(P.gameEnv.target-P.stat.row,0),-82,240)
|
mStr(max(P.gameEnv.target-P.stat.row,0),-82,240)
|
||||||
end
|
end
|
||||||
if P.gameEnv.puzzle and P.modeData.event==0 then
|
if P.gameEnv.puzzle and P.modeData.event==0 then
|
||||||
gc.setLineWidth(3)
|
local m=puzzleMark
|
||||||
for y=1,preField.h do for x=1,10 do
|
for y=1,preField.h do for x=1,10 do
|
||||||
local B=preField[y][x]
|
local T=preField[y][x]
|
||||||
if B>7 then
|
if T~=0 then
|
||||||
gc.setColor(blockColor[B])
|
gc.draw(m[T],30*x-30+dx,600-30*y+dy)
|
||||||
gc.rectangle("line",30*x-23,607-30*y,16,16)
|
|
||||||
elseif B>0 then
|
|
||||||
local c=blockColor[B]
|
|
||||||
gc.setColor(c[1],c[2],c[3],.6)
|
|
||||||
gc.rectangle("line",30*x-25,605-30*y,20,20)
|
|
||||||
gc.rectangle("line",30*x-20,610-30*y,10,10)
|
|
||||||
elseif B==-1 then
|
|
||||||
gc.setColor(1,1,1,.4)
|
|
||||||
gc.line(30*x-25,605-30*y,30*x-5,625-30*y)
|
|
||||||
gc.line(30*x-25,625-30*y,30*x-5,605-30*y)
|
|
||||||
end
|
end
|
||||||
end end
|
end end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ setting={
|
|||||||
ghost=true,center=true,
|
ghost=true,center=true,
|
||||||
smo=true,grid=false,
|
smo=true,grid=false,
|
||||||
dropFX=3,
|
dropFX=3,
|
||||||
shakeFX=1,
|
shakeFX=2,
|
||||||
atkFX=3,
|
atkFX=3,
|
||||||
frameMul=100,
|
frameMul=100,
|
||||||
--
|
|
||||||
fullscreen=false,
|
fullscreen=false,
|
||||||
bg=true,
|
bg=true,
|
||||||
bgblock=true,
|
bgblock=true,
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 140 B |
Binary file not shown.
|
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 155 B |
17
list.lua
17
list.lua
@@ -211,7 +211,6 @@ local virtualkeySet={
|
|||||||
{8, 320, 720-200, 80},--hold
|
{8, 320, 720-200, 80},--hold
|
||||||
{9, 80, 280, 80},--func
|
{9, 80, 280, 80},--func
|
||||||
{10,1280-80, 280, 80},--restart
|
{10,1280-80, 280, 80},--restart
|
||||||
|
|
||||||
},--Mirrored farter's set,sknaht
|
},--Mirrored farter's set,sknaht
|
||||||
{
|
{
|
||||||
{1, 80, 720-80, 80},--moveLeft
|
{1, 80, 720-80, 80},--moveLeft
|
||||||
@@ -454,13 +453,13 @@ Widget={
|
|||||||
setting_graphic={
|
setting_graphic={
|
||||||
sound= newButton(200,80,240,80,C.lightGreen,35,function()scene.swapTo("setting_sound")end, nil,"game"),
|
sound= newButton(200,80,240,80,C.lightGreen,35,function()scene.swapTo("setting_sound")end, nil,"game"),
|
||||||
game= newButton(1080,80,240,80,C.lightGreen,35,function()scene.swapTo("setting_game")end, nil,"ghost"),
|
game= newButton(1080,80,240,80,C.lightGreen,35,function()scene.swapTo("setting_game")end, nil,"ghost"),
|
||||||
ghost= newSwitch(310,180,35,SETdisp("ghost"), SETdisp("ghost"), nil,"center"),
|
ghost= newSwitch(310,180,35,SETdisp("ghost"), SETrev("ghost"), nil,"center"),
|
||||||
center= newSwitch(580,180,35,SETdisp("center"), SETdisp("center"), nil,"smo"),
|
center= newSwitch(580,180,35,SETdisp("center"), SETrev("center"), nil,"smo"),
|
||||||
smo= newSwitch(310,260,25,SETdisp("smo"), SETdisp("smo"), nil,"grid"),
|
smo= newSwitch(310,260,25,SETdisp("smo"), SETrev("smo"), nil,"grid"),
|
||||||
grid= newSwitch(580,260,30,SETdisp("grid"), SETdisp("grid"), nil,"dropFX"),
|
grid= newSwitch(580,260,30,SETdisp("grid"), SETrev("grid"), nil,"dropFX"),
|
||||||
dropFX= newSlider(310,350,373,3,35,nil,SETdisp("dropFX"), SETsto("dropFX"), nil,"shakeFX"),
|
dropFX= newSlider(310,350,373,5,35,nil,SETdisp("dropFX"), SETsto("dropFX"), nil,"shakeFX"),
|
||||||
shakeFX=newSlider(310,430,373,3,35,nil,SETdisp("shakeFX"), SETsto("shakeFX"), nil,"atkFX"),
|
shakeFX=newSlider(310,430,373,5,35,nil,SETdisp("shakeFX"), SETsto("shakeFX"), nil,"atkFX"),
|
||||||
atkFX= newSlider(310,510,373,3,35,nil,SETdisp("atkFX"), SETsto("atkFX"), nil,"frame"),
|
atkFX= newSlider(310,510,373,5,35,nil,SETdisp("atkFX"), SETsto("atkFX"), nil,"frame"),
|
||||||
frame= newSlider(310,590,373,10,35,nil,function()return setting.frameMul>35 and setting.frameMul/10 or setting.frameMul/5-4 end,function(i)setting.frameMul=i<5 and 5*i+20 or 10*i end,nil,"fullscreen"),
|
frame= newSlider(310,590,373,10,35,nil,function()return setting.frameMul>35 and setting.frameMul/10 or setting.frameMul/5-4 end,function(i)setting.frameMul=i<5 and 5*i+20 or 10*i end,nil,"fullscreen"),
|
||||||
fullscreen=newSwitch(990,180,40,SETdisp("fullscreen"),function()
|
fullscreen=newSwitch(990,180,40,SETdisp("fullscreen"),function()
|
||||||
setting.fullscreen=not setting.fullscreen
|
setting.fullscreen=not setting.fullscreen
|
||||||
@@ -486,7 +485,7 @@ Widget={
|
|||||||
bgm= newSlider(750,250,400,10,35,function()BGM(bgmPlaying or"blank")end, SETdisp("bgm"), SETsto("bgm"), nil,"vib"),
|
bgm= newSlider(750,250,400,10,35,function()BGM(bgmPlaying or"blank")end, SETdisp("bgm"), SETsto("bgm"), nil,"vib"),
|
||||||
vib= newSlider(180,440,400,5 ,35,function()VIB(1)end, SETdisp("vib"), SETsto("vib"), nil,"voc"),
|
vib= newSlider(180,440,400,5 ,35,function()VIB(1)end, SETdisp("vib"), SETsto("vib"), nil,"voc"),
|
||||||
voc= newSlider(750,440,400,10,35,function()VOICE("nya")end, SETdisp("voc"), SETsto("voc"), nil,"stereo"),
|
voc= newSlider(750,440,400,10,35,function()VOICE("nya")end, SETdisp("voc"), SETsto("voc"), nil,"stereo"),
|
||||||
stereo= newSlider(180,630,400,10,35,function()SFX("move",1,-1)SFX("lock",1,1)end, SETdisp("stereo"), SETsto("stereo"),nil,"back"),
|
stereo= newSlider(180,630,400,10,35,function()SFX("move",1,-1)SFX("lock",1,1)end, SETdisp("stereo"), SETsto("stereo"),function()return setting.sfx==0 end,"back"),
|
||||||
back=newButton(1160,600,160,160,C.white,50,scene.back,nil,"game"),
|
back=newButton(1160,600,160,160,C.white,50,scene.back,nil,"game"),
|
||||||
},
|
},
|
||||||
setting_key={
|
setting_key={
|
||||||
|
|||||||
68
main.lua
68
main.lua
@@ -17,7 +17,7 @@ local mx,my,mouseShow=-20,-20,false
|
|||||||
local touching--第一触摸ID
|
local touching--第一触摸ID
|
||||||
|
|
||||||
local devMode=0
|
local devMode=0
|
||||||
modeSel,levelSel=1,3--初始模式选择
|
modeSel,levelSel=1,3--初始模式选择(saved in setting)
|
||||||
players={alive={},human=0}
|
players={alive={},human=0}
|
||||||
scr={x=0,y=0,w=gc.getWidth(),h=gc.getHeight(),k=1}
|
scr={x=0,y=0,w=gc.getWidth(),h=gc.getHeight(),k=1}
|
||||||
local scr=scr
|
local scr=scr
|
||||||
@@ -75,38 +75,39 @@ require("player")
|
|||||||
-------------------------------------------------------------
|
-------------------------------------------------------------
|
||||||
local powerInfoCanvas,updatePowerInfo
|
local powerInfoCanvas,updatePowerInfo
|
||||||
if sys.getPowerInfo()~="unknown"then
|
if sys.getPowerInfo()~="unknown"then
|
||||||
powerInfoCanvas=gc.newCanvas(147,22)
|
powerInfoCanvas=gc.newCanvas(108,27)
|
||||||
updatePowerInfo=function()
|
function updatePowerInfo()
|
||||||
local state,pow=sys.getPowerInfo()
|
local state,pow=sys.getPowerInfo()
|
||||||
if state~="unknown"then
|
if state~="unknown"then
|
||||||
gc.setCanvas(powerInfoCanvas)gc.push("transform")gc.origin()
|
gc.setCanvas(powerInfoCanvas)gc.push("transform")gc.origin()
|
||||||
gc.clear(0,0,0,.3)
|
gc.clear(0,0,0,.25)
|
||||||
gc.setLineWidth(4)
|
gc.setLineWidth(4)
|
||||||
setFont(20)
|
local charging=state=="charging"
|
||||||
local charging
|
gc.setColor(1,1,1)
|
||||||
if state~="battery"then
|
if state=="nobattery"then
|
||||||
gc.setColor(1,1,1)
|
gc.setLineWidth(2)
|
||||||
if state=="nobattery"then
|
gc.line(74,5,99,22)
|
||||||
gc.setLineWidth(2)
|
|
||||||
gc.line(61.5,.5,83.5,22.5)
|
|
||||||
elseif state=="charging"or state=="charged"then
|
|
||||||
gc.draw(chargeImage,84,3)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
if pow then
|
if pow<100 then
|
||||||
if charging then gc.setColor(0,1,0)
|
if charging then gc.setColor(0,1,0)
|
||||||
elseif pow>50 then gc.setColor(1,1,1)
|
elseif pow>50 then gc.setColor(1,1,1)
|
||||||
elseif pow>26 then gc.setColor(1,1,0)
|
elseif pow>26 then gc.setColor(1,1,0)
|
||||||
elseif pow<26 then gc.setColor(1,0,0)
|
elseif pow<26 then gc.setColor(1,0,0)
|
||||||
else gc.setColor(.5,0,1)--special~
|
else gc.setColor(.5,0,1)
|
||||||
end
|
end
|
||||||
::L::
|
gc.rectangle("fill",76,6,pow*.22,14)
|
||||||
gc.rectangle("fill",61,6,pow*.15,10)
|
setFont(14)
|
||||||
|
gc.setColor(0,0,0)
|
||||||
|
gc.print(pow,77,2)
|
||||||
|
gc.print(pow,77,4)
|
||||||
|
gc.print(pow,79,2)
|
||||||
|
gc.print(pow,79,4)
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
gc.draw(batteryImage,58,3)
|
gc.draw(batteryImage,73,3)
|
||||||
gc.print(pow.."%",94,-3)
|
gc.print(pow,78,3)
|
||||||
end
|
end
|
||||||
gc.print(os.date("%H:%M",os.time()),2,-3)
|
setFont(25)
|
||||||
|
gc.print(os.date("%H:%M",os.time()),3,-5)
|
||||||
gc.pop()gc.setCanvas()
|
gc.pop()gc.setCanvas()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -314,6 +315,14 @@ function touchMove.draw(id,x,y,dx,dy)
|
|||||||
preField[sy][sx]=pen
|
preField[sy][sx]=pen
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
local penKey={
|
||||||
|
["1"]=1,["2"]=2,["3"]=3,
|
||||||
|
q=4, w=5, e=6,
|
||||||
|
a=7, s=9, d=10,
|
||||||
|
z=11, x=12, c=13,
|
||||||
|
tab=0, backspace=0,
|
||||||
|
lshift=-1, lalt=-1,
|
||||||
|
}
|
||||||
function keyDown.draw(key)
|
function keyDown.draw(key)
|
||||||
if key=="delete"then
|
if key=="delete"then
|
||||||
if clearSureTime>15 then
|
if clearSureTime>15 then
|
||||||
@@ -337,14 +346,10 @@ function keyDown.draw(key)
|
|||||||
if sx and sy then
|
if sx and sy then
|
||||||
preField[sy][sx]=pen
|
preField[sy][sx]=pen
|
||||||
end
|
end
|
||||||
elseif key=="tab"then
|
|
||||||
pen=-1
|
|
||||||
elseif key=="backspace"or key=="lalt"then
|
|
||||||
pen=0
|
|
||||||
elseif key=="escape"then
|
elseif key=="escape"then
|
||||||
scene.back()
|
scene.back()
|
||||||
else
|
else
|
||||||
pen=string.find("123qwea#sdzxc",key)or pen
|
pen=penKey[key]or pen
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -857,6 +862,7 @@ function love.lowmemory()
|
|||||||
collectgarbage()
|
collectgarbage()
|
||||||
end
|
end
|
||||||
function love.resize(w,h)
|
function love.resize(w,h)
|
||||||
|
love.timer.sleep(.26)
|
||||||
scr.w,scr.h,scr.r=w,h,h/w
|
scr.w,scr.h,scr.r=w,h,h/w
|
||||||
if scr.r>=.5625 then
|
if scr.r>=.5625 then
|
||||||
scr.k=w/1280
|
scr.k=w/1280
|
||||||
@@ -1035,6 +1041,7 @@ function love.draw()
|
|||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
gc.print(FPS(),5,700)
|
gc.print(FPS(),5,700)
|
||||||
if devMode>0 then
|
if devMode>0 then
|
||||||
|
love.timer.sleep(.2)
|
||||||
gc.setColor(1,devMode==2 and .5 or 1,1)
|
gc.setColor(1,devMode==2 and .5 or 1,1)
|
||||||
gc.print("Tasks:"..#Task,5,600)
|
gc.print("Tasks:"..#Task,5,600)
|
||||||
gc.print("Voices:"..#voiceQueue,5,620)
|
gc.print("Voices:"..#voiceQueue,5,620)
|
||||||
@@ -1077,7 +1084,7 @@ function love.run()
|
|||||||
T.sleep(.001)
|
T.sleep(.001)
|
||||||
end
|
end
|
||||||
lastFrame=Timer()
|
lastFrame=Timer()
|
||||||
if Timer()-lastFreshPow>5 then
|
if Timer()-lastFreshPow>1 then
|
||||||
updatePowerInfo()
|
updatePowerInfo()
|
||||||
lastFreshPow=Timer()
|
lastFreshPow=Timer()
|
||||||
end
|
end
|
||||||
@@ -1085,12 +1092,11 @@ function love.run()
|
|||||||
::END::
|
::END::
|
||||||
end
|
end
|
||||||
|
|
||||||
local fs=love.filesystem
|
userData,userSetting=love.filesystem.newFile("userdata"),love.filesystem.newFile("usersetting")
|
||||||
userData,userSetting=fs.newFile("userdata"),fs.newFile("usersetting")
|
if love.filesystem.getInfo("userdata")then
|
||||||
if fs.getInfo("userdata")then
|
|
||||||
loadData()
|
loadData()
|
||||||
end
|
end
|
||||||
if fs.getInfo("usersetting")then
|
if love.filesystem.getInfo("usersetting")then
|
||||||
loadSetting()
|
loadSetting()
|
||||||
elseif system=="Android"or system=="iOS" then
|
elseif system=="Android"or system=="iOS" then
|
||||||
setting.swap=false
|
setting.swap=false
|
||||||
|
|||||||
26
paint.lua
26
paint.lua
@@ -228,15 +228,16 @@ function Pnt.BG.matrix()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function Pnt.load()
|
function Pnt.load()
|
||||||
|
local L=loading
|
||||||
gc.setLineWidth(4)
|
gc.setLineWidth(4)
|
||||||
gc.setColor(1,1,1,.5)
|
gc.setColor(1,1,1,.5)
|
||||||
gc.rectangle("fill",300,330,loadprogress*680,60,5)
|
gc.rectangle("fill",300,330,L[2]/L[3]*680,60,5)
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
gc.rectangle("line",300,330,680,60,5)
|
gc.rectangle("line",300,330,680,60,5)
|
||||||
setFont(35)
|
setFont(35)
|
||||||
mStr(text.load[loading],640,335)
|
mStr(text.load[L[1]],640,335)
|
||||||
setFont(25)
|
setFont(25)
|
||||||
mStr(loadTip,640,400)
|
mStr(L[4],640,400)
|
||||||
end
|
end
|
||||||
function Pnt.intro()
|
function Pnt.intro()
|
||||||
gc.stencil(stencil_miniTitle,"replace",1)
|
gc.stencil(stencil_miniTitle,"replace",1)
|
||||||
@@ -339,13 +340,13 @@ function Pnt.draw()
|
|||||||
gc.setLineWidth(3)
|
gc.setLineWidth(3)
|
||||||
gc.rectangle("line",-2,-2,304,604)
|
gc.rectangle("line",-2,-2,304,604)
|
||||||
gc.setLineWidth(2)
|
gc.setLineWidth(2)
|
||||||
|
local cross=puzzleMark[-1]
|
||||||
for y=1,20 do for x=1,10 do
|
for y=1,20 do for x=1,10 do
|
||||||
local B=preField[y][x]
|
local B=preField[y][x]
|
||||||
if B>0 then
|
if B>0 then
|
||||||
gc.draw(blockSkin[B],30*x-30,600-30*y)
|
gc.draw(blockSkin[B],30*x-30,600-30*y)
|
||||||
elseif B==-1 then
|
elseif B==-1 then
|
||||||
gc.line(30*x-25,605-30*y,30*x-5,625-30*y)
|
gc.draw(cross,30*x-30,600-30*y)
|
||||||
gc.line(30*x-25,625-30*y,30*x-5,605-30*y)
|
|
||||||
end
|
end
|
||||||
end end
|
end end
|
||||||
if sx and sy then
|
if sx and sy then
|
||||||
@@ -360,12 +361,12 @@ function Pnt.draw()
|
|||||||
if pen>0 then
|
if pen>0 then
|
||||||
gc.setLineWidth(13)
|
gc.setLineWidth(13)
|
||||||
gc.setColor(blockColor[pen])
|
gc.setColor(blockColor[pen])
|
||||||
gc.rectangle("line",746,460,70,70)
|
gc.rectangle("line",745,460,70,70)
|
||||||
elseif pen==-1 then
|
elseif pen==-1 then
|
||||||
gc.setLineWidth(5)
|
gc.setLineWidth(5)
|
||||||
gc.setColor(.9,.9,.9)
|
gc.setColor(.9,.9,.9)
|
||||||
gc.line(960,620,1000,660)
|
gc.line(755,470,805,520)
|
||||||
gc.line(960,660,1000,620)
|
gc.line(755,520,805,470)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function Pnt.play()
|
function Pnt.play()
|
||||||
@@ -376,12 +377,13 @@ function Pnt.play()
|
|||||||
for i=1,#FX_attack do
|
for i=1,#FX_attack do
|
||||||
local A=FX_attack[i]
|
local A=FX_attack[i]
|
||||||
gc.push("transform")
|
gc.push("transform")
|
||||||
local a=A.t<10 and A.a*A.t*.05 or A.t>50 and A.a*(6-A.t*.1)or A.a
|
local a=(A.t<10 and A.t*.05 or A.t>50 and 6-A.t*.1 or 1)*A.a
|
||||||
gc.setColor(A.r,A.g,A.b,a*.5)
|
gc.setColor(A.r,A.g,A.b,a*.5)
|
||||||
gc.circle("line",0,0,A.rad,A.corner)
|
gc.circle("line",0,0,A.rad,A.corner)
|
||||||
local L=A.drag
|
local L=A.drag
|
||||||
for i=1,#L,2 do
|
local len=#L
|
||||||
gc.setColor(A.r,A.g,A.b,a*i*.05)
|
for i=1,len,2 do
|
||||||
|
gc.setColor(A.r,A.g,A.b,.4*a*i/len)
|
||||||
gc.translate(L[i],L[i+1])
|
gc.translate(L[i],L[i+1])
|
||||||
gc.rotate(A.t*.1)
|
gc.rotate(A.t*.1)
|
||||||
gc.circle("fill",0,0,A.rad,A.corner)
|
gc.circle("fill",0,0,A.rad,A.corner)
|
||||||
@@ -489,7 +491,7 @@ function Pnt.setting_key()
|
|||||||
200,45
|
200,45
|
||||||
)
|
)
|
||||||
--Selection rect
|
--Selection rect
|
||||||
|
|
||||||
gc.setColor(1,.3,.3)
|
gc.setColor(1,.3,.3)
|
||||||
mDraw(drawableText.keyboard,340,35)
|
mDraw(drawableText.keyboard,340,35)
|
||||||
mDraw(drawableText.keyboard,940,35)
|
mDraw(drawableText.keyboard,940,35)
|
||||||
|
|||||||
73
player.lua
73
player.lua
@@ -306,7 +306,7 @@ function newDemoPlayer(id,x,y,size)
|
|||||||
wait=10,fall=20,
|
wait=10,fall=20,
|
||||||
next=6,hold=true,oncehold=true,
|
next=6,hold=true,oncehold=true,
|
||||||
sequence="bag7",
|
sequence="bag7",
|
||||||
|
|
||||||
block=true,
|
block=true,
|
||||||
visible="show",
|
visible="show",
|
||||||
Fkey=NULL,puzzle=false,ospin=true,
|
Fkey=NULL,puzzle=false,ospin=true,
|
||||||
@@ -576,7 +576,7 @@ function player.update(P,dt)
|
|||||||
if x~=P.curX then
|
if x~=P.curX then
|
||||||
P.moving=P.moving+P.gameEnv.arr-1
|
P.moving=P.moving+P.gameEnv.arr-1
|
||||||
elseif not P.small then
|
elseif not P.small then
|
||||||
P.fieldOff.vx=-setting.shakeFX*.8
|
P.fieldOff.vx=-setting.shakeFX*.5
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -596,7 +596,7 @@ function player.update(P,dt)
|
|||||||
if x~=P.curX then
|
if x~=P.curX then
|
||||||
P.moving=P.moving-P.gameEnv.arr+1
|
P.moving=P.moving-P.gameEnv.arr+1
|
||||||
elseif not P.small then
|
elseif not P.small then
|
||||||
P.fieldOff.vx=setting.shakeFX*.8
|
P.fieldOff.vx=setting.shakeFX*.5
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -615,7 +615,7 @@ function player.update(P,dt)
|
|||||||
P.act.insDown(P)
|
P.act.insDown(P)
|
||||||
end
|
end
|
||||||
if not P.small then
|
if not P.small then
|
||||||
P.fieldOff.vy=setting.shakeFX*.5
|
P.fieldOff.vy=setting.shakeFX*.3
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -707,31 +707,20 @@ function player.update(P,dt)
|
|||||||
end
|
end
|
||||||
for i=#P.shade,1,-1 do
|
for i=#P.shade,1,-1 do
|
||||||
local S=P.shade[i]
|
local S=P.shade[i]
|
||||||
S[1]=S[1]-1+setting.dropFX*.25
|
S[1]=S[1]-1+setting.dropFX*.15
|
||||||
if S[1]<=0 then
|
if S[1]<=0 then
|
||||||
rem(P.shade,i)
|
rem(P.shade,i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if setting.shakeFX>0 then
|
if setting.shakeFX>0 then
|
||||||
local O=P.fieldOff
|
local O=P.fieldOff
|
||||||
O.vx,O.vy=O.vx*.8-abs(O.x)^1.2*(O.x>0 and .08 or -.08),O.vy*.8-abs(O.y)^1.2*(O.y>0 and .08 or -.08)
|
O.vx,O.vy=O.vx*.8-abs(O.x)^1.2*(O.x>0 and .1 or -.1),O.vy*.8-abs(O.y)^1.2*(O.y>0 and .1 or -.1)
|
||||||
O.x,O.y=O.x+O.vx,O.y+O.vy
|
O.x,O.y=O.x+O.vx,O.y+O.vy
|
||||||
|
if abs(O.x)<1 then O.x=0 end
|
||||||
|
if abs(O.y)<1 then O.y=0 end
|
||||||
end--field shaking
|
end--field shaking
|
||||||
|
updateText(P.bonus)
|
||||||
for i=#P.bonus,1,-1 do
|
|
||||||
local t=P.bonus[i]
|
|
||||||
t.c=t.c+t.spd
|
|
||||||
if t.stop then
|
|
||||||
if t.c>t.stop then
|
|
||||||
t.c=t.stop
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if t.c>60 then
|
|
||||||
rem(P.bonus,i)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for i=#P.atkBuffer,1,-1 do
|
for i=#P.atkBuffer,1,-1 do
|
||||||
local A=P.atkBuffer[i]
|
local A=P.atkBuffer[i]
|
||||||
A.time=A.time+1
|
A.time=A.time+1
|
||||||
@@ -954,13 +943,7 @@ function player.draw_norm(P)
|
|||||||
mStr(int(count/60+1),0,0)
|
mStr(int(count/60+1),0,0)
|
||||||
gc.pop()
|
gc.pop()
|
||||||
end--Draw starting counter
|
end--Draw starting counter
|
||||||
for i=1,#P.bonus do
|
drawTexts(P.bonus)--Bonus texts
|
||||||
local t=P.bonus[i]
|
|
||||||
local p=t.c
|
|
||||||
gc.setColor(1,1,1,p<.2 and p*5 or p<.8 and 1 or 5-p*5)
|
|
||||||
setFont(t.font)
|
|
||||||
t:draw()
|
|
||||||
end--Bonus texts
|
|
||||||
setFont(25)
|
setFont(25)
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
mStr(format("%.2f",P.stat.time),-82,518)--Time
|
mStr(format("%.2f",P.stat.time),-82,518)--Time
|
||||||
@@ -972,7 +955,7 @@ function player.draw_norm(P)
|
|||||||
drawDial(405,575,P.keySpeed)
|
drawDial(405,575,P.keySpeed)
|
||||||
--Speed dials
|
--Speed dials
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
modes[curMode.id].mesDisp(P)--Other messages
|
modes[curMode.id].mesDisp(P,P.fieldOff.x,P.fieldOff.y)--Other messages
|
||||||
if modeEnv.royaleMode then
|
if modeEnv.royaleMode then
|
||||||
if P.atkMode then
|
if P.atkMode then
|
||||||
gc.setColor(1,.8,0,P.swappingAtkMode*.02)
|
gc.setColor(1,.8,0,P.swappingAtkMode*.02)
|
||||||
@@ -1104,13 +1087,7 @@ function player.draw_demo(P)
|
|||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
gc.draw(PTC.dust[P.id])
|
gc.draw(PTC.dust[P.id])
|
||||||
gc.translate(-P.fieldOff.x,-P.fieldOff.y)
|
gc.translate(-P.fieldOff.x,-P.fieldOff.y)
|
||||||
for i=1,#P.bonus do
|
drawTexts(P.bonus)
|
||||||
local t=P.bonus[i]
|
|
||||||
local p=t.c
|
|
||||||
gc.setColor(1,1,1,p<.2 and p*5 or p<.8 and 1 or 5-p*5)
|
|
||||||
setFont(t.font)
|
|
||||||
t:draw()
|
|
||||||
end
|
|
||||||
gc.pop()
|
gc.pop()
|
||||||
end
|
end
|
||||||
-------------------------<FX>-------------------------
|
-------------------------<FX>-------------------------
|
||||||
@@ -1155,10 +1132,10 @@ function player.createBeam(P,R,send,time,target,color,clear,spin,mini,combo)
|
|||||||
g=.6+g*.4
|
g=.6+g*.4
|
||||||
b=.6+b*.4
|
b=.6+b*.4
|
||||||
else
|
else
|
||||||
|
corner=20
|
||||||
r=.8+r*.2
|
r=.8+r*.2
|
||||||
g=.8+g*.2
|
g=.8+g*.2
|
||||||
b=.8+b*.2
|
b=.8+b*.2
|
||||||
corner=20
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if combo>3 then
|
if combo>3 then
|
||||||
@@ -1180,10 +1157,10 @@ function player.createBeam(P,R,send,time,target,color,clear,spin,mini,combo)
|
|||||||
x=x1,y=y1,--current pos
|
x=x1,y=y1,--current pos
|
||||||
x1=x1,y1=y1,--start pos
|
x1=x1,y1=y1,--start pos
|
||||||
x2=x2,y2=y2,--end pos
|
x2=x2,y2=y2,--end pos
|
||||||
rad=radius*(setting.atkFX+2)*.2,
|
rad=radius*(setting.atkFX+3)*.12,
|
||||||
corner=corner,
|
corner=corner,
|
||||||
type=type==1 and"fill"or"line",
|
type=type==1 and"fill"or"line",
|
||||||
r=r,g=g,b=b,a=a*(setting.atkFX+1)*.25,
|
r=r,g=g,b=b,a=a*(setting.atkFX+5)*.1,
|
||||||
t=0,
|
t=0,
|
||||||
drag={},--Afterimage coordinate list
|
drag={},--Afterimage coordinate list
|
||||||
}
|
}
|
||||||
@@ -1388,7 +1365,7 @@ function player.freshgho(P)
|
|||||||
if setting.dropFX>0 then
|
if setting.dropFX>0 then
|
||||||
P:createShade(P.curX,P.curY+1,P.curX+P.c-1,P.y_img+P.r-1)
|
P:createShade(P.curX,P.curY+1,P.curX+P.c-1,P.y_img+P.r-1)
|
||||||
end
|
end
|
||||||
P.fieldOff.vy=setting.shakeFX*.8
|
P.fieldOff.vy=setting.shakeFX*.5
|
||||||
end
|
end
|
||||||
P.curY=P.y_img
|
P.curY=P.y_img
|
||||||
end
|
end
|
||||||
@@ -1687,7 +1664,7 @@ function player.drop(P)--Place piece
|
|||||||
end
|
end
|
||||||
::L1::
|
::L1::
|
||||||
end
|
end
|
||||||
|
|
||||||
P:lock()
|
P:lock()
|
||||||
local CHN=getFreeVoiceChannel()
|
local CHN=getFreeVoiceChannel()
|
||||||
local cc,send,exblock=checkrow(P,P.curY,P.r),0,0--Currect clear&send&sendTime
|
local cc,send,exblock=checkrow(P,P.curY,P.r),0,0--Currect clear&send&sendTime
|
||||||
@@ -1739,7 +1716,7 @@ function player.drop(P)--Place piece
|
|||||||
if cc==4 then
|
if cc==4 then
|
||||||
cscore=1000
|
cscore=1000
|
||||||
if P.b2b>1000 then
|
if P.b2b>1000 then
|
||||||
P:showText(text.techrashB3B,0,-30,70,"fly")
|
P:showText(text.techrashB3B,0,-30,50,"fly")
|
||||||
send=6
|
send=6
|
||||||
sendTime=100
|
sendTime=100
|
||||||
exblock=exblock+1
|
exblock=exblock+1
|
||||||
@@ -1749,7 +1726,7 @@ function player.drop(P)--Place piece
|
|||||||
VOICE("b3b",CHN)
|
VOICE("b3b",CHN)
|
||||||
end
|
end
|
||||||
elseif P.b2b>=50 then
|
elseif P.b2b>=50 then
|
||||||
P:showText(text.techrashB2B,0,-30,70,"drive")
|
P:showText(text.techrashB2B,0,-30,50,"drive")
|
||||||
sendTime=80
|
sendTime=80
|
||||||
send=5
|
send=5
|
||||||
cscore=cscore*1.3
|
cscore=cscore*1.3
|
||||||
@@ -1796,7 +1773,7 @@ function player.drop(P)--Place piece
|
|||||||
sendTime=20+send*20
|
sendTime=20+send*20
|
||||||
if mini then
|
if mini then
|
||||||
P:showText(text.mini,0,-80,35,"appear")
|
P:showText(text.mini,0,-80,35,"appear")
|
||||||
send=ceil(send*.5)
|
send=send*.5
|
||||||
sendTime=sendTime+60
|
sendTime=sendTime+60
|
||||||
cscore=cscore*.5
|
cscore=cscore*.5
|
||||||
P.b2b=P.b2b+b2bPoint[cc]*.5
|
P.b2b=P.b2b+b2bPoint[cc]*.5
|
||||||
@@ -1870,7 +1847,6 @@ function player.drop(P)--Place piece
|
|||||||
--ATK statistics
|
--ATK statistics
|
||||||
if exblock then exblock=int(exblock*(1+P.strength*.25))end
|
if exblock then exblock=int(exblock*(1+P.strength*.25))end
|
||||||
send=send*(1+P.strength*.25)
|
send=send*(1+P.strength*.25)
|
||||||
if mini then send=send*.8 end
|
|
||||||
send=int(send)
|
send=int(send)
|
||||||
--Badge Buff
|
--Badge Buff
|
||||||
if send==0 then goto L end
|
if send==0 then goto L end
|
||||||
@@ -2078,7 +2054,7 @@ function player.act.hardDrop(P)
|
|||||||
P.curY=P.y_img
|
P.curY=P.y_img
|
||||||
P.spinLast=false
|
P.spinLast=false
|
||||||
if not P.small then
|
if not P.small then
|
||||||
P.fieldOff.vy=setting.shakeFX
|
P.fieldOff.vy=setting.shakeFX*.6
|
||||||
end
|
end
|
||||||
if P.human then
|
if P.human then
|
||||||
SFX("drop",nil,getBlockDirection(P))
|
SFX("drop",nil,getBlockDirection(P))
|
||||||
@@ -2132,7 +2108,7 @@ function player.act.insLeft(P,auto)
|
|||||||
if P.gameEnv.easyFresh or y0~=P.curY then P:freshLockDelay()end
|
if P.gameEnv.easyFresh or y0~=P.curY then P:freshLockDelay()end
|
||||||
end
|
end
|
||||||
if not P.small then
|
if not P.small then
|
||||||
P.fieldOff.vx=-setting.shakeFX*.8
|
P.fieldOff.vx=-setting.shakeFX*.5
|
||||||
end
|
end
|
||||||
if auto then
|
if auto then
|
||||||
if P.ctrlCount==0 then P.ctrlCount=1 end
|
if P.ctrlCount==0 then P.ctrlCount=1 end
|
||||||
@@ -2153,7 +2129,7 @@ function player.act.insRight(P,auto)
|
|||||||
if P.gameEnv.easyFresh or y0~=P.curY then P:freshLockDelay()end
|
if P.gameEnv.easyFresh or y0~=P.curY then P:freshLockDelay()end
|
||||||
end
|
end
|
||||||
if not P.small then
|
if not P.small then
|
||||||
P.fieldOff.vx=setting.shakeFX*.8
|
P.fieldOff.vx=setting.shakeFX*.5
|
||||||
end
|
end
|
||||||
if auto then
|
if auto then
|
||||||
if P.ctrlCount==0 then P.ctrlCount=1 end
|
if P.ctrlCount==0 then P.ctrlCount=1 end
|
||||||
@@ -2167,6 +2143,7 @@ function player.act.insDown(P)
|
|||||||
if setting.dropFX>0 then
|
if setting.dropFX>0 then
|
||||||
P:createShade(P.curX,P.curY+1,P.curX+P.c-1,P.y_img+P.r-1)
|
P:createShade(P.curX,P.curY+1,P.curX+P.c-1,P.y_img+P.r-1)
|
||||||
end
|
end
|
||||||
|
P.fieldOff.vy=setting.shakeFX*.5
|
||||||
end
|
end
|
||||||
P.curY,P.lockDelay,P.spinLast=P.y_img,P.gameEnv.lock,false
|
P.curY,P.lockDelay,P.spinLast=P.y_img,P.gameEnv.lock,false
|
||||||
end
|
end
|
||||||
|
|||||||
29
scene.lua
29
scene.lua
@@ -13,10 +13,12 @@ local scene={
|
|||||||
local sceneInit={
|
local sceneInit={
|
||||||
quit=love.event.quit,
|
quit=love.event.quit,
|
||||||
load=function()
|
load=function()
|
||||||
loading=1--Loading mode
|
loading={
|
||||||
loadnum=1--Loading counter
|
1,--Loading mode
|
||||||
loadprogress=0--Loading bar(0~1)
|
1,--Loading counter
|
||||||
loadTip=text.tips[math.random(#text.tips)]
|
#voiceName,--Loading bar lenth(current)
|
||||||
|
text.tips[math.random(#text.tips)],--tip
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
intro=function()
|
intro=function()
|
||||||
count=0
|
count=0
|
||||||
@@ -124,19 +126,19 @@ local swapDeck_data={
|
|||||||
}--Block id [ZSLJTOI] ,dir,x,y
|
}--Block id [ZSLJTOI] ,dir,x,y
|
||||||
local gc=love.graphics
|
local gc=love.graphics
|
||||||
local swap={
|
local swap={
|
||||||
none={1,0,NULL},
|
none={1,0,nil,NULL},
|
||||||
flash={8,1,function()gc.clear(1,1,1)end},
|
flash={8,1,nil,function()gc.clear(1,1,1)end},
|
||||||
fade={30,15,function(t)
|
fade={30,15,"swipe",function(t)
|
||||||
local t=t>15 and 2-t/15 or t/15
|
local t=t>15 and 2-t/15 or t/15
|
||||||
gc.setColor(0,0,0,t)
|
gc.setColor(0,0,0,t)
|
||||||
gc.rectangle("fill",0,0,1280,720)
|
gc.rectangle("fill",0,0,1280,720)
|
||||||
end},
|
end},
|
||||||
slowFade={180,90,function(t)
|
slowFade={180,90,nil,function(t)
|
||||||
local t=t>90 and 2-t/90 or t/90
|
local t=t>90 and 2-t/90 or t/90
|
||||||
gc.setColor(0,0,0,t)
|
gc.setColor(0,0,0,t)
|
||||||
gc.rectangle("fill",0,0,1280,720)
|
gc.rectangle("fill",0,0,1280,720)
|
||||||
end},
|
end},
|
||||||
deck={50,8,function(t)
|
deck={50,8,nil,function(t)
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
if t>8 then
|
if t>8 then
|
||||||
local t=t<15 and 15 or t
|
local t=t<15 and 15 or t
|
||||||
@@ -189,11 +191,12 @@ function scene.swapTo(tar,style)
|
|||||||
if not style then style="fade"end
|
if not style then style="fade"end
|
||||||
S.tar=tar
|
S.tar=tar
|
||||||
S.style=style
|
S.style=style
|
||||||
S.time=swap[style][1]
|
local swap=swap[style]
|
||||||
S.mid=swap[style][2]
|
S.time=swap[1]
|
||||||
S.draw=swap[style][3]
|
S.mid=swap[2]
|
||||||
|
if swap[3]then SFX(swap[3])end
|
||||||
|
S.draw=swap[4]
|
||||||
widget_sel=nil
|
widget_sel=nil
|
||||||
if style~="none"then SFX("swipe")end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function scene.back()
|
function scene.back()
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ function SFX(s,v,pos)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
S:setVolume((v or 1)*setting.sfx*.1)
|
S:setVolume((v or 1)*setting.sfx*.1)
|
||||||
print((v or 1)*setting.sfx*.1)
|
|
||||||
S:play()
|
S:play()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
47
text.lua
47
text.lua
@@ -1,6 +1,8 @@
|
|||||||
local gc=love.graphics
|
local gc=love.graphics
|
||||||
local rnd=math.random
|
local rnd=math.random
|
||||||
local mStr=mStr
|
local mStr=mStr
|
||||||
|
local rem=table.remove
|
||||||
|
|
||||||
local textFX={}
|
local textFX={}
|
||||||
function textFX.appear(t)
|
function textFX.appear(t)
|
||||||
mStr(t.text,t.x,t.y-t.font*.7)
|
mStr(t.text,t.x,t.y-t.font*.7)
|
||||||
@@ -56,22 +58,20 @@ function textFX.beat(t)
|
|||||||
end
|
end
|
||||||
function getTEXT(text,x,y,font,style,spd,stop)
|
function getTEXT(text,x,y,font,style,spd,stop)
|
||||||
return{
|
return{
|
||||||
c=0, --counter
|
c=0,
|
||||||
|
text=text,
|
||||||
text=text, --string
|
x=x or 0,
|
||||||
x=x or 0, --x
|
y=y or 0,
|
||||||
y=y or 0, --y
|
font=font or 40,
|
||||||
font=font or 40, --font
|
spd=(spd or 1)/60,
|
||||||
spd=(spd or 1)/60, --timing speed
|
stop=stop,
|
||||||
stop=stop, --timing stop
|
draw=textFX[style]or error("unavailable type:"..style),
|
||||||
|
|
||||||
draw=textFX[style]or error("unavailable type:"..style), --draw method
|
|
||||||
}
|
}
|
||||||
end
|
end--another version of TEXT()
|
||||||
function TEXT(text,x,y,font,style,spd,stop)
|
function TEXT(text,x,y,font,style,spd,stop)
|
||||||
texts[#texts+1]={
|
texts[#texts+1]={
|
||||||
c=0, --timer
|
c=0, --timer
|
||||||
text=text or"NaN", --string
|
text=text, --string
|
||||||
x=x or 0, --x
|
x=x or 0, --x
|
||||||
y=y or 0, --y
|
y=y or 0, --y
|
||||||
font=font or 40, --font
|
font=font or 40, --font
|
||||||
@@ -79,4 +79,27 @@ function TEXT(text,x,y,font,style,spd,stop)
|
|||||||
stop=stop, --stop time(sustained text)
|
stop=stop, --stop time(sustained text)
|
||||||
draw=textFX[style]or error("unavailable type:"..style), --draw method
|
draw=textFX[style]or error("unavailable type:"..style), --draw method
|
||||||
}
|
}
|
||||||
|
end
|
||||||
|
function updateText(list)
|
||||||
|
for i=#list,1,-1 do
|
||||||
|
local t=list[i]
|
||||||
|
t.c=t.c+t.spd
|
||||||
|
if t.stop then
|
||||||
|
if t.c>t.stop then
|
||||||
|
t.c=t.stop
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if t.c>60 then
|
||||||
|
rem(list,i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function drawTexts(list)
|
||||||
|
for i=1,#list do
|
||||||
|
local t=list[i]
|
||||||
|
local p=t.c
|
||||||
|
gc.setColor(1,1,1,p<.2 and p*5 or p<.8 and 1 or 5-p*5)
|
||||||
|
setFont(t.font)
|
||||||
|
t:draw()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
37
texture.lua
37
texture.lua
@@ -1,12 +1,13 @@
|
|||||||
local gc=love.graphics
|
local gc=love.graphics
|
||||||
local N,c=gc.newImage
|
local N=gc.newImage
|
||||||
local int=math.floor
|
local int=math.floor
|
||||||
local function T(s,t)return gc.newText(setFont(s),t)end
|
local function T(s,t)return gc.newText(setFont(s),t)end
|
||||||
local function C(x,y)
|
local function C(x,y)
|
||||||
c=gc.newCanvas(x,y)
|
local c=gc.newCanvas(x,y)
|
||||||
gc.setCanvas(c)
|
gc.setCanvas(c)
|
||||||
return c
|
return c
|
||||||
end
|
end
|
||||||
|
local c
|
||||||
|
|
||||||
gc.setDefaultFilter("nearest","nearest")
|
gc.setDefaultFilter("nearest","nearest")
|
||||||
blockImg=N("/image/block.png")
|
blockImg=N("/image/block.png")
|
||||||
@@ -36,15 +37,38 @@ for i=1,7 do
|
|||||||
end end
|
end end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
puzzleMark={}
|
||||||
|
gc.setLineWidth(3)
|
||||||
|
for i=1,13 do
|
||||||
|
puzzleMark[i]=C(30,30)
|
||||||
|
if i>7 then
|
||||||
|
gc.setColor(blockColor[i])
|
||||||
|
gc.rectangle("line",7,7,16,16)
|
||||||
|
else
|
||||||
|
local c=blockColor[i]
|
||||||
|
gc.setColor(c[1],c[2],c[3],.6)
|
||||||
|
gc.rectangle("line",5,5,20,20)
|
||||||
|
gc.rectangle("line",10,10,10,10)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
c=C(30,30)
|
||||||
|
gc.setColor(1,1,1)
|
||||||
|
gc.line(5,5,25,25)
|
||||||
|
gc.line(5,25,25,5)
|
||||||
|
puzzleMark[-1]=C(30,30)
|
||||||
|
gc.setColor(1,1,1,.9)
|
||||||
|
gc.draw(c)
|
||||||
|
c:release()
|
||||||
|
|
||||||
PTC={dust={}}--Particle systems
|
PTC={dust={}}--Particle systems
|
||||||
C(6,6)
|
c=C(6,6)
|
||||||
gc.clear(1,1,1)
|
gc.clear(1,1,1)
|
||||||
PTC.dust0=gc.newParticleSystem(c,1000)
|
PTC.dust0=gc.newParticleSystem(c,1000)
|
||||||
|
c:release()
|
||||||
PTC.dust0:setParticleLifetime(.2,.3)
|
PTC.dust0:setParticleLifetime(.2,.3)
|
||||||
PTC.dust0:setEmissionRate(0)
|
PTC.dust0:setEmissionRate(0)
|
||||||
PTC.dust0:setLinearAcceleration(-1500,-200,1500,200)
|
PTC.dust0:setLinearAcceleration(-1500,-200,1500,200)
|
||||||
PTC.dust0:setColors(1,1,1,.5,1,1,1,0)
|
PTC.dust0:setColors(1,1,1,.5,1,1,1,0)
|
||||||
c:release()
|
|
||||||
--Dust particles
|
--Dust particles
|
||||||
|
|
||||||
gc.setDefaultFilter("linear","linear")
|
gc.setDefaultFilter("linear","linear")
|
||||||
@@ -55,7 +79,6 @@ dialNeedle=N("/image/mess/dialNeedle.png")
|
|||||||
badgeIcon=N("/image/mess/badge.png")
|
badgeIcon=N("/image/mess/badge.png")
|
||||||
spinCenter=N("/image/mess/spinCenter.png")
|
spinCenter=N("/image/mess/spinCenter.png")
|
||||||
batteryImage=N("/image/mess/power.png")
|
batteryImage=N("/image/mess/power.png")
|
||||||
chargeImage=N("/image/mess/charge.png")
|
|
||||||
|
|
||||||
background1=N("/image/BG/bg1.jpg")
|
background1=N("/image/BG/bg1.jpg")
|
||||||
background2=N("/image/BG/bg2.png")
|
background2=N("/image/BG/bg2.png")
|
||||||
@@ -76,7 +99,7 @@ drawableText={
|
|||||||
nextWave=T(30,"Next"),
|
nextWave=T(30,"Next"),
|
||||||
combo=T(20,"Combo"),
|
combo=T(20,"Combo"),
|
||||||
mxcmb=T(20,"Max Combo"),
|
mxcmb=T(20,"Max Combo"),
|
||||||
pc=T(22,"Perfect Clear"),
|
pc=T(20,"Perfect Clear"),
|
||||||
ko=T(25,"KO"),
|
ko=T(25,"KO"),
|
||||||
|
|
||||||
modeName=T(30),levelName=T(30),
|
modeName=T(30),levelName=T(30),
|
||||||
@@ -84,7 +107,7 @@ drawableText={
|
|||||||
|
|
||||||
win=T(120),finish=T(120),
|
win=T(120),finish=T(120),
|
||||||
lose=T(120),pause=T(120),
|
lose=T(120),pause=T(120),
|
||||||
|
|
||||||
custom=T(80),
|
custom=T(80),
|
||||||
setting_game=T(80),setting_graphic=T(80),setting_sound=T(80),
|
setting_game=T(80),setting_graphic=T(80),setting_sound=T(80),
|
||||||
keyboard=T(25),joystick=T(25),
|
keyboard=T(25),joystick=T(25),
|
||||||
|
|||||||
69
timer.lua
69
timer.lua
@@ -6,46 +6,41 @@ local ins,rem=table.insert,table.remove
|
|||||||
local Tmr={}
|
local Tmr={}
|
||||||
function Tmr.load()
|
function Tmr.load()
|
||||||
local t=Timer()
|
local t=Timer()
|
||||||
|
local L=loading
|
||||||
::R::
|
::R::
|
||||||
if loading==1 then
|
if L[1]==1 then
|
||||||
if loadnum<=#voiceName then
|
local N=voiceName[L[2]]
|
||||||
local N=voiceName[loadnum]
|
for i=1,#voiceList[N]do
|
||||||
for i=1,#voiceList[N]do
|
local V=voiceList[N][i]
|
||||||
voiceBank[voiceList[N][i]]={love.audio.newSource("VOICE/"..voiceList[N][i]..".ogg","static")}
|
voiceBank[V]={love.audio.newSource("VOICE/"..V..".ogg","static")}
|
||||||
end
|
|
||||||
loadprogress=loadnum/#voiceName
|
|
||||||
loadnum=loadnum+1
|
|
||||||
else
|
|
||||||
loading=2
|
|
||||||
loadnum=1
|
|
||||||
end
|
end
|
||||||
elseif loading==2 then
|
L[2]=L[2]+1
|
||||||
if loadnum<=#bgm then
|
if L[2]>L[3]then
|
||||||
local N=bgm[loadnum]
|
L[1],L[2],L[3]=2,1,#bgm
|
||||||
bgm[N]=love.audio.newSource("/BGM/"..N..".ogg","stream")
|
end
|
||||||
bgm[N]:setLooping(true)
|
elseif L[1]==2 then
|
||||||
bgm[N]:setVolume(0)
|
local N=bgm[L[2]]
|
||||||
loadprogress=loadnum/#bgm
|
bgm[N]=love.audio.newSource("/BGM/"..N..".ogg","stream")
|
||||||
loadnum=loadnum+1
|
bgm[N]:setLooping(true)
|
||||||
else
|
bgm[N]:setVolume(0)
|
||||||
|
L[2]=L[2]+1
|
||||||
|
if L[2]>L[3]then
|
||||||
for i=1,#bgm do bgm[i]=nil end
|
for i=1,#bgm do bgm[i]=nil end
|
||||||
loading=3
|
L[1],L[2],L[3]=3,1,#sfx
|
||||||
loadnum=1
|
|
||||||
end
|
end
|
||||||
elseif loading==3 then
|
elseif L[1]==3 then
|
||||||
if loadnum<=#sfx then
|
local S=sfx[L[2]]
|
||||||
sfx[sfx[loadnum]]={love.audio.newSource("/SFX/"..sfx[loadnum]..".ogg","static")}
|
sfx[S]={love.audio.newSource("/SFX/"..S..".ogg","static")}
|
||||||
loadprogress=loadnum/#sfx
|
L[2]=L[2]+1
|
||||||
loadnum=loadnum+1
|
if L[2]>L[3]then
|
||||||
else
|
for i=1,L[2]do sfx[i]=nil end
|
||||||
for i=1,#sfx do sfx[i]=nil end
|
L[1],L[2],L[3]=4,1,1
|
||||||
loading=4
|
|
||||||
loadnum=1
|
|
||||||
SFX("welcome",.2)
|
SFX("welcome",.2)
|
||||||
end
|
end
|
||||||
elseif loading==4 then
|
else
|
||||||
loadnum=loadnum+1
|
L[2]=L[2]+1
|
||||||
if loadnum==48 then
|
L[3]=L[2]
|
||||||
|
if L[2]>50 then
|
||||||
stat.run=stat.run+1
|
stat.run=stat.run+1
|
||||||
scene.swapTo("intro","none")
|
scene.swapTo("intro","none")
|
||||||
end
|
end
|
||||||
@@ -68,7 +63,7 @@ function Tmr.play(dt)
|
|||||||
local b=FX_attack[i]
|
local b=FX_attack[i]
|
||||||
b.t=b.t+1
|
b.t=b.t+1
|
||||||
if b.t>50 then
|
if b.t>50 then
|
||||||
b.rad=b.rad*1.08+.2
|
b.rad=b.rad*1.05+.1
|
||||||
b.x,b.y=b.x2,b.y2
|
b.x,b.y=b.x2,b.y2
|
||||||
elseif b.t>10 then
|
elseif b.t>10 then
|
||||||
local t=((b.t-10)*.025)t=(3-2*t)*t*t
|
local t=((b.t-10)*.025)t=(3-2*t)*t*t
|
||||||
@@ -76,12 +71,12 @@ function Tmr.play(dt)
|
|||||||
end
|
end
|
||||||
if b.t<60 then
|
if b.t<60 then
|
||||||
local L=FX_attack[i].drag
|
local L=FX_attack[i].drag
|
||||||
if #L==6*setting.atkFX then
|
if #L==4*setting.atkFX then
|
||||||
rem(L,1)rem(L,1)
|
rem(L,1)rem(L,1)
|
||||||
end
|
end
|
||||||
ins(L,b.x)ins(L,b.y)
|
ins(L,b.x)ins(L,b.y)
|
||||||
else
|
else
|
||||||
for i=1,#FX_attack do
|
for i=i,#FX_attack do
|
||||||
FX_attack[i]=FX_attack[i+1]
|
FX_attack[i]=FX_attack[i+1]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
18
toolfunc.lua
18
toolfunc.lua
@@ -326,7 +326,6 @@ function gameStart()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
local dataOpt={
|
local dataOpt={
|
||||||
"run","game","time",
|
"run","game","time",
|
||||||
"extraPiece","extraRate",
|
"extraPiece","extraRate",
|
||||||
@@ -406,11 +405,19 @@ function loadSetting()
|
|||||||
v=toN(v)if not v or v<0 then v=0 end
|
v=toN(v)if not v or v<0 then v=0 end
|
||||||
setting[t]=int(v)
|
setting[t]=int(v)
|
||||||
elseif t=="dropFX"or t=="shakeFX"or t=="atkFX"then
|
elseif t=="dropFX"or t=="shakeFX"or t=="atkFX"then
|
||||||
setting[t]=toN(v:match("[0123]"))or 0
|
setting[t]=toN(v:match("[012345]"))or 0
|
||||||
elseif t=="lang"then
|
elseif t=="lang"then
|
||||||
setting[t]=toN(v:match("[123]"))or 1
|
setting[t]=toN(v:match("[123]"))or 1
|
||||||
elseif t=="skin"then
|
elseif t=="skin"then
|
||||||
setting[t]=toN(v:match("[12345678]"))or 1
|
setting[t]=toN(v:match("[12345678]"))or 1
|
||||||
|
elseif t=="modesel"then
|
||||||
|
local t=toN(v)
|
||||||
|
if not(t or modes[modeID[t]])then
|
||||||
|
t=1
|
||||||
|
end
|
||||||
|
modeSel=t
|
||||||
|
elseif t=="levelsel"then
|
||||||
|
levelSel=toN(v)
|
||||||
elseif t=="keymap"then
|
elseif t=="keymap"then
|
||||||
v=splitS(v,"/")
|
v=splitS(v,"/")
|
||||||
for i=1,16 do
|
for i=1,16 do
|
||||||
@@ -433,6 +440,9 @@ function loadSetting()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if not modes[modeID[modeSel]].level[levelSel]then
|
||||||
|
levelSel=1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
local saveOpt={
|
local saveOpt={
|
||||||
"das","arr",
|
"das","arr",
|
||||||
@@ -457,7 +467,7 @@ local saveOpt={
|
|||||||
"sfx","bgm",
|
"sfx","bgm",
|
||||||
"vib","voc",
|
"vib","voc",
|
||||||
"stereo",
|
"stereo",
|
||||||
|
|
||||||
"VKSwitch",
|
"VKSwitch",
|
||||||
"VKTrack",
|
"VKTrack",
|
||||||
"VKDodge",
|
"VKDodge",
|
||||||
@@ -482,6 +492,8 @@ function saveSetting()
|
|||||||
map[i]=concat(setting.keyMap[i],",")
|
map[i]=concat(setting.keyMap[i],",")
|
||||||
end
|
end
|
||||||
local t={
|
local t={
|
||||||
|
"modesel="..modeSel,
|
||||||
|
"levelsel="..levelSel,
|
||||||
"keymap="..toS(concat(map,"/")),
|
"keymap="..toS(concat(map,"/")),
|
||||||
"VK="..toS(concat(vk,"/")),
|
"VK="..toS(concat(vk,"/")),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,11 @@ Future outlook:
|
|||||||
infinite 1v1
|
infinite 1v1
|
||||||
square mode
|
square mode
|
||||||
more FXs & 3d features & animations
|
more FXs & 3d features & animations
|
||||||
|
0.8.1:
|
||||||
|
more FX level
|
||||||
|
better battery info displaying
|
||||||
|
3 next in GMroll
|
||||||
|
bug fixed
|
||||||
0.8.0:
|
0.8.0:
|
||||||
remake text system
|
remake text system
|
||||||
more details
|
more details
|
||||||
|
|||||||
Reference in New Issue
Block a user