Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1641440886 |
Binary file not shown.
BIN
BGM/blank.ogg
BIN
BGM/blank.ogg
Binary file not shown.
BIN
BGM/cruelty.ogg
BIN
BGM/cruelty.ogg
Binary file not shown.
BIN
BGM/end.ogg
BIN
BGM/end.ogg
Binary file not shown.
BIN
BGM/final.ogg
BIN
BGM/final.ogg
Binary file not shown.
BIN
BGM/infinite.ogg
BIN
BGM/infinite.ogg
Binary file not shown.
BIN
BGM/newera.ogg
BIN
BGM/newera.ogg
Binary file not shown.
BIN
BGM/push.ogg
BIN
BGM/push.ogg
Binary file not shown.
BIN
BGM/race.ogg
BIN
BGM/race.ogg
Binary file not shown.
BIN
BGM/reason.ogg
BIN
BGM/reason.ogg
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
BGM/way.ogg
BIN
BGM/way.ogg
Binary file not shown.
@@ -108,7 +108,6 @@ function switch:draw()
|
|||||||
--frame
|
--frame
|
||||||
local t=self.text
|
local t=self.text
|
||||||
if t then
|
if t then
|
||||||
if type(t)=="function"then t=t()end
|
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
setFont(self.font)
|
setFont(self.font)
|
||||||
gc.printf(t,x-412,y+20-self.font*.7,400,"right")
|
gc.printf(t,x-412,y+20-self.font*.7,400,"right")
|
||||||
|
|||||||
4
conf.lua
4
conf.lua
@@ -1,5 +1,5 @@
|
|||||||
math.randomseed(os.time())
|
math.randomseed(os.time())
|
||||||
gameVersion="Alpha V0.7.30"
|
gameVersion="Alpha V0.7.31+"
|
||||||
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"
|
||||||
@@ -23,7 +23,7 @@ function love.conf(t)
|
|||||||
W.resizable=1
|
W.resizable=1
|
||||||
W.fullscreentype="desktop"--"exclusive"
|
W.fullscreentype="desktop"--"exclusive"
|
||||||
W.fullscreen=X
|
W.fullscreen=X
|
||||||
W.vsync=X--0→∞fps
|
W.vsync=0--0→∞fps
|
||||||
W.msaa=X--The number of samples to use with multi-sampled antialiasing (number)
|
W.msaa=X--The number of samples to use with multi-sampled antialiasing (number)
|
||||||
W.depth=X--Bits per sample in the depth buffer
|
W.depth=X--Bits per sample in the depth buffer
|
||||||
W.stencil=1--The number of bits per sample in the stencil buffer
|
W.stencil=1--The number of bits per sample in the stencil buffer
|
||||||
|
|||||||
872
dataList.lua
872
dataList.lua
@@ -532,7 +532,9 @@ end
|
|||||||
function Event.classic_reach(P)
|
function Event.classic_reach(P)
|
||||||
if P.stat.row>=P.gameEnv.target then
|
if P.stat.row>=P.gameEnv.target then
|
||||||
P.gameEnv.target=P.gameEnv.target+10
|
P.gameEnv.target=P.gameEnv.target+10
|
||||||
if P.gameEnv.target==100 then
|
if P.gameEnv.target==110 then
|
||||||
|
P.gameEnv.drop,P.gameEnv.lock=2,2
|
||||||
|
elseif P.gameEnv.target==210 then
|
||||||
P.gameEnv.drop,P.gameEnv.lock=1,1
|
P.gameEnv.drop,P.gameEnv.lock=1,1
|
||||||
end
|
end
|
||||||
SFX("reach")
|
SFX("reach")
|
||||||
@@ -561,6 +563,7 @@ function Event.GM_reach(P)
|
|||||||
if R==4 then R=10 end
|
if R==4 then R=10 end
|
||||||
P.modeData.point=P.modeData.point+R
|
P.modeData.point=P.modeData.point+R
|
||||||
if P.stat.time>=53.5 then
|
if P.stat.time>=53.5 then
|
||||||
|
P.modeData.point=P.modeData.point+15
|
||||||
Event.win(P)
|
Event.win(P)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -949,7 +952,7 @@ function Event_task.PC(P)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
function Event_task.bgmFadeOut(_,id)
|
function Event_task.bgmFadeOut(_,id)
|
||||||
local v=bgm[id]:getVolume()-.025*setting.bgm*.125
|
local v=bgm[id]:getVolume()-.025*setting.bgm*.1
|
||||||
bgm[id]:setVolume(v>0 and v or 0)
|
bgm[id]:setVolume(v>0 and v or 0)
|
||||||
if v<=0 then
|
if v<=0 then
|
||||||
bgm[id]:stop()
|
bgm[id]:stop()
|
||||||
@@ -957,9 +960,9 @@ function Event_task.bgmFadeOut(_,id)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
function Event_task.bgmFadeIn(_,id)
|
function Event_task.bgmFadeIn(_,id)
|
||||||
local v=min(bgm[id]:getVolume()+.025*setting.bgm*.125,setting.bgm*.125)
|
local v=min(bgm[id]:getVolume()+.025*setting.bgm*.1,setting.bgm*.1)
|
||||||
bgm[id]:setVolume(v)
|
bgm[id]:setVolume(v)
|
||||||
if v>=setting.bgm*.125 then return true end
|
if v>=setting.bgm*.1 then return true end
|
||||||
end
|
end
|
||||||
-------------------------</Tasks>-------------------------
|
-------------------------</Tasks>-------------------------
|
||||||
|
|
||||||
@@ -981,458 +984,457 @@ local Fkey_func={
|
|||||||
P.modeData.event=1-P.modeData.event
|
P.modeData.event=1-P.modeData.event
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
defaultModeEnv={
|
defModeEnv={}
|
||||||
sprint={
|
defModeEnv.sprint={
|
||||||
{
|
{
|
||||||
drop=60,lock=60,
|
drop=60,lock=60,
|
||||||
target=10,dropPiece="reach_winCheck",
|
target=10,dropPiece="reach_winCheck",
|
||||||
bg="strap",bgm="race",
|
bg="strap",bgm="race",
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=60,lock=60,
|
|
||||||
target=20,dropPiece="reach_winCheck",
|
|
||||||
bg="strap",bgm="race",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=60,lock=60,
|
|
||||||
target=40,dropPiece="reach_winCheck",
|
|
||||||
bg="strap",bgm="race",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=60,lock=60,
|
|
||||||
target=100,dropPiece="reach_winCheck",
|
|
||||||
bg="strap",bgm="race",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=60,lock=60,
|
|
||||||
target=400,dropPiece="reach_winCheck",
|
|
||||||
bg="strap",bgm="push",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=60,lock=60,
|
|
||||||
target=1000,dropPiece="reach_winCheck",
|
|
||||||
bg="strap",bgm="push",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
marathon={
|
{
|
||||||
{
|
drop=60,lock=60,
|
||||||
drop=60,lock=60,fall=30,
|
target=20,dropPiece="reach_winCheck",
|
||||||
target=200,dropPiece="reach_winCheck",
|
bg="strap",bgm="race",
|
||||||
bg="strap",bgm="way",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=60,fall=20,
|
|
||||||
target=10,dropPiece="marathon_update",
|
|
||||||
bg="strap",bgm="way",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
_20G=true,fall=15,
|
|
||||||
target=200,dropPiece="reach_winCheck",
|
|
||||||
bg="strap",bgm="race",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
master={
|
{
|
||||||
{
|
drop=60,lock=60,
|
||||||
_20G=true,lock=rush_lock[1],
|
target=40,dropPiece="reach_winCheck",
|
||||||
wait=rush_wait[1],
|
bg="strap",bgm="race",
|
||||||
fall=rush_fall[1],
|
|
||||||
dropPiece="master_score",
|
|
||||||
das=9,arr=3,
|
|
||||||
freshLimit=15,
|
|
||||||
bg="strap",bgm="secret8th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
_20G=true,lock=death_lock[1],
|
|
||||||
wait=death_wait[1],
|
|
||||||
fall=death_fall[1],
|
|
||||||
dropPiece="master_score",
|
|
||||||
das=6,arr=1,
|
|
||||||
freshLimit=15,
|
|
||||||
bg="game2",bgm="secret7th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
_20G=true,lock=12,
|
|
||||||
wait=10,fall=10,
|
|
||||||
dropPiece="master_score_hard",
|
|
||||||
das=5,arr=1,
|
|
||||||
freshLimit=15,
|
|
||||||
easyFresh=false,bone=true,
|
|
||||||
bg="none",bgm="shining terminal",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
classic={
|
{
|
||||||
{
|
drop=60,lock=60,
|
||||||
das=15,arr=3,sddas=2,sdarr=2,
|
target=100,dropPiece="reach_winCheck",
|
||||||
ghost=false,center=false,
|
bg="strap",bgm="race",
|
||||||
drop=2,lock=2,wait=10,fall=25,
|
|
||||||
next=1,hold=false,
|
|
||||||
sequence="rnd",
|
|
||||||
freshLimit=0,
|
|
||||||
target=10,dropPiece="classic_reach",
|
|
||||||
bg="rgb",bgm="rockblock",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
zen={
|
{
|
||||||
{
|
drop=60,lock=60,
|
||||||
drop=1e99,lock=1e99,
|
target=400,dropPiece="reach_winCheck",
|
||||||
oncehold=false,
|
bg="strap",bgm="push",
|
||||||
dropPiece="reach_winCheck",
|
|
||||||
bg="strap",bgm="infinite",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
infinite={
|
{
|
||||||
{
|
drop=60,lock=60,
|
||||||
drop=1e99,lock=1e99,
|
target=1000,dropPiece="reach_winCheck",
|
||||||
oncehold=false,
|
bg="strap",bgm="push",
|
||||||
bg="glow",bgm="infinite",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=1e99,lock=1e99,
|
|
||||||
oncehold=false,
|
|
||||||
dropPiece="infinite_check",
|
|
||||||
bg="glow",bgm="infinite",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
solo={
|
}
|
||||||
{
|
defModeEnv.marathon={
|
||||||
drop=60,lock=60,
|
{
|
||||||
freshLimit=15,
|
drop=60,lock=60,fall=30,
|
||||||
bg="game2",bgm="race",
|
target=200,dropPiece="reach_winCheck",
|
||||||
},
|
bg="strap",bgm="way",
|
||||||
},
|
},
|
||||||
round={
|
{
|
||||||
{
|
drop=60,fall=20,
|
||||||
drop=1e99,lock=1e99,
|
target=10,dropPiece="marathon_update",
|
||||||
oncehold=false,
|
bg="strap",bgm="way",
|
||||||
dropPiece="round_check",
|
|
||||||
bg="game2",bgm="push",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
tsd={
|
{
|
||||||
{
|
_20G=true,fall=15,
|
||||||
oncehold=false,
|
target=200,dropPiece="reach_winCheck",
|
||||||
drop=1e99,lock=1e99,
|
bg="strap",bgm="race",
|
||||||
dropPiece="tsd_reach",
|
|
||||||
ospin=false,
|
|
||||||
bg="matrix",bgm="reason",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=60,lock=60,
|
|
||||||
freshLimit=15,
|
|
||||||
dropPiece="tsd_reach",
|
|
||||||
ospin=false,
|
|
||||||
bg="matrix",bgm="reason",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
blind={
|
}
|
||||||
{
|
defModeEnv.master={
|
||||||
drop=30,lock=45,
|
{
|
||||||
freshLimit=10,
|
_20G=true,lock=rush_lock[1],
|
||||||
visible="time",
|
wait=rush_wait[1],
|
||||||
bg="glow",bgm="newera",
|
fall=rush_fall[1],
|
||||||
},
|
dropPiece="master_score",
|
||||||
{
|
das=9,arr=3,
|
||||||
drop=15,lock=45,
|
freshLimit=15,
|
||||||
freshLimit=10,
|
bg="strap",bgm="secret8th",
|
||||||
visible="fast",
|
|
||||||
freshLimit=10,
|
|
||||||
bg="glow",bgm="reason",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=15,lock=45,
|
|
||||||
fall=10,lock=60,
|
|
||||||
center=false,
|
|
||||||
visible="none",
|
|
||||||
freshLimit=15,
|
|
||||||
bg="rgb",bgm="secret7th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=10,lock=45,
|
|
||||||
fall=5,lock=60,
|
|
||||||
center=false,ghost=false,
|
|
||||||
visible="none",
|
|
||||||
freshLimit=15,
|
|
||||||
bg="rgb",bgm="secret8th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=30,lock=60,
|
|
||||||
fall=5,
|
|
||||||
block=false,
|
|
||||||
center=false,ghost=false,
|
|
||||||
visible="none",
|
|
||||||
freshLimit=15,
|
|
||||||
bg="rgb",bgm="secret7th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
_20G=true,
|
|
||||||
drop=0,lock=15,
|
|
||||||
wait=10,fall=15,
|
|
||||||
visible="fast",
|
|
||||||
freshLimit=15,
|
|
||||||
dropPiece="GM_reach",
|
|
||||||
arr=1,
|
|
||||||
bg="game3",bgm="shining terminal",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
dig={
|
{
|
||||||
{
|
_20G=true,lock=death_lock[1],
|
||||||
drop=60,lock=120,
|
wait=death_wait[1],
|
||||||
fall=20,
|
fall=death_fall[1],
|
||||||
freshLimit=15,
|
dropPiece="master_score",
|
||||||
task="dig_normal",
|
das=6,arr=1,
|
||||||
bg="game2",bgm="push",
|
freshLimit=15,
|
||||||
},
|
bg="game2",bgm="secret7th",
|
||||||
{
|
|
||||||
drop=10,lock=30,
|
|
||||||
freshLimit=15,
|
|
||||||
task="dig_lunatic",
|
|
||||||
bg="game2",bgm="secret7th",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
survivor={
|
{
|
||||||
{
|
_20G=true,lock=12,
|
||||||
drop=60,lock=120,
|
wait=10,fall=10,
|
||||||
fall=30,
|
dropPiece="master_score_hard",
|
||||||
freshLimit=15,
|
das=5,arr=1,
|
||||||
task="survivor_easy",
|
freshLimit=15,
|
||||||
bg="game2",bgm="push",
|
easyFresh=false,bone=true,
|
||||||
},
|
bg="none",bgm="shining terminal",
|
||||||
{
|
|
||||||
drop=30,lock=60,
|
|
||||||
fall=20,
|
|
||||||
freshLimit=15,
|
|
||||||
task="survivor_normal",
|
|
||||||
bg="game2",bgm="newera",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=10,lock=60,
|
|
||||||
fall=15,
|
|
||||||
freshLimit=15,
|
|
||||||
task="survivor_hard",
|
|
||||||
bg="game2",bgm="secret8th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=6,lock=60,
|
|
||||||
fall=10,
|
|
||||||
freshLimit=15,
|
|
||||||
task="survivor_lunatic",
|
|
||||||
bg="game3",bgm="secret7th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=5,lock=60,
|
|
||||||
fall=10,
|
|
||||||
freshLimit=15,
|
|
||||||
task="survivor_ultimate",
|
|
||||||
bg="rgb",bgm="secret7th",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
defender={
|
}
|
||||||
{
|
defModeEnv.classic={
|
||||||
drop=30,lock=60,
|
{
|
||||||
fall=10,
|
das=16,arr=6,sddas=2,sdarr=2,
|
||||||
freshLimit=15,
|
ghost=false,center=false,
|
||||||
task="defender_normal",
|
drop=3,lock=3,wait=10,fall=25,
|
||||||
bg="game3",bgm="way",
|
next=1,hold=false,
|
||||||
},
|
sequence="rnd",
|
||||||
{
|
freshLimit=0,
|
||||||
drop=5,lock=60,
|
target=10,dropPiece="classic_reach",
|
||||||
fall=6,
|
bg="rgb",bgm="rockblock",
|
||||||
freshLimit=15,
|
|
||||||
task="defender_lunatic",
|
|
||||||
bg="game4",bgm="way",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
attacker={
|
}
|
||||||
{
|
defModeEnv.zen={
|
||||||
drop=30,lock=60,
|
{
|
||||||
fall=12,
|
drop=1e99,lock=1e99,
|
||||||
freshLimit=15,
|
oncehold=false,
|
||||||
task="attacker_hard",
|
dropPiece="reach_winCheck",
|
||||||
bg="game3",bgm="push",
|
bg="strap",bgm="infinite",
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=5,lock=60,
|
|
||||||
fall=8,
|
|
||||||
freshLimit=15,
|
|
||||||
task="attacker_ultimate",
|
|
||||||
bg="game4",bgm="shining terminal",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
tech={
|
}
|
||||||
{
|
defModeEnv.infinite={
|
||||||
oncehold=false,
|
{
|
||||||
drop=1e99,lock=1e99,
|
drop=1e99,lock=1e99,
|
||||||
dropPiece="tech_reach_easy",
|
oncehold=false,
|
||||||
bg="matrix",bgm="newera",
|
bg="glow",bgm="infinite",
|
||||||
},
|
|
||||||
{
|
|
||||||
oncehold=false,
|
|
||||||
drop=1e99,lock=1e99,
|
|
||||||
dropPiece="tech_reach_ultimate",
|
|
||||||
bg="matrix",bgm="newera",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=10,lock=60,
|
|
||||||
freshLimit=15,
|
|
||||||
dropPiece="tech_reach_easy",
|
|
||||||
bg="matrix",bgm="secret8th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=30,lock=60,
|
|
||||||
freshLimit=15,
|
|
||||||
dropPiece="tech_reach_ultimate",
|
|
||||||
bg="matrix",bgm="secret8th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
_20G=true,lock=60,
|
|
||||||
freshLimit=15,
|
|
||||||
dropPiece="tech_reach_hard",
|
|
||||||
bg="matrix",bgm="secret7th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
_20G=true,lock=60,
|
|
||||||
freshLimit=15,
|
|
||||||
dropPiece="tech_reach_ultimate",
|
|
||||||
bg="matrix",bgm="secret7th",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=1e99,lock=60,
|
|
||||||
freshLimit=15,
|
|
||||||
fine=true,fineKill=true,
|
|
||||||
dropPiece="tech_reach_hard",
|
|
||||||
bg="flink",bgm="infinite",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=1e99,lock=60,
|
|
||||||
freshLimit=15,
|
|
||||||
fine=true,fineKill=true,
|
|
||||||
dropPiece="tech_reach_ultimate",
|
|
||||||
bg="flink",bgm="infinite",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
c4wtrain={
|
{
|
||||||
{
|
drop=1e99,lock=1e99,
|
||||||
drop=30,lock=60,
|
oncehold=false,
|
||||||
oncehold=false,
|
dropPiece="infinite_check",
|
||||||
freshLimit=15,
|
bg="glow",bgm="infinite",
|
||||||
dropPiece="c4w_reach",
|
|
||||||
ospin=false,
|
|
||||||
bg="rgb",bgm="newera",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=5,lock=30,
|
|
||||||
freshLimit=15,
|
|
||||||
dropPiece="c4w_reach",
|
|
||||||
ospin=false,
|
|
||||||
bg="rgb",bgm="newera",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
pctrain={
|
}
|
||||||
{
|
defModeEnv.solo={
|
||||||
next=4,
|
{
|
||||||
hold=false,
|
drop=60,lock=60,
|
||||||
drop=150,lock=150,
|
freshLimit=15,
|
||||||
fall=20,
|
bg="game2",bgm="race",
|
||||||
sequence="none",
|
|
||||||
dropPiece="newPC",
|
|
||||||
ospin=false,
|
|
||||||
bg="rgb",bgm="newera",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
next=4,
|
|
||||||
hold=false,
|
|
||||||
drop=60,lock=60,
|
|
||||||
fall=20,
|
|
||||||
sequence="none",
|
|
||||||
freshLimit=15,
|
|
||||||
dropPiece="newPC",
|
|
||||||
ospin=false,
|
|
||||||
bg="rgb",bgm="newera",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
pcchallenge={
|
}
|
||||||
{
|
defModeEnv.round={
|
||||||
oncehold=false,
|
{
|
||||||
drop=300,lock=1e99,
|
drop=1e99,lock=1e99,
|
||||||
target=100,dropPiece="reach_winCheck",
|
oncehold=false,
|
||||||
ospin=false,
|
dropPiece="round_check",
|
||||||
bg="rgb",bgm="newera",
|
bg="game2",bgm="push",
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=60,lock=120,
|
|
||||||
fall=10,
|
|
||||||
target=100,dropPiece="reach_winCheck",
|
|
||||||
freshLimit=15,
|
|
||||||
ospin=false,
|
|
||||||
bg="rgb",bgm="infinite",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=20,lock=60,
|
|
||||||
fall=20,
|
|
||||||
target=100,dropPiece="reach_winCheck",
|
|
||||||
freshLimit=15,
|
|
||||||
ospin=false,
|
|
||||||
bg="rgb",bgm="infinite",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
techmino49={
|
}
|
||||||
{
|
defModeEnv.tsd={
|
||||||
drop=60,lock=60,
|
{
|
||||||
fall=20,
|
oncehold=false,
|
||||||
royaleMode=true,
|
drop=1e99,lock=1e99,
|
||||||
Fkey=Fkey_func.royale,
|
dropPiece="tsd_reach",
|
||||||
royalePowerup={2,5,10,20},
|
ospin=false,
|
||||||
royaleRemain={30,20,15,10,5},
|
bg="matrix",bgm="reason",
|
||||||
pushSpeed=2,
|
|
||||||
freshLimit=15,
|
|
||||||
bg="game3",bgm="rockblock",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
techmino99={
|
{
|
||||||
{
|
drop=60,lock=60,
|
||||||
drop=60,lock=60,
|
freshLimit=15,
|
||||||
fall=20,
|
dropPiece="tsd_reach",
|
||||||
royaleMode=true,
|
ospin=false,
|
||||||
Fkey=Fkey_func.royale,
|
bg="matrix",bgm="reason",
|
||||||
royalePowerup={2,6,14,30},
|
|
||||||
royaleRemain={75,50,35,20,10},
|
|
||||||
pushSpeed=2,
|
|
||||||
freshLimit=15,
|
|
||||||
bg="game3",bgm="rockblock",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
drought={
|
}
|
||||||
{
|
defModeEnv.blind={
|
||||||
drop=20,lock=60,
|
{
|
||||||
sequence="drought1",
|
drop=30,lock=45,
|
||||||
target=100,dropPiece="reach_winCheck",
|
freshLimit=10,
|
||||||
ospin=false,
|
visible="time",
|
||||||
freshLimit=15,
|
bg="glow",bgm="newera",
|
||||||
bg="glow",bgm="reason",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
drop=20,lock=60,
|
|
||||||
sequence="drought2",
|
|
||||||
target=100,dropPiece="reach_winCheck",
|
|
||||||
ospin=false,
|
|
||||||
freshLimit=15,
|
|
||||||
bg="glow",bgm="reason",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
hotseat={
|
{
|
||||||
{
|
drop=15,lock=45,
|
||||||
drop=60,lock=60,
|
freshLimit=10,
|
||||||
freshLimit=15,
|
visible="fast",
|
||||||
bg="none",bgm="way",
|
freshLimit=10,
|
||||||
},
|
bg="glow",bgm="reason",
|
||||||
},
|
},
|
||||||
custom={
|
{
|
||||||
{
|
drop=15,lock=45,
|
||||||
dropPiece="reach_winCheck",
|
fall=10,lock=60,
|
||||||
},
|
center=false,
|
||||||
{
|
visible="none",
|
||||||
Fkey=Fkey_func.puzzle,puzzle=true,
|
freshLimit=15,
|
||||||
dropPiece="puzzleCheck",
|
bg="rgb",bgm="secret7th",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
drop=10,lock=45,
|
||||||
|
fall=5,lock=60,
|
||||||
|
center=false,ghost=false,
|
||||||
|
visible="none",
|
||||||
|
freshLimit=15,
|
||||||
|
bg="rgb",bgm="secret8th",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=30,lock=60,
|
||||||
|
fall=5,
|
||||||
|
block=false,
|
||||||
|
center=false,ghost=false,
|
||||||
|
visible="none",
|
||||||
|
freshLimit=15,
|
||||||
|
bg="rgb",bgm="secret7th",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_20G=true,
|
||||||
|
drop=0,lock=15,
|
||||||
|
wait=10,fall=15,
|
||||||
|
visible="fast",
|
||||||
|
freshLimit=15,
|
||||||
|
dropPiece="GM_reach",
|
||||||
|
arr=1,
|
||||||
|
bg="game3",bgm="shining terminal",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.dig={
|
||||||
|
{
|
||||||
|
drop=60,lock=120,
|
||||||
|
fall=20,
|
||||||
|
freshLimit=15,
|
||||||
|
task="dig_normal",
|
||||||
|
bg="game2",bgm="push",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=10,lock=30,
|
||||||
|
freshLimit=15,
|
||||||
|
task="dig_lunatic",
|
||||||
|
bg="game2",bgm="secret7th",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.survivor={
|
||||||
|
{
|
||||||
|
drop=60,lock=120,
|
||||||
|
fall=30,
|
||||||
|
freshLimit=15,
|
||||||
|
task="survivor_easy",
|
||||||
|
bg="game2",bgm="push",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=30,lock=60,
|
||||||
|
fall=20,
|
||||||
|
freshLimit=15,
|
||||||
|
task="survivor_normal",
|
||||||
|
bg="game2",bgm="newera",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=10,lock=60,
|
||||||
|
fall=15,
|
||||||
|
freshLimit=15,
|
||||||
|
task="survivor_hard",
|
||||||
|
bg="game2",bgm="secret8th",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=6,lock=60,
|
||||||
|
fall=10,
|
||||||
|
freshLimit=15,
|
||||||
|
task="survivor_lunatic",
|
||||||
|
bg="game3",bgm="secret7th",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=5,lock=60,
|
||||||
|
fall=10,
|
||||||
|
freshLimit=15,
|
||||||
|
task="survivor_ultimate",
|
||||||
|
bg="rgb",bgm="secret7th",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.defender={
|
||||||
|
{
|
||||||
|
drop=30,lock=60,
|
||||||
|
fall=10,
|
||||||
|
freshLimit=15,
|
||||||
|
task="defender_normal",
|
||||||
|
bg="game3",bgm="way",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=5,lock=60,
|
||||||
|
fall=6,
|
||||||
|
freshLimit=15,
|
||||||
|
task="defender_lunatic",
|
||||||
|
bg="game4",bgm="way",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.attacker={
|
||||||
|
{
|
||||||
|
drop=30,lock=60,
|
||||||
|
fall=12,
|
||||||
|
freshLimit=15,
|
||||||
|
task="attacker_hard",
|
||||||
|
bg="game3",bgm="push",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=5,lock=60,
|
||||||
|
fall=8,
|
||||||
|
freshLimit=15,
|
||||||
|
task="attacker_ultimate",
|
||||||
|
bg="game4",bgm="shining terminal",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.tech={
|
||||||
|
{
|
||||||
|
oncehold=false,
|
||||||
|
drop=1e99,lock=1e99,
|
||||||
|
dropPiece="tech_reach_easy",
|
||||||
|
bg="matrix",bgm="newera",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
oncehold=false,
|
||||||
|
drop=1e99,lock=1e99,
|
||||||
|
dropPiece="tech_reach_ultimate",
|
||||||
|
bg="matrix",bgm="newera",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=10,lock=60,
|
||||||
|
freshLimit=15,
|
||||||
|
dropPiece="tech_reach_easy",
|
||||||
|
bg="matrix",bgm="secret8th",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=30,lock=60,
|
||||||
|
freshLimit=15,
|
||||||
|
dropPiece="tech_reach_ultimate",
|
||||||
|
bg="matrix",bgm="secret8th",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_20G=true,lock=60,
|
||||||
|
freshLimit=15,
|
||||||
|
dropPiece="tech_reach_hard",
|
||||||
|
bg="matrix",bgm="secret7th",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_20G=true,lock=60,
|
||||||
|
freshLimit=15,
|
||||||
|
dropPiece="tech_reach_ultimate",
|
||||||
|
bg="matrix",bgm="secret7th",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=1e99,lock=60,
|
||||||
|
freshLimit=15,
|
||||||
|
fine=true,fineKill=true,
|
||||||
|
dropPiece="tech_reach_hard",
|
||||||
|
bg="flink",bgm="infinite",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=1e99,lock=60,
|
||||||
|
freshLimit=15,
|
||||||
|
fine=true,fineKill=true,
|
||||||
|
dropPiece="tech_reach_ultimate",
|
||||||
|
bg="flink",bgm="infinite",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.c4wtrain={
|
||||||
|
{
|
||||||
|
drop=30,lock=60,
|
||||||
|
oncehold=false,
|
||||||
|
freshLimit=15,
|
||||||
|
dropPiece="c4w_reach",
|
||||||
|
ospin=false,
|
||||||
|
bg="rgb",bgm="newera",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=5,lock=30,
|
||||||
|
freshLimit=15,
|
||||||
|
dropPiece="c4w_reach",
|
||||||
|
ospin=false,
|
||||||
|
bg="rgb",bgm="newera",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.pctrain={
|
||||||
|
{
|
||||||
|
next=4,
|
||||||
|
hold=false,
|
||||||
|
drop=150,lock=150,
|
||||||
|
fall=20,
|
||||||
|
sequence="none",
|
||||||
|
dropPiece="newPC",
|
||||||
|
ospin=false,
|
||||||
|
bg="rgb",bgm="newera",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
next=4,
|
||||||
|
hold=false,
|
||||||
|
drop=60,lock=60,
|
||||||
|
fall=20,
|
||||||
|
sequence="none",
|
||||||
|
freshLimit=15,
|
||||||
|
dropPiece="newPC",
|
||||||
|
ospin=false,
|
||||||
|
bg="rgb",bgm="newera",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.pcchallenge={
|
||||||
|
{
|
||||||
|
oncehold=false,
|
||||||
|
drop=300,lock=1e99,
|
||||||
|
target=100,dropPiece="reach_winCheck",
|
||||||
|
ospin=false,
|
||||||
|
bg="rgb",bgm="newera",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=60,lock=120,
|
||||||
|
fall=10,
|
||||||
|
target=100,dropPiece="reach_winCheck",
|
||||||
|
freshLimit=15,
|
||||||
|
ospin=false,
|
||||||
|
bg="rgb",bgm="infinite",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=20,lock=60,
|
||||||
|
fall=20,
|
||||||
|
target=100,dropPiece="reach_winCheck",
|
||||||
|
freshLimit=15,
|
||||||
|
ospin=false,
|
||||||
|
bg="rgb",bgm="infinite",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.techmino49={
|
||||||
|
{
|
||||||
|
drop=60,lock=60,
|
||||||
|
fall=20,
|
||||||
|
royaleMode=true,
|
||||||
|
Fkey=Fkey_func.royale,
|
||||||
|
royalePowerup={2,5,10,20},
|
||||||
|
royaleRemain={30,20,15,10,5},
|
||||||
|
pushSpeed=2,
|
||||||
|
freshLimit=15,
|
||||||
|
bg="game3",bgm="rockblock",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.techmino99={
|
||||||
|
{
|
||||||
|
drop=60,lock=60,
|
||||||
|
fall=20,
|
||||||
|
royaleMode=true,
|
||||||
|
Fkey=Fkey_func.royale,
|
||||||
|
royalePowerup={2,6,14,30},
|
||||||
|
royaleRemain={75,50,35,20,10},
|
||||||
|
pushSpeed=2,
|
||||||
|
freshLimit=15,
|
||||||
|
bg="game3",bgm="rockblock",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.drought={
|
||||||
|
{
|
||||||
|
drop=20,lock=60,
|
||||||
|
sequence="drought1",
|
||||||
|
target=100,dropPiece="reach_winCheck",
|
||||||
|
ospin=false,
|
||||||
|
freshLimit=15,
|
||||||
|
bg="glow",bgm="reason",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
drop=20,lock=60,
|
||||||
|
sequence="drought2",
|
||||||
|
target=100,dropPiece="reach_winCheck",
|
||||||
|
ospin=false,
|
||||||
|
freshLimit=15,
|
||||||
|
bg="glow",bgm="reason",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.hotseat={
|
||||||
|
{
|
||||||
|
drop=60,lock=60,
|
||||||
|
freshLimit=15,
|
||||||
|
bg="none",bgm="way",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defModeEnv.custom={
|
||||||
|
{
|
||||||
|
dropPiece="reach_winCheck",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Fkey=Fkey_func.puzzle,puzzle=true,
|
||||||
|
dropPiece="puzzleCheck",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -19,8 +19,9 @@ setting={
|
|||||||
skin=1,
|
skin=1,
|
||||||
--graphic
|
--graphic
|
||||||
|
|
||||||
sfx=8,bgm=6,
|
sfx=10,bgm=7,
|
||||||
vib=3,voc=0,
|
vib=3,voc=0,
|
||||||
|
stereo=6,
|
||||||
--sound
|
--sound
|
||||||
|
|
||||||
keyMap={
|
keyMap={
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ return{
|
|||||||
warning="禁 止 私 自 传 播",
|
warning="禁 止 私 自 传 播",
|
||||||
WidgetText={
|
WidgetText={
|
||||||
main={
|
main={
|
||||||
lang="中文",
|
lang="文-Lang",
|
||||||
qplay="快速开始",
|
qplay="快速开始",
|
||||||
play="开始",
|
play="开始",
|
||||||
setting="设置",
|
setting="设置",
|
||||||
@@ -256,6 +256,7 @@ return{
|
|||||||
pause={
|
pause={
|
||||||
resume= "继续",
|
resume= "继续",
|
||||||
restart="重新开始",
|
restart="重新开始",
|
||||||
|
setting="设置",
|
||||||
quit= "退出",
|
quit= "退出",
|
||||||
},
|
},
|
||||||
setting_game={
|
setting_game={
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ return{
|
|||||||
warning="禁 止 私 自 传 播",
|
warning="禁 止 私 自 传 播",
|
||||||
WidgetText={
|
WidgetText={
|
||||||
main={
|
main={
|
||||||
lang="全中文",
|
lang="文-Lang",
|
||||||
qplay="快速开始",
|
qplay="快速开始",
|
||||||
play="开始",
|
play="开始",
|
||||||
setting="设置",
|
setting="设置",
|
||||||
@@ -256,6 +256,7 @@ return{
|
|||||||
pause={
|
pause={
|
||||||
resume= "继续",
|
resume= "继续",
|
||||||
restart="重新开始",
|
restart="重新开始",
|
||||||
|
setting="设置",
|
||||||
quit= "退出",
|
quit= "退出",
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -342,4 +343,4 @@ return{
|
|||||||
back=BK,
|
back=BK,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}--部分译文
|
}
|
||||||
@@ -191,7 +191,7 @@ Lib used:
|
|||||||
warning="DO NOT DISTRIBUTE",
|
warning="DO NOT DISTRIBUTE",
|
||||||
WidgetText={
|
WidgetText={
|
||||||
main={
|
main={
|
||||||
lang="English",
|
lang="文-Lang",
|
||||||
qplay="Qplay",
|
qplay="Qplay",
|
||||||
play="Play",
|
play="Play",
|
||||||
setting="Settings",
|
setting="Settings",
|
||||||
@@ -255,6 +255,7 @@ Lib used:
|
|||||||
pause={
|
pause={
|
||||||
resume="Resume",
|
resume="Resume",
|
||||||
restart="Restart",
|
restart="Restart",
|
||||||
|
setting="Setting",
|
||||||
quit="Quit",
|
quit="Quit",
|
||||||
},
|
},
|
||||||
setting_game={
|
setting_game={
|
||||||
|
|||||||
17
list.lua
17
list.lua
@@ -57,17 +57,20 @@ blockColor={
|
|||||||
}
|
}
|
||||||
sfx={
|
sfx={
|
||||||
"welcome",
|
"welcome",
|
||||||
|
"error","error_long",
|
||||||
|
--Stereo sfxs
|
||||||
"button","swipe",
|
"button","swipe",
|
||||||
"ready","start","win","fail","collect",
|
"ready","start","win","fail","collect",
|
||||||
"move","rotate","rotatekick","hold",
|
"move","rotate","rotatekick","hold",
|
||||||
"prerotate","prehold",
|
"prerotate","prehold",
|
||||||
"lock","drop","fall",
|
"lock","drop","fall",
|
||||||
"error","error_long","reach",
|
"reach",
|
||||||
"ren_1","ren_2","ren_3","ren_4","ren_5","ren_6","ren_7","ren_8","ren_9","ren_10","ren_11","ren_mega",
|
"ren_1","ren_2","ren_3","ren_4","ren_5","ren_6","ren_7","ren_8","ren_9","ren_10","ren_11","ren_mega",
|
||||||
"clear_1","clear_2","clear_3","clear_4",
|
"clear_1","clear_2","clear_3","clear_4",
|
||||||
"spin_0","spin_1","spin_2","spin_3",
|
"spin_0","spin_1","spin_2","spin_3",
|
||||||
"emit","blip_1","blip_2",
|
"emit","blip_1","blip_2",
|
||||||
"perfectclear",
|
"perfectclear",
|
||||||
|
--mono sfxs
|
||||||
}
|
}
|
||||||
bgm={
|
bgm={
|
||||||
"blank",
|
"blank",
|
||||||
@@ -330,7 +333,7 @@ Widget={
|
|||||||
back= newButton(640, 630,230,90, color.white, 45,scene.back),
|
back= newButton(640, 630,230,90, color.white, 45,scene.back),
|
||||||
},
|
},
|
||||||
music={
|
music={
|
||||||
bgm= newSlider(760, 80,400,8,40,nil,function()return setting.bgm end,function(i)setting.bgm=i;BGM(bgmPlaying)end),
|
bgm= newSlider(760, 80,400,10,40,nil,function()return setting.bgm end,function(i)setting.bgm=i;BGM(bgmPlaying)end),
|
||||||
up= newButton(1100, 200,120,120,color.white,60,function()love.keypressed("up")end),
|
up= newButton(1100, 200,120,120,color.white,60,function()love.keypressed("up")end),
|
||||||
play= newButton(1100, 340,120,120,color.white,40,function()love.keypressed("space")end,function()return setting.bgm==0 end),
|
play= newButton(1100, 340,120,120,color.white,40,function()love.keypressed("space")end,function()return setting.bgm==0 end),
|
||||||
down= newButton(1100, 480,120,120,color.white,60,function()love.keypressed("down")end),
|
down= newButton(1100, 480,120,120,color.white,60,function()love.keypressed("down")end),
|
||||||
@@ -380,6 +383,10 @@ Widget={
|
|||||||
resetGameData()
|
resetGameData()
|
||||||
scene.swapTo("play","none")
|
scene.swapTo("play","none")
|
||||||
end),
|
end),
|
||||||
|
setting=newButton(1150,80,200,100,color.yellow,45,function()
|
||||||
|
scene.push()
|
||||||
|
scene.swapTo("setting_sound")
|
||||||
|
end),
|
||||||
quit= newButton(640,600,240,100,color.white,50,scene.back),
|
quit= newButton(640,600,240,100,color.white,50,scene.back),
|
||||||
},
|
},
|
||||||
setting_game={
|
setting_game={
|
||||||
@@ -445,10 +452,10 @@ Widget={
|
|||||||
setting_sound={
|
setting_sound={
|
||||||
game= newButton(200,80,240,80,color.lightGreen,40,function()scene.swapTo("setting_game")end, nil,"graphic"),
|
game= newButton(200,80,240,80,color.lightGreen,40,function()scene.swapTo("setting_game")end, nil,"graphic"),
|
||||||
graphic=newButton(1080,80,240,80,color.lightGreen,40,function()scene.swapTo("setting_graphic")end, nil,"sfx"),
|
graphic=newButton(1080,80,240,80,color.lightGreen,40,function()scene.swapTo("setting_graphic")end, nil,"sfx"),
|
||||||
sfx=newSlider(180,250,400,8,40,function()SFX("blip_1")end, function()return setting.sfx end,function(i)setting.sfx=i end,nil,"bgm"),
|
sfx=newSlider(180,250,400,10,40,function()SFX("blip_1")end, function()return setting.sfx end,function(i)setting.sfx=i end,nil,"bgm"),
|
||||||
bgm=newSlider(750,250,400,8,40,function()BGM(bgmPlaying or"blank")end, function()return setting.bgm end,function(i)setting.bgm=i end,nil,"vib"),
|
bgm=newSlider(750,250,400,10,40,function()BGM(bgmPlaying or"blank")end, function()return setting.bgm end,function(i)setting.bgm=i end,nil,"vib"),
|
||||||
vib=newSlider(180,440,400,5,40,function()VIB(1)end, function()return setting.vib end,function(i)setting.vib=i end,nil,"voc"),
|
vib=newSlider(180,440,400,5,40,function()VIB(1)end, function()return setting.vib end,function(i)setting.vib=i end,nil,"voc"),
|
||||||
voc=newSlider(750,440,400,8,40,function()VOICE("nya")end, function()return setting.voc end,function(i)setting.voc=i end,nil,"back"),
|
voc=newSlider(750,440,400,10,40,function()VOICE("nya")end, function()return setting.voc end,function(i)setting.voc=i end,nil,"back"),
|
||||||
back=newButton(1160,600,160,160,color.white,55,scene.back,nil,"game"),
|
back=newButton(1160,600,160,160,color.white,55,scene.back,nil,"game"),
|
||||||
},
|
},
|
||||||
setting_key={
|
setting_key={
|
||||||
|
|||||||
14
main.lua
14
main.lua
@@ -121,13 +121,15 @@ local function getNewBlock()
|
|||||||
return t
|
return t
|
||||||
end
|
end
|
||||||
local function onVirtualkey(x,y)
|
local function onVirtualkey(x,y)
|
||||||
local d1,nearest,distance
|
local dist,nearest=1e15
|
||||||
for K=1,#virtualkey do
|
for K=1,#virtualkey do
|
||||||
local b=virtualkey[K]
|
local b=virtualkey[K]
|
||||||
d1=(x-b.x)^2+(y-b.y)^2
|
if b.ava then
|
||||||
if d1<b.r^2 then
|
local d1=(x-b.x)^2+(y-b.y)^2
|
||||||
if not nearest or d1<distance then
|
if d1<b.r^2 then
|
||||||
nearest,distance=K,d1
|
if d1<dist then
|
||||||
|
nearest,dist=K,d1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -930,7 +932,7 @@ function love.update(dt)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
Q[1]=L[n]
|
Q[1]=L[n]
|
||||||
Q[1]:setVolume(setting.voc*.125)
|
Q[1]:setVolume(setting.voc*.1)
|
||||||
Q[1]:play()
|
Q[1]:play()
|
||||||
--load voice with string
|
--load voice with string
|
||||||
end
|
end
|
||||||
|
|||||||
43
player.lua
43
player.lua
@@ -11,6 +11,7 @@ local scr=scr--screen camera
|
|||||||
local gameEnv0={
|
local gameEnv0={
|
||||||
das=10,arr=2,
|
das=10,arr=2,
|
||||||
sddas=2,sdarr=2,
|
sddas=2,sdarr=2,
|
||||||
|
quickR=true,swap=true,
|
||||||
ghost=true,center=true,
|
ghost=true,center=true,
|
||||||
grid=false,swap=true,
|
grid=false,swap=true,
|
||||||
_20G=false,bone=false,
|
_20G=false,bone=false,
|
||||||
@@ -317,7 +318,7 @@ local mesDisp={
|
|||||||
mStr("Lines",-82,300)
|
mStr("Lines",-82,300)
|
||||||
mStr("Techrash",-82,420)
|
mStr("Techrash",-82,420)
|
||||||
if curMode.lv==6 then
|
if curMode.lv==6 then
|
||||||
mStr("Point",-82,170)
|
mStr("Grade",-82,170)
|
||||||
setFont(60)
|
setFont(60)
|
||||||
mStr(P.modeData.point*.1,-82,110)
|
mStr(P.modeData.point*.1,-82,110)
|
||||||
end
|
end
|
||||||
@@ -1410,6 +1411,9 @@ local function solid(P,x,y)
|
|||||||
if y>#P.field then return false end
|
if y>#P.field then return false end
|
||||||
return P.field[y][x]>0
|
return P.field[y][x]>0
|
||||||
end
|
end
|
||||||
|
local function getBlockDirection(P)
|
||||||
|
return(P.curX+P.sc[2]-6.5)*.15
|
||||||
|
end
|
||||||
|
|
||||||
function player:fineError(rate)
|
function player:fineError(rate)
|
||||||
self.stat.extraPiece=self.stat.extraPiece+1
|
self.stat.extraPiece=self.stat.extraPiece+1
|
||||||
@@ -1697,7 +1701,7 @@ function player:spin(d,ifpre)
|
|||||||
self.spinLast=2
|
self.spinLast=2
|
||||||
self.stat.rotate=self.stat.rotate+1
|
self.stat.rotate=self.stat.rotate+1
|
||||||
self:freshgho()
|
self:freshgho()
|
||||||
SFX("rotatekick")
|
SFX("rotatekick",nil,getBlockDirection(self))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -1705,7 +1709,7 @@ function player:spin(d,ifpre)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if self.human then
|
if self.human then
|
||||||
SFX(ifpre and"prerotate"or"rotate")
|
SFX(ifpre and"prerotate"or"rotate",nil,getBlockDirection(self))
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@@ -1736,9 +1740,8 @@ function player:spin(d,ifpre)
|
|||||||
if not ifpre then self:freshgho()end
|
if not ifpre then self:freshgho()end
|
||||||
if self.gameEnv.easyFresh or y0>self.curY then self:freshLockDelay()end
|
if self.gameEnv.easyFresh or y0>self.curY then self:freshLockDelay()end
|
||||||
if self.human then
|
if self.human then
|
||||||
SFX(ifpre and"prerotate"or ifoverlap(self,self.cur.bk,self.curX,self.curY+1)and ifoverlap(self,self.cur.bk,self.curX-1,self.curY)and ifoverlap(self,self.cur.bk,self.curX+1,self.curY)and"rotatekick"or"rotate")
|
SFX(ifpre and"prerotate"or ifoverlap(self,self.cur.bk,self.curX,self.curY+1)and ifoverlap(self,self.cur.bk,self.curX-1,self.curY)and ifoverlap(self,self.cur.bk,self.curX+1,self.curY)and"rotatekick"or"rotate",nil,getBlockDirection(self))
|
||||||
end
|
end
|
||||||
self.ctrlCount=self.ctrlCount+(d==2 and 2 or 1)
|
|
||||||
self.stat.rotate=self.stat.rotate+1
|
self.stat.rotate=self.stat.rotate+1
|
||||||
end
|
end
|
||||||
function player:hold(ifpre)
|
function player:hold(ifpre)
|
||||||
@@ -1810,7 +1813,7 @@ function player:resetblock()
|
|||||||
self:freshgho()
|
self:freshgho()
|
||||||
if self.keyPressing[6]then self.act.hardDrop(self)self.keyPressing[6]=false end
|
if self.keyPressing[6]then self.act.hardDrop(self)self.keyPressing[6]=false end
|
||||||
end
|
end
|
||||||
function player:drop()--(Place piece)
|
function player:drop()--Place piece
|
||||||
self.dropTime[11]=ins(self.dropTime,1,frame)--update speed dial
|
self.dropTime[11]=ins(self.dropTime,1,frame)--update speed dial
|
||||||
self.waiting=self.gameEnv.wait
|
self.waiting=self.gameEnv.wait
|
||||||
local dospin=0
|
local dospin=0
|
||||||
@@ -2086,7 +2089,7 @@ function player:drop()--(Place piece)
|
|||||||
self:garbageSend(T,send,sendTime,1,self.cur.color,self.lastClear,dospin,mini,self.combo)
|
self:garbageSend(T,send,sendTime,1,self.cur.color,self.lastClear,dospin,mini,self.combo)
|
||||||
end
|
end
|
||||||
self.stat.send=self.stat.send+send
|
self.stat.send=self.stat.send+send
|
||||||
if self.human and send>3 then SFX("emit",min(send,8)*.125)end
|
if self.human and send>3 then SFX("emit",min(send,8)*.1)end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -2111,7 +2114,7 @@ function player:drop()--(Place piece)
|
|||||||
self.stat.score=self.stat.score+cscore
|
self.stat.score=self.stat.score+cscore
|
||||||
self.stat.piece,self.stat.row=self.stat.piece+1,self.stat.row+cc
|
self.stat.piece,self.stat.row=self.stat.piece+1,self.stat.row+cc
|
||||||
Event[self.gameEnv.dropPiece](self)
|
Event[self.gameEnv.dropPiece](self)
|
||||||
if self.human then SFX("lock")end
|
if self.human then SFX("lock",nil,getBlockDirection(self))end
|
||||||
end
|
end
|
||||||
function player:pressKey(i)
|
function player:pressKey(i)
|
||||||
self.keyPressing[i]=true
|
self.keyPressing[i]=true
|
||||||
@@ -2136,8 +2139,11 @@ end
|
|||||||
-------------------------<Controls>-------------------------
|
-------------------------<Controls>-------------------------
|
||||||
player.act={}
|
player.act={}
|
||||||
function player.act.moveLeft(P,auto)
|
function player.act.moveLeft(P,auto)
|
||||||
|
if not auto then
|
||||||
|
P.ctrlCount=P.ctrlCount+1
|
||||||
|
end
|
||||||
if P.keyPressing[9]then
|
if P.keyPressing[9]then
|
||||||
if setting.swap then
|
if P.gameEnv.swap then
|
||||||
P:changeAtkMode(1)
|
P:changeAtkMode(1)
|
||||||
end
|
end
|
||||||
elseif P.control and P.waiting==-1 then
|
elseif P.control and P.waiting==-1 then
|
||||||
@@ -2150,7 +2156,6 @@ function player.act.moveLeft(P,auto)
|
|||||||
P.spinLast=false
|
P.spinLast=false
|
||||||
if not auto then
|
if not auto then
|
||||||
P.moving=-1
|
P.moving=-1
|
||||||
P.ctrlCount=P.ctrlCount+1
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
P.moving=-P.gameEnv.das-1
|
P.moving=-P.gameEnv.das-1
|
||||||
@@ -2160,8 +2165,11 @@ function player.act.moveLeft(P,auto)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
function player.act.moveRight(P,auto)
|
function player.act.moveRight(P,auto)
|
||||||
|
if not auto then
|
||||||
|
P.ctrlCount=P.ctrlCount+1
|
||||||
|
end
|
||||||
if P.keyPressing[9]then
|
if P.keyPressing[9]then
|
||||||
if setting.swap then
|
if P.gameEnv.swap then
|
||||||
P:changeAtkMode(2)
|
P:changeAtkMode(2)
|
||||||
end
|
end
|
||||||
elseif P.control and P.waiting==-1 then
|
elseif P.control and P.waiting==-1 then
|
||||||
@@ -2174,7 +2182,6 @@ function player.act.moveRight(P,auto)
|
|||||||
P.spinLast=false
|
P.spinLast=false
|
||||||
if not auto then
|
if not auto then
|
||||||
P.moving=1
|
P.moving=1
|
||||||
P.ctrlCount=P.ctrlCount+1
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
P.moving=P.gameEnv.das+1
|
P.moving=P.gameEnv.das+1
|
||||||
@@ -2185,25 +2192,28 @@ function player.act.moveRight(P,auto)
|
|||||||
end
|
end
|
||||||
function player.act.rotRight(P)
|
function player.act.rotRight(P)
|
||||||
if P.control and P.waiting==-1 then
|
if P.control and P.waiting==-1 then
|
||||||
|
P.ctrlCount=P.ctrlCount+1
|
||||||
P:spin(1)
|
P:spin(1)
|
||||||
P.keyPressing[3]=false
|
P.keyPressing[3]=false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function player.act.rotLeft(P)
|
function player.act.rotLeft(P)
|
||||||
if P.control and P.waiting==-1 then
|
if P.control and P.waiting==-1 then
|
||||||
|
P.ctrlCount=P.ctrlCount+1
|
||||||
P:spin(3)
|
P:spin(3)
|
||||||
P.keyPressing[4]=false
|
P.keyPressing[4]=false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function player.act.rotFlip(P)
|
function player.act.rotFlip(P)
|
||||||
if P.control and P.waiting==-1 then
|
if P.control and P.waiting==-1 then
|
||||||
|
P.ctrlCount=P.ctrlCount+2
|
||||||
P:spin(2)
|
P:spin(2)
|
||||||
P.keyPressing[5]=false
|
P.keyPressing[5]=false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function player.act.hardDrop(P)
|
function player.act.hardDrop(P)
|
||||||
if P.keyPressing[9]then
|
if P.keyPressing[9]then
|
||||||
if setting.swap then
|
if P.gameEnv.swap then
|
||||||
P:changeAtkMode(3)
|
P:changeAtkMode(3)
|
||||||
end
|
end
|
||||||
P.keyPressing[6]=false
|
P.keyPressing[6]=false
|
||||||
@@ -2220,7 +2230,7 @@ function player.act.hardDrop(P)
|
|||||||
P.curY=P.y_img
|
P.curY=P.y_img
|
||||||
P.spinLast=false
|
P.spinLast=false
|
||||||
if P.human then
|
if P.human then
|
||||||
SFX("drop")
|
SFX("drop",nil,getBlockDirection(P))
|
||||||
VIB(1)
|
VIB(1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -2231,7 +2241,7 @@ function player.act.hardDrop(P)
|
|||||||
end
|
end
|
||||||
function player.act.softDrop(P)
|
function player.act.softDrop(P)
|
||||||
if P.keyPressing[9]then
|
if P.keyPressing[9]then
|
||||||
if setting.swap then
|
if P.gameEnv.swap then
|
||||||
P:changeAtkMode(4)
|
P:changeAtkMode(4)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -2253,7 +2263,7 @@ function player.act.func(P)
|
|||||||
P.gameEnv.Fkey(P)
|
P.gameEnv.Fkey(P)
|
||||||
end
|
end
|
||||||
function player.act.restart(P)
|
function player.act.restart(P)
|
||||||
if setting.quickR or frame<180 then
|
if P.gameEnv.quickR or frame<180 then
|
||||||
clearTask("play")
|
clearTask("play")
|
||||||
resetPartGameData()
|
resetPartGameData()
|
||||||
end
|
end
|
||||||
@@ -2359,5 +2369,4 @@ function player.act.addRight(P)
|
|||||||
P.act.insLeft(P)
|
P.act.insLeft(P)
|
||||||
P.act.hardDrop(P)
|
P.act.hardDrop(P)
|
||||||
end
|
end
|
||||||
|
|
||||||
-------------------------</Controls>-------------------------
|
-------------------------</Controls>-------------------------
|
||||||
13
scene.lua
13
scene.lua
@@ -66,13 +66,23 @@ local sceneInit={
|
|||||||
if needResetGameData then
|
if needResetGameData then
|
||||||
resetGameData()
|
resetGameData()
|
||||||
needResetGameData=nil
|
needResetGameData=nil
|
||||||
|
else
|
||||||
|
BGM(modeEnv.bgm)
|
||||||
end
|
end
|
||||||
|
curBG=modeEnv.bg
|
||||||
end,
|
end,
|
||||||
pause=function()
|
pause=function()
|
||||||
|
curBG=modeEnv.bg
|
||||||
end,
|
end,
|
||||||
setting_game=function()
|
setting_game=function()
|
||||||
curBG="none"
|
curBG="none"
|
||||||
end,
|
end,
|
||||||
|
setting_graphic=function()
|
||||||
|
curBG="none"
|
||||||
|
end,
|
||||||
|
setting_sound=function()
|
||||||
|
curBG="none"
|
||||||
|
end,
|
||||||
setting_key=function()
|
setting_key=function()
|
||||||
curBoard=1
|
curBoard=1
|
||||||
keyboardSet=1
|
keyboardSet=1
|
||||||
@@ -170,6 +180,9 @@ function scene.push(tar,style)
|
|||||||
scene.seq[m+2]=style or"fade"
|
scene.seq[m+2]=style or"fade"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
function scene.pop()
|
||||||
|
scene.seq={}
|
||||||
|
end
|
||||||
function scene.swapTo(tar,style)
|
function scene.swapTo(tar,style)
|
||||||
local S=scene.swap
|
local S=scene.swap
|
||||||
if not scene.swapping and tar~=scene.cur then
|
if not scene.swapping and tar~=scene.cur then
|
||||||
|
|||||||
47
toolfunc.lua
47
toolfunc.lua
@@ -129,19 +129,29 @@ function VIB(t)
|
|||||||
love.system.vibrate(vibrateLevel[setting.vib+t])
|
love.system.vibrate(vibrateLevel[setting.vib+t])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function SFX(s,v)
|
function SFX(s,v,pos)
|
||||||
if setting.sfx>0 then
|
if setting.sfx>0 then
|
||||||
|
local S=sfx[s]--AU_Queue
|
||||||
local n=1
|
local n=1
|
||||||
while sfx[s][n]:isPlaying()do
|
while S[n]:isPlaying()do
|
||||||
n=n+1
|
n=n+1
|
||||||
if not sfx[s][n]then
|
if not S[n]then
|
||||||
sfx[s][n]=sfx[s][n-1]:clone()
|
S[n]=S[n-1]:clone()
|
||||||
sfx[s][n]:seek(0)
|
S[n]:seek(0)
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
sfx[s][n]:setVolume((v or 1)*setting.sfx*.125)
|
S=S[n]--AU_SRC
|
||||||
sfx[s][n]:play()
|
if S:getChannelCount()==1 then
|
||||||
|
if pos then
|
||||||
|
pos=pos*setting.stereo*.1
|
||||||
|
S:setPosition(pos,1-pos^2,0)
|
||||||
|
else
|
||||||
|
S:setPosition(0,0,0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
S:setVolume((v or 1)*setting.sfx*.1)
|
||||||
|
S:play()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function getFreeVoiceChannel()
|
function getFreeVoiceChannel()
|
||||||
@@ -182,7 +192,7 @@ function BGM(s)
|
|||||||
bgmPlaying=s
|
bgmPlaying=s
|
||||||
else
|
else
|
||||||
if bgmPlaying then
|
if bgmPlaying then
|
||||||
local v=setting.bgm*.125
|
local v=setting.bgm*.1
|
||||||
bgm[bgmPlaying]:setVolume(v)
|
bgm[bgmPlaying]:setVolume(v)
|
||||||
if v>0 then
|
if v>0 then
|
||||||
bgm[bgmPlaying]:play()
|
bgm[bgmPlaying]:play()
|
||||||
@@ -330,7 +340,7 @@ function resetGameData()
|
|||||||
pauseTime=0--Time paused
|
pauseTime=0--Time paused
|
||||||
pauseCount=0--Times paused
|
pauseCount=0--Times paused
|
||||||
destroyPlayers()
|
destroyPlayers()
|
||||||
local E=defaultModeEnv[curMode.id]
|
local E=defModeEnv[curMode.id]
|
||||||
modeEnv=E[curMode.lv]or E[1]
|
modeEnv=E[curMode.lv]or E[1]
|
||||||
loadmode[curMode.id]()--bg/bgm need redefine in custom,so up here
|
loadmode[curMode.id]()--bg/bgm need redefine in custom,so up here
|
||||||
if modeEnv.task then
|
if modeEnv.task then
|
||||||
@@ -436,20 +446,24 @@ function loadSetting()
|
|||||||
local p=find(t[i],"=")
|
local p=find(t[i],"=")
|
||||||
if p then
|
if p then
|
||||||
local t,v=sub(t[i],1,p-1),sub(t[i],p+1)
|
local t,v=sub(t[i],1,p-1),sub(t[i],p+1)
|
||||||
if t=="sfx"or t=="bgm"or t=="voc"then
|
if
|
||||||
setting[t]=toN(v:match("[012345678]"))or setting[t]
|
--声音
|
||||||
|
t=="sfx"or t=="bgm"or t=="voc"or t=="stereo"or
|
||||||
|
--三个触摸设置项
|
||||||
|
t=="VKTchW"or t=="VKCurW"or t=="VKAlpha"
|
||||||
|
then
|
||||||
|
v=toN(v)
|
||||||
|
if v==int(v)and v>=0 and v<=10 then
|
||||||
|
setting[t]=v
|
||||||
|
end
|
||||||
elseif t=="vib"then
|
elseif t=="vib"then
|
||||||
setting.vib=toN(v:match("[012345]"))or 0
|
setting.vib=toN(v:match("[012345]"))or 0
|
||||||
elseif t=="fullscreen"then
|
elseif t=="fullscreen"then
|
||||||
setting.fullscreen=v=="true"
|
setting.fullscreen=v=="true"
|
||||||
love.window.setFullscreen(setting.fullscreen)
|
love.window.setFullscreen(setting.fullscreen)
|
||||||
elseif
|
|
||||||
--三个触摸设置项
|
|
||||||
t=="VKTchW"or t=="VKCurW"or t=="VKAlpha"
|
|
||||||
then
|
|
||||||
setting.VKTchW=min(int(abs(toN(v))),10)
|
|
||||||
elseif
|
elseif
|
||||||
--开关设置们
|
--开关设置们
|
||||||
|
t=="bg"or
|
||||||
t=="ghost"or t=="center"or t=="grid"or t=="swap"or
|
t=="ghost"or t=="center"or t=="grid"or t=="swap"or
|
||||||
t=="quickR"or t=="fine"or t=="bgblock"or t=="smo"or
|
t=="quickR"or t=="fine"or t=="bgblock"or t=="smo"or
|
||||||
t=="VKSwitch"or t=="VKTrack"or t=="VKIcon"
|
t=="VKSwitch"or t=="VKTrack"or t=="VKIcon"
|
||||||
@@ -511,6 +525,7 @@ local saveOpt={
|
|||||||
|
|
||||||
"sfx","bgm",
|
"sfx","bgm",
|
||||||
"vib","voc",
|
"vib","voc",
|
||||||
|
"stereo",
|
||||||
|
|
||||||
"VKSwitch",
|
"VKSwitch",
|
||||||
"VKTrack",
|
"VKTrack",
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ Patron(rmb10+):
|
|||||||
[D*a]?
|
[D*a]?
|
||||||
Future outlook:
|
Future outlook:
|
||||||
Normal Things:
|
Normal Things:
|
||||||
in-game setting(scene-sequence system)
|
|
||||||
powerinfo switch
|
powerinfo switch
|
||||||
splashing block
|
splashing block
|
||||||
ajustable next count
|
ajustable next count
|
||||||
@@ -24,7 +23,13 @@ Future outlook:
|
|||||||
infinite 1v1
|
infinite 1v1
|
||||||
square mode
|
square mode
|
||||||
more FXs & 3d features & animations
|
more FXs & 3d features & animations
|
||||||
0.7.29:
|
0.7.31+:
|
||||||
|
in-game setting
|
||||||
|
little changes
|
||||||
|
0.7.31:
|
||||||
|
stereo system
|
||||||
|
fixed a problem in finesse calculating
|
||||||
|
0.7.30:
|
||||||
auto-tracking virtual key,adjustable parameters!
|
auto-tracking virtual key,adjustable parameters!
|
||||||
can switch on/off virtuakeys
|
can switch on/off virtuakeys
|
||||||
add 7 more key
|
add 7 more key
|
||||||
|
|||||||
Reference in New Issue
Block a user