Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e1d92a166b | ||
|
|
99b55b72e0 |
BIN
BGM/hay what kind of feeling.ogg
Normal file
BIN
BGM/hay what kind of feeling.ogg
Normal file
Binary file not shown.
34
callback.lua
34
callback.lua
@@ -120,7 +120,7 @@ function keyDown.load(k)
|
||||
sceneTemp.skip=true
|
||||
end
|
||||
end
|
||||
function touchDown.load()
|
||||
function touchDown.load(id,x,y)
|
||||
if #tc.getTouches()==2 then
|
||||
sceneTemp.skip=true
|
||||
end
|
||||
@@ -669,17 +669,43 @@ function touchDown.help(id,x,y)
|
||||
sceneTemp.pw=pw
|
||||
end
|
||||
|
||||
function keyDown.staff(key)
|
||||
function keyDown.staff(key,RESET)
|
||||
if key=="escape"then
|
||||
SCN.back()
|
||||
elseif key=="\122"then
|
||||
if kb.isDown("\109")and kb.isDown("\114")then
|
||||
sceneTemp.v=-2.6
|
||||
if kb.isDown("\109")and kb.isDown("\114")or RESET then
|
||||
sceneTemp.ct=sceneTemp.ct+1
|
||||
if sceneTemp.ct==5 then
|
||||
TEXT.show("What are you up to?",640,200,40,"appear",.5)
|
||||
elseif sceneTemp.ct==10 then
|
||||
TEXT.show("Stop what you are doing.",640,200,40,"flicker",.5)
|
||||
elseif sceneTemp.ct==20 then
|
||||
TEXT.show("RESET ALL DATA?",640,200,40,"appear",.3,.2)
|
||||
elseif sceneTemp.ct==26 then
|
||||
local L=love.filesystem.getDirectoryItems("")
|
||||
for i=1,#L do
|
||||
local s=L[i]
|
||||
if s:sub(-4)==".dat"then
|
||||
love.filesystem.remove(s)
|
||||
end
|
||||
end
|
||||
SFX.play("lock")
|
||||
SFX.play("clear_4")
|
||||
SFX.play("finesseError_long")
|
||||
SCN.back()
|
||||
TEXT.clear()
|
||||
end
|
||||
sceneTemp.v=-6.26
|
||||
marking=nil
|
||||
SFX.play("reach")
|
||||
end
|
||||
end
|
||||
end
|
||||
function touchDown.staff(id,x,y)
|
||||
if #tc.getTouches()==5 then
|
||||
keyDown.staff('\122',true)
|
||||
end
|
||||
end
|
||||
|
||||
function wheelMoved.history(x,y)
|
||||
wheelScroll(y)
|
||||
|
||||
2
conf.lua
2
conf.lua
@@ -1,4 +1,4 @@
|
||||
gameVersion="Alpha V0.8.22"
|
||||
gameVersion="Alpha V0.8.24"
|
||||
function love.conf(t)
|
||||
t.identity="Techmino"--folder name
|
||||
t.version="11.1"
|
||||
|
||||
BIN
image/skin/brick(notypey).png
Normal file
BIN
image/skin/brick(notypey).png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
image/skin/classic(_).png
Normal file
BIN
image/skin/classic(_).png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
BIN
image/skin/paper(mrz).png
Normal file
BIN
image/skin/paper(mrz).png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
84
main.lua
84
main.lua
@@ -82,4 +82,86 @@ if setting.fullscreen then love.window.setFullscreen(true)end
|
||||
if fs.getInfo("unlock.dat")then FILE.loadUnlock()end
|
||||
if fs.getInfo("data.dat")then FILE.loadData()end
|
||||
if fs.getInfo("key.dat")then FILE.loadKeyMap()end
|
||||
if fs.getInfo("virtualkey.dat")then FILE.loadVK()end
|
||||
if fs.getInfo("virtualkey.dat")then FILE.loadVK()end
|
||||
|
||||
--update data file
|
||||
S=stat
|
||||
if not S.version or S.version=="Alpha V0.8.15"then
|
||||
S.clear_S={S.clear_1,S.clear_2,S.clear_3,S.clear_4}
|
||||
S.clear={{},{},{},{},{},{},{}}
|
||||
local A,B,C,D=int(S.clear_1/7),int(S.clear_2/7),int(S.clear_3/7),S.clear_4
|
||||
for i=1,7 do
|
||||
S.clear[i][1]=A
|
||||
S.clear[i][2]=B
|
||||
S.clear[i][3]=C
|
||||
S.clear[i][4]=0
|
||||
end
|
||||
S.clear[7][4]=D
|
||||
for i=1,S.clear_1%7 do S.clear[i][1]=S.clear[i][1]+1 end
|
||||
for i=1,S.clear_2%7 do S.clear[i][2]=S.clear[i][2]+1 end
|
||||
for i=1,S.clear_3%7 do S.clear[i][3]=S.clear[i][3]+1 end
|
||||
S.clear_B={}
|
||||
for i=1,7 do
|
||||
S.clear_B[i]=S.clear[i][1]+S.clear[i][2]+S.clear[i][3]+S.clear[i][4]
|
||||
end
|
||||
|
||||
S.spin_S={S.spin_0,S.spin_1,S.spin_2,S.spin_3}
|
||||
S.spin={{},{},{},{},{},{},{}}
|
||||
A,B,C,D=int(S.spin_0/7),int(S.spin_1/7),int(S.spin_2/7),int(S.spin_3/7)
|
||||
for i=1,7 do
|
||||
S.spin[i][1]=A
|
||||
S.spin[i][2]=B
|
||||
S.spin[i][3]=C
|
||||
S.spin[i][4]=D
|
||||
end
|
||||
for i=1,S.spin_0%7 do S.spin[i][1]=S.spin[i][1]+1 end
|
||||
for i=1,S.spin_1%7 do S.spin[i][2]=S.spin[i][2]+1 end
|
||||
for i=1,S.spin_2%7 do S.spin[i][3]=S.spin[i][3]+1 end
|
||||
for i=1,S.spin_3%7 do S.spin[i][4]=S.spin[i][4]+1 end
|
||||
S.spin_B={}
|
||||
for i=1,7 do
|
||||
S.spin_B[i]=S.spin[i][1]+S.spin[i][2]+S.spin[i][3]+S.spin[i][4]
|
||||
end
|
||||
|
||||
S.hpc=S.c
|
||||
elseif S.version=="Alpha V0.8.16"then
|
||||
for i=1,6 do
|
||||
S.clear[7][4]=S.clear[7][4]+S.clear[i][4]
|
||||
S.clear[i][4]=0
|
||||
end
|
||||
end
|
||||
if not S.clear_B[8]then
|
||||
for i=1,7 do
|
||||
S.clear[i][5]=0
|
||||
S.spin[i][5]=0
|
||||
end
|
||||
for i=8,25 do
|
||||
S.clear[i]={0,0,0,0,0}
|
||||
S.spin[i]={0,0,0,0,0}
|
||||
S.spin_B[i]=0
|
||||
S.clear_B[i]=0
|
||||
end
|
||||
S.spin_S[5]=0
|
||||
S.clear_S[5]=0
|
||||
end
|
||||
if S.version=="Alpha V0.8.18"or S.version=="Alpha V0.8.19"then
|
||||
S.clear[3],S.clear[4]=S.clear[4],S.clear[3]
|
||||
S.spin[3],S.spin[4]=S.spin[4],S.spin[3]
|
||||
S.clear_B[3],S.clear_B[4]=S.clear_B[4],S.clear_B[3]
|
||||
S.spin_B[3],S.spin_B[4]=S.spin_B[4],S.spin_B[3]
|
||||
end
|
||||
if S.version=="Alpha V0.8.22"then
|
||||
S.off=S.recv-S.pend
|
||||
end
|
||||
while #modeRanks>73 do
|
||||
table.remove(modeRanks)
|
||||
end
|
||||
if modeRanks[73]==6 then modeRanks[73]=0 end
|
||||
if setting.skin[10]==5 then
|
||||
setting.skin[10],setting.skin[11]=1,5
|
||||
end
|
||||
if S.version~=gameVersion then
|
||||
S.version=gameVersion
|
||||
TEXT.show(text.newVersion,640,200,30,"fly",.3)
|
||||
end
|
||||
S=nil
|
||||
@@ -9,7 +9,7 @@ return{
|
||||
local D=P.modeData
|
||||
D.counter=D.counter+1
|
||||
if D.counter>=max(30,80-.3*D.event)then
|
||||
P:garbageRise(11+D.event%3,1,rnd(10))
|
||||
P:garbageRise(13+D.event%5,1,rnd(10))
|
||||
P.stat.recv=P.stat.recv+1
|
||||
D.counter=0
|
||||
D.event=D.event+1
|
||||
|
||||
@@ -25,7 +25,7 @@ return{
|
||||
end,
|
||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||
scoreDisp=function(D)return toTime(D[1]).." "..D[2].." Pieces"end,
|
||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
comp=function(a,b)return a[2]>b[2]or a[2]==b[2]and a[1]<b[1]end,
|
||||
getRank=function(P)
|
||||
local T=P.stat.row
|
||||
if T<5 then
|
||||
|
||||
@@ -418,7 +418,7 @@ function Pnt.play()
|
||||
gc.origin()
|
||||
if restartCount>0 then
|
||||
gc.setColor(0,0,0,restartCount*.05)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.rectangle("fill",0,0,scr.w*scr.dpi,scr.h*scr.dpi)
|
||||
end
|
||||
if game.warnLVL>0 then
|
||||
gc.setColor(0,0,0,0)
|
||||
@@ -443,7 +443,7 @@ function Pnt.pause()
|
||||
gc.setColor(.15,.15,.15,_)
|
||||
gc.push("transform")
|
||||
gc.origin()
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.rectangle("fill",0,0,scr.w*scr.dpi,scr.h*scr.dpi)
|
||||
gc.pop()
|
||||
|
||||
--Pause Info
|
||||
@@ -692,7 +692,6 @@ end
|
||||
function Pnt.staff()
|
||||
local L=text.staff
|
||||
local t=sceneTemp.time
|
||||
if t>45 then t=45 end
|
||||
if t>0 then
|
||||
setFont(40)
|
||||
for i=1,#L do
|
||||
|
||||
@@ -10,6 +10,7 @@ BGM.list={
|
||||
"secret7th","secret8th",
|
||||
"shining terminal","oxygen","distortion","far",
|
||||
"rockblock","cruelty","final","8-bit happiness","end",
|
||||
"hay what kind of feeling",
|
||||
}
|
||||
BGM.len=#BGM.list
|
||||
function BGM.loadOne(N)
|
||||
|
||||
@@ -11,7 +11,7 @@ local s={
|
||||
autoPause=true,
|
||||
lang=1,
|
||||
skinSet=1,
|
||||
skin={1,5,8,2,10,3,7,1,5,5,1,8,2,10,3,7,10,7,8,2,8,2,1,5,3},
|
||||
skin={1,5,8,2,10,3,7,1,5,1,5,8,2,10,3,7,10,7,8,2,8,2,1,5,3},
|
||||
face={},
|
||||
|
||||
--graphic
|
||||
@@ -58,7 +58,8 @@ s={
|
||||
key=0,rotate=0,hold=0,
|
||||
extraPiece=0,extraRate=0,
|
||||
piece=0,row=0,dig=0,
|
||||
atk=0,digatk=0,send=0,recv=0,pend=0,
|
||||
atk=0,digatk=0,
|
||||
send=0,recv=0,pend=0,off=0,
|
||||
clear={},clear_B={},clear_S={0,0,0,0,0},
|
||||
spin={},spin_B={},spin_S={0,0,0,0,0},
|
||||
pc=0,hpc=0,b2b=0,b3b=0,score=0,
|
||||
|
||||
@@ -136,79 +136,6 @@ function File.loadData()
|
||||
if s then
|
||||
setfenv(s,{})
|
||||
local S=s()
|
||||
if not S.version or S.version=="Alpha V0.8.15"then
|
||||
S.clear_S={S.clear_1,S.clear_2,S.clear_3,S.clear_4}
|
||||
S.clear={{},{},{},{},{},{},{}}
|
||||
local A,B,C,D=int(S.clear_1/7),int(S.clear_2/7),int(S.clear_3/7),S.clear_4
|
||||
for i=1,7 do
|
||||
S.clear[i][1]=A
|
||||
S.clear[i][2]=B
|
||||
S.clear[i][3]=C
|
||||
S.clear[i][4]=0
|
||||
end
|
||||
S.clear[7][4]=D
|
||||
for i=1,S.clear_1%7 do S.clear[i][1]=S.clear[i][1]+1 end
|
||||
for i=1,S.clear_2%7 do S.clear[i][2]=S.clear[i][2]+1 end
|
||||
for i=1,S.clear_3%7 do S.clear[i][3]=S.clear[i][3]+1 end
|
||||
S.clear_B={}
|
||||
for i=1,7 do
|
||||
S.clear_B[i]=S.clear[i][1]+S.clear[i][2]+S.clear[i][3]+S.clear[i][4]
|
||||
end
|
||||
|
||||
S.spin_S={S.spin_0,S.spin_1,S.spin_2,S.spin_3}
|
||||
S.spin={{},{},{},{},{},{},{}}
|
||||
A,B,C,D=int(S.spin_0/7),int(S.spin_1/7),int(S.spin_2/7),int(S.spin_3/7)
|
||||
for i=1,7 do
|
||||
S.spin[i][1]=A
|
||||
S.spin[i][2]=B
|
||||
S.spin[i][3]=C
|
||||
S.spin[i][4]=D
|
||||
end
|
||||
for i=1,S.spin_0%7 do S.spin[i][1]=S.spin[i][1]+1 end
|
||||
for i=1,S.spin_1%7 do S.spin[i][2]=S.spin[i][2]+1 end
|
||||
for i=1,S.spin_2%7 do S.spin[i][3]=S.spin[i][3]+1 end
|
||||
for i=1,S.spin_3%7 do S.spin[i][4]=S.spin[i][4]+1 end
|
||||
S.spin_B={}
|
||||
for i=1,7 do
|
||||
S.spin_B[i]=S.spin[i][1]+S.spin[i][2]+S.spin[i][3]+S.spin[i][4]
|
||||
end
|
||||
|
||||
S.hpc=S.c
|
||||
elseif S.version=="Alpha V0.8.16"then
|
||||
for i=1,6 do
|
||||
S.clear[7][4]=S.clear[7][4]+S.clear[i][4]
|
||||
S.clear[i][4]=0
|
||||
end
|
||||
end
|
||||
if not S.clear_B[8]then
|
||||
for i=1,7 do
|
||||
S.clear[i][5]=0
|
||||
S.spin[i][5]=0
|
||||
end
|
||||
for i=8,25 do
|
||||
S.clear[i]={0,0,0,0,0}
|
||||
S.spin[i]={0,0,0,0,0}
|
||||
S.spin_B[i]=0
|
||||
S.clear_B[i]=0
|
||||
end
|
||||
S.spin_S[5]=0
|
||||
S.clear_S[5]=0
|
||||
end
|
||||
if S.version=="Alpha V0.8.18"or S.version=="Alpha V0.8.19"then
|
||||
S.clear[3],S.clear[4]=S.clear[4],S.clear[3]
|
||||
S.spin[3],S.spin[4]=S.spin[4],S.spin[3]
|
||||
S.clear_B[3],S.clear_B[4]=S.clear_B[4],S.clear_B[3]
|
||||
S.spin_B[3],S.spin_B[4]=S.spin_B[4],S.spin_B[3]
|
||||
end
|
||||
if #modeRanks==76 then
|
||||
for i=1,4 do
|
||||
table.remove(modeRanks)
|
||||
end
|
||||
end
|
||||
if S.version~=gameVersion then
|
||||
S.version=gameVersion
|
||||
TEXT.show(text.newVersion,640,200,30,"fly",.3)
|
||||
end
|
||||
addToTable(S,stat)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -63,9 +63,9 @@ local OspinList={
|
||||
{323,6,0,-1,-1,2},{332,6,0,-2,-1,2},{322,6,0,-1,-2,2},--O
|
||||
}--{key,id,dir,dx,dy,freeLv(0=unmovable,1=L/R unmovable,2=free)}
|
||||
local XspinList={
|
||||
{{ 1,-1},{ 1, 0},{ 1, 1}},
|
||||
{{ 0,-1},{ 0,-2},{ 0, 1}},
|
||||
{{-1,-1},{-1, 0},{-1, 1}},
|
||||
{{ 1,-1},{ 1, 0},{ 1, 1},{ 1,-2},{ 1, 2}},
|
||||
{{ 0,-1},{ 0,-2},{ 0, 1},{ 0,-2},{ 0, 2}},
|
||||
{{-1,-1},{-1, 0},{-1, 1},{-1,-2},{-1, 2}},
|
||||
}
|
||||
local TRS={
|
||||
{
|
||||
@@ -181,8 +181,8 @@ local TRS={
|
||||
[20]={{ 1, 0},{ 0, 1},{ 0,-1}},
|
||||
[13]={{ 1, 0},{ 0, 1},{-1, 0}},
|
||||
[31]={{-1, 0},{ 0,-1},{ 1, 0}},
|
||||
},--Q
|
||||
{},--P
|
||||
},--P
|
||||
{},--Q
|
||||
{
|
||||
[01]={{-1, 0},{ 1, 0},{-1, 1},{ 0,-2},{ 0,-3}},
|
||||
[10]={{ 1, 0},{ 1,-1},{-1, 0},{ 0, 2},{ 0, 3}},
|
||||
@@ -291,8 +291,8 @@ local TRS={
|
||||
[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}},
|
||||
[32]={{-1, 0},{ 0,-1},{-1, 1},{-1,-1},{ 1, 0},{ 0, 2},{-1, 2},{ 0,-2}},
|
||||
[23]={{ 1, 0},{ 0, 1},{ 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}},
|
||||
|
||||
@@ -155,11 +155,11 @@ local langList={
|
||||
"",
|
||||
"使用LOVE2D引擎",
|
||||
"",
|
||||
"程序:MrZ, (FinnTenzor)",
|
||||
"程序:MrZ, FinnTenzor",
|
||||
"美术:MrZ, (Gnyar)",
|
||||
"音乐:MrZ, (T0722)",
|
||||
"音效:MrZ",
|
||||
"语音:Miya, (MrZ)",
|
||||
"语音:Miya, MrZ",
|
||||
"",
|
||||
"特别感谢:",
|
||||
"Flyz, Farter, 蕴空之灵,",
|
||||
@@ -580,11 +580,11 @@ local langList={
|
||||
"",
|
||||
"使用LOVE2D引擎",
|
||||
"",
|
||||
"程序:MrZ, (FinnTenzor)",
|
||||
"程序:MrZ, FinnTenzor",
|
||||
"美术:MrZ, (Gnyar)",
|
||||
"音乐:MrZ, (T0722)",
|
||||
"音效:MrZ",
|
||||
"语音:Miya, (MrZ)",
|
||||
"语音:Miya, MrZ",
|
||||
"",
|
||||
"特别感谢:",
|
||||
"Flyz, Farter, 蕴空之灵,",
|
||||
@@ -1002,13 +1002,13 @@ local langList={
|
||||
"",
|
||||
"Powered by LOVE2D",
|
||||
"",
|
||||
"Program: MrZ, (FinnTenzor)",
|
||||
"Program: MrZ, FinnTenzor",
|
||||
"Art: MrZ, (Gnyar)",
|
||||
"Music: MrZ, (T0722)",
|
||||
"Sound: MrZ",
|
||||
"Voice: Miya, (MrZ)",
|
||||
"Voice: Miya, MrZ",
|
||||
"",
|
||||
"Secial Thanks:",
|
||||
"Special Thanks:",
|
||||
"Flyz, Farter, 蕴空之灵,",
|
||||
"Teatube, [All test staff]",
|
||||
},
|
||||
@@ -1416,13 +1416,13 @@ local langList={
|
||||
"",
|
||||
"Powered by LOVE2D",
|
||||
"",
|
||||
"Program: MrZ, (FinnTenzor)",
|
||||
"Program: MrZ, FinnTenzor",
|
||||
"Art: MrZ, (Gnyar)",
|
||||
"Music: MrZ, (T0722)",
|
||||
"Sound: MrZ",
|
||||
"Voice: Miya, (MrZ)",
|
||||
"Voice: Miya, MrZ",
|
||||
"",
|
||||
"Secial Thanks:",
|
||||
"Special Thanks:",
|
||||
"Flyz, Farter, 蕴空之灵,",
|
||||
"Teatube, [All test staff]",
|
||||
},
|
||||
|
||||
@@ -15,6 +15,9 @@ local list={
|
||||
"steel(kulumi)",
|
||||
"pure(mrz)",
|
||||
"ball(shaw)",
|
||||
"paper(mrz)",
|
||||
"classic(_)",
|
||||
"brick(notypey)",
|
||||
"text_bone(mrz)",
|
||||
"colored_bone(mrz)",
|
||||
"white_bone(mrz)",
|
||||
|
||||
40
player.lua
40
player.lua
@@ -957,7 +957,8 @@ local function getNewStatTable()
|
||||
key=0,rotate=0,hold=0,
|
||||
extraPiece=0,extraRate=0,
|
||||
piece=0,row=0,dig=0,
|
||||
atk=0,digatk=0,send=0,recv=0,pend=0,
|
||||
atk=0,digatk=0,
|
||||
send=0,recv=0,pend=0,off=0,
|
||||
clear={},clear_B={},clear_S={0,0,0,0,0},
|
||||
spin={},spin_B={},spin_S={0,0,0,0,0},
|
||||
pc=0,hpc=0,b2b=0,b3b=0,
|
||||
@@ -1337,11 +1338,12 @@ function player.drop(P)--Place piece
|
||||
local STAT=P.stat
|
||||
local clear--if (perfect)clear
|
||||
local cc,gbcc=0,0--row/garbage-row cleared,full-part
|
||||
local atk,send=0,0--Send&Send Time
|
||||
local exblock=0--extra defense
|
||||
local cscore,sendTime=0,0
|
||||
local atk,exblock=0,0--attack & extra defense
|
||||
local send,off=0,0--sending lines remain & offset
|
||||
local cscore,sendTime=0,0--score & send Time
|
||||
local dospin=0
|
||||
local mini
|
||||
|
||||
--spin check
|
||||
if P.spinLast then
|
||||
if P.cur.id<6 then
|
||||
@@ -1470,8 +1472,7 @@ function player.drop(P)--Place piece
|
||||
if not finesse then--finesse: control
|
||||
if dospin then P.ctrlCount=P.ctrlCount-2 end--allow 2 more step for roof-less spin
|
||||
local id=P.cur.id
|
||||
local dir=P.dir+1
|
||||
local d=P.ctrlCount-finesseList[id][dir][P.curX]
|
||||
local d=P.ctrlCount-finesseList[id][P.dir+1][P.curX]
|
||||
if d>=2 then P:fineError(2)
|
||||
elseif d>0 then P:fineError(d)
|
||||
end--not finesse
|
||||
@@ -1595,7 +1596,7 @@ function player.drop(P)--Place piece
|
||||
sendTime=sendTime+25*cmb
|
||||
if cmb>1 then
|
||||
atk=atk+(gbcc>0 and(DigComboAtk[cmb]or 5)or(WidComboAtk[cmb]or 2))
|
||||
P:showText(text.cmb[min(cmb,20)],0,25,15+min(cmb,25)*3,cmb<10 and"appear"or"flicker")
|
||||
P:showText(text.cmb[min(cmb,21)],0,25,15+min(cmb,25)*3,cmb<10 and"appear"or"flicker")
|
||||
cscore=cscore+min(20*cmb,300)*cc
|
||||
end
|
||||
|
||||
@@ -1614,6 +1615,7 @@ function player.drop(P)--Place piece
|
||||
if exblock then exblock=int(exblock*(1+P.strength*.25))end
|
||||
send=int(send*(1+P.strength*.25))
|
||||
--Badge Buff
|
||||
|
||||
if send>0 then
|
||||
P:showText(send,0,80,35,"zoomout")
|
||||
if exblock>0 then
|
||||
@@ -1631,12 +1633,15 @@ function player.drop(P)--Place piece
|
||||
if not A then goto E end
|
||||
until not A.sent
|
||||
if send>=A.amount then
|
||||
send=send-A.amount
|
||||
P.atkBuffer.sum=P.atkBuffer.sum-A.amount
|
||||
local O=A.amount--cur Offset
|
||||
send=send-O
|
||||
P.atkBuffer.sum=P.atkBuffer.sum-O
|
||||
off=off+O
|
||||
A.sent,A.time=true,0
|
||||
if send>0 then goto R end
|
||||
else
|
||||
A.amount=A.amount-send
|
||||
off=off+send
|
||||
P.atkBuffer.sum=P.atkBuffer.sum-send
|
||||
send=0
|
||||
end
|
||||
@@ -1718,6 +1723,9 @@ function player.drop(P)--Place piece
|
||||
if send>0 then
|
||||
STAT.send=STAT.send+int(send)
|
||||
end
|
||||
if off>0 then
|
||||
STAT.off=STAT.off+off
|
||||
end
|
||||
end
|
||||
if gbcc>0 then
|
||||
STAT.dig=STAT.dig+gbcc
|
||||
@@ -1875,7 +1883,6 @@ function player.lose(P)
|
||||
if modeEnv.royaleMode then
|
||||
P:changeAtk()
|
||||
P.modeData.event=#players.alive+1
|
||||
P:showTextF(P.modeData.event,0,-120,60,"appear",1,12)
|
||||
P.strength=0
|
||||
if P.lastRecv then
|
||||
local A,i=P,0
|
||||
@@ -1901,6 +1908,7 @@ function player.lose(P)
|
||||
else
|
||||
P.badge=-1
|
||||
end
|
||||
|
||||
freshMostDangerous()
|
||||
for i=1,#players.alive do
|
||||
if players.alive[i].atking==P then
|
||||
@@ -1910,14 +1918,21 @@ function player.lose(P)
|
||||
if #players.alive==royaleData.stage[game.stage]then
|
||||
royaleLevelup()
|
||||
end
|
||||
P:showTextF(P.modeData.event,0,120,60,"appear",.26,.9)
|
||||
end
|
||||
P.gameEnv.keepVisible=P.gameEnv.visible~="show"
|
||||
P:showTextF(text.lose,0,0,90,"appear",.5,.2)
|
||||
P:showTextF(text.lose,0,0,90,"appear",.26,.9)
|
||||
if P.human then
|
||||
game.result="lose"
|
||||
SFX.play("fail")
|
||||
VOC.play("lose")
|
||||
if modeEnv.royaleMode then BGM.play("end")end
|
||||
if modeEnv.royaleMode then
|
||||
if P.modeData.event==2 then
|
||||
BGM.play("hay what kind of feeling")
|
||||
else
|
||||
BGM.play("end")
|
||||
end
|
||||
end
|
||||
gameOver()
|
||||
TASK.new(#players>1 and tickEvent.lose or tickEvent.finish,P)
|
||||
end
|
||||
@@ -2208,7 +2223,6 @@ local function newEmptyPlayer(id,x,y,size)
|
||||
for k,v in next,player do P[k]=v end
|
||||
|
||||
P.small=false
|
||||
P.keyRec=false--if calculate keySpeed
|
||||
P.life=0
|
||||
P.alive=true
|
||||
P.control=false
|
||||
|
||||
13
scene.lua
13
scene.lua
@@ -123,8 +123,8 @@ function sceneInit.pause(org)
|
||||
|
||||
--from right-down, 60 degree each
|
||||
radar={
|
||||
(S.recv-S.pend+S.dig)/S.time*60,--DefPM
|
||||
(S.recv-S.pend)/S.time*60, --OffPM
|
||||
(S.off+S.dig)/S.time*60,--DefPM
|
||||
(S.off)/S.time*60, --OffPM
|
||||
S.atk/S.time*60, --AtkPM
|
||||
S.send/S.time*60, --SendPM
|
||||
S.piece/S.time*24, --LinePM
|
||||
@@ -214,6 +214,7 @@ function sceneInit.staff()
|
||||
sceneTemp={
|
||||
time=0,
|
||||
v=1,
|
||||
ct=0,
|
||||
}
|
||||
BG.set("space")
|
||||
end
|
||||
@@ -231,7 +232,7 @@ function sceneInit.stat()
|
||||
toTime(S.time),
|
||||
S.key.." "..S.rotate.." "..S.hold,
|
||||
S.piece.." "..S.row.." "..int(S.atk),
|
||||
S.recv.." "..(S.recv-S.pend).." "..S.pend,
|
||||
S.recv.." "..S.off.." "..S.pend,
|
||||
S.dig.." "..int(S.digatk),
|
||||
format("%.2f %.2f",S.atk/S.row,S.digatk/S.dig),
|
||||
format("%d/%.3f%%",S.extraPiece,100*max(1-S.extraRate/S.piece,0)),
|
||||
@@ -259,17 +260,17 @@ local swap={
|
||||
fade={30,15,function(t)
|
||||
local t=t>15 and 2-t/15 or t/15
|
||||
gc.setColor(0,0,0,t)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.rectangle("fill",0,0,scr.w*scr.dpi,scr.h*scr.dpi)
|
||||
end},
|
||||
fade_togame={120,20,function(t)
|
||||
local t=t>20 and (120-t)/100 or t/20
|
||||
gc.setColor(0,0,0,t)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.rectangle("fill",0,0,scr.w*scr.dpi,scr.h*scr.dpi)
|
||||
end},
|
||||
slowFade={180,90,function(t)
|
||||
local t=t>90 and 2-t/90 or t/90
|
||||
gc.setColor(0,0,0,t)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.rectangle("fill",0,0,scr.w*scr.dpi,scr.h*scr.dpi)
|
||||
end},
|
||||
}--Scene swapping animations
|
||||
local backFunc={
|
||||
|
||||
@@ -319,5 +319,10 @@ function Tmr.staff(dt)
|
||||
S.v=S.v-.26
|
||||
end
|
||||
S.time=S.time+S.v*dt
|
||||
if S.time>45 then
|
||||
S.time=45
|
||||
elseif S.time<-10 then
|
||||
S.time=-10
|
||||
end
|
||||
end
|
||||
return Tmr
|
||||
@@ -6,6 +6,7 @@ local S=[=[
|
||||
弥佑瑶
|
||||
Alan
|
||||
幽灵3383
|
||||
靏鸖龘龘
|
||||
[rmb10+]:
|
||||
八零哥
|
||||
蕴空之灵
|
||||
@@ -16,6 +17,7 @@ local S=[=[
|
||||
金巧
|
||||
10元
|
||||
立斐
|
||||
Deep_Sea
|
||||
时雪
|
||||
yyangdid
|
||||
sfqr
|
||||
@@ -44,15 +46,17 @@ local S=[=[
|
||||
TCV100
|
||||
tech有养成系统了@7065
|
||||
HAGE KANOBU
|
||||
闪电和拐棍
|
||||
葡萄味的曼妥思
|
||||
(闪电和拐棍)
|
||||
(D*a)
|
||||
世界沃德
|
||||
蓝绿
|
||||
|
||||
Thanks!!!
|
||||
|
||||
Future outlook:
|
||||
New mode:
|
||||
tutorial
|
||||
game tutorial
|
||||
finesse tutorial
|
||||
game Abbr. test
|
||||
backfire
|
||||
finesse exam(3next, 1pt/mino, drop to score)
|
||||
@@ -65,10 +69,10 @@ Future outlook:
|
||||
task survival
|
||||
dig practice
|
||||
dig zen
|
||||
symmetry
|
||||
hidden mode: sound only
|
||||
sprint_symmetry
|
||||
hidden: sound only
|
||||
reverb mode (often repeat a piece many times)
|
||||
4 keys limit per piece
|
||||
KPP-locked mode
|
||||
Other:
|
||||
mod system with:
|
||||
block hidden
|
||||
@@ -78,7 +82,12 @@ Future outlook:
|
||||
next hidden
|
||||
field flip(LR/UD)
|
||||
no fail(∞ lives)
|
||||
mini games:
|
||||
15 puzzle
|
||||
mine sweeper
|
||||
2048
|
||||
简易防沉迷系统
|
||||
next SFX
|
||||
better drop FX
|
||||
60+ fps supporting
|
||||
in-game document
|
||||
@@ -94,6 +103,25 @@ Future outlook:
|
||||
network game
|
||||
new AI: task-Z
|
||||
|
||||
0.8.24: Bug Fixed
|
||||
new:
|
||||
ready to refuse auto-formating stats. if update from versions too old
|
||||
changed:
|
||||
little changing of pentomini wallkicks
|
||||
fixed:
|
||||
incorrect color of P/Q
|
||||
rank of petomino may be [custom]
|
||||
0.8.23: Details Update
|
||||
new:
|
||||
new hidden BGM: Hay what kind of feeling
|
||||
now can reset all data (hidden)
|
||||
changed:
|
||||
add a stat "offset", used to avoid strange radar chart in Attack Mode, show in total stat page only
|
||||
6 more X-spin-wallkick added
|
||||
fixed:
|
||||
speed dial do not moving
|
||||
do not show 20+ combo
|
||||
|
||||
0.8.22: Shader Update
|
||||
new:
|
||||
new background: aura (using shader)
|
||||
@@ -394,7 +422,7 @@ Future outlook:
|
||||
fixed:
|
||||
many bugs
|
||||
|
||||
0.8.4: Miya Update+
|
||||
0.8.4: Miya Update II
|
||||
changed:
|
||||
vocal more natural(important, may cause new bug)
|
||||
a bit better performence on mobile devices
|
||||
|
||||
Reference in New Issue
Block a user