Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4da080c6f5 |
2
conf.lua
2
conf.lua
@@ -1,4 +1,4 @@
|
||||
gameVersion="Alpha V0.8.6"
|
||||
gameVersion="Alpha V0.8.7"
|
||||
function love.conf(t)
|
||||
t.identity="Techmino"--Save directory name
|
||||
t.version="11.1"
|
||||
|
||||
34
dataList.lua
34
dataList.lua
@@ -38,26 +38,26 @@ local function gameOver()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
local D=M.score(P)
|
||||
local L=M.records
|
||||
local p=#L--排名数-1
|
||||
if p>0 then
|
||||
::L::
|
||||
if M.comp(D,L[p])then--是否靠前
|
||||
p=p-1
|
||||
if p>0 then
|
||||
goto L
|
||||
local D=M.score(P)
|
||||
local L=M.records
|
||||
local p=#L--排名数-1
|
||||
if p>0 then
|
||||
::L::
|
||||
if M.comp(D,L[p])then--是否靠前
|
||||
p=p-1
|
||||
if p>0 then
|
||||
goto L
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if p<10 then
|
||||
if p==0 then
|
||||
P:showText(text.newRecord,0,-100,100,"beat",.5)
|
||||
if p<10 then
|
||||
if p==0 then
|
||||
P:showText(text.newRecord,0,-100,100,"beat",.5)
|
||||
end
|
||||
ins(L,p+1,D)
|
||||
if L[11]then L[11]=nil end
|
||||
saveRecord(M.saveFileName,L)
|
||||
end
|
||||
ins(L,p+1,D)
|
||||
if L[11]then L[11]=nil end
|
||||
saveRecord(M.saveFileName,L)
|
||||
end
|
||||
end
|
||||
end--Save record
|
||||
|
||||
30
document.txt
30
document.txt
@@ -11,12 +11,19 @@ spin判定:
|
||||
细节不赘述
|
||||
|
||||
攻击系统:
|
||||
消1/2/3/4攻击0/1/2/4
|
||||
spin1/2/3攻击2/4/6,若mini则减半
|
||||
B2B:增加1~2(techrash)/1~3(spin)攻击
|
||||
B3B:满B2B效果+1额外抵挡
|
||||
PC:将其它的伤害之和开根号后向上取整,再+6~10(本局内递增)+2额外抵挡
|
||||
连击:0,0,1,1,2,2,3,3,4,4,3……
|
||||
普通消除:
|
||||
消1/2/3/4攻击0.25/1.25/2.25/4
|
||||
特殊消除:
|
||||
spin1/2/3攻击2/4/6,若mini则减半
|
||||
B2B:加1(techrash/spin1/spin2)或2(spin3)攻击
|
||||
B3B:在B2B效果之上再+1攻击和+1额外抵挡
|
||||
连击:0,0,1,1,2,2,3,3,4,4,3……
|
||||
特殊消除会增加B2B点数,让之后的特殊消除获得B2B(B3B)增益(详细说明见下文)
|
||||
PC:将上述伤害之和开根号,再+6~10(本局内递增)+2额外抵挡(注:本局消行数>4时会将B2B点数拉满)
|
||||
根据上述规则计算后,向下取整,攻击打出
|
||||
|
||||
分数系统:
|
||||
玩得越牛逼得分越高嗷(
|
||||
|
||||
攻击延迟:
|
||||
消2/3的攻击生效最快,消四其次,spin攻击生效较慢,高连击生效最慢
|
||||
@@ -27,13 +34,12 @@ spin判定:
|
||||
没有用上的额外抵挡会被丢弃,最后剩下的攻击力会发送给对手
|
||||
|
||||
back to back(B2B)点数说明:
|
||||
B2B点数的范围在0~1200
|
||||
在40及以上特殊消除时B2B,在1000以上特殊消除时B3B,1200封顶
|
||||
消四+100
|
||||
空spin加20,不超过1000
|
||||
spin1~3+50/100/180 (mini*.5)
|
||||
B2B点数的范围在0~1200,在点数>=40时进行特殊消除为B2B,>1000时特殊消除为B3B
|
||||
普通消除-250
|
||||
1000以上空放一块-40(不减到低于1000)
|
||||
spin1/2/3:+50/100/180(mini减半)
|
||||
消四:+100
|
||||
空spin:+20,此法得到的点数不能超过1000
|
||||
当点数在1000以上时空放一块-40(不减到低于1000)
|
||||
|
||||
混战模式说明:
|
||||
许多玩家同时进行一局游戏(对手都是AI,不是真人).随着玩家数量的减少,方块下落/垃圾生效速度/垃圾升起速度都会增加.淘汰其它玩家后可以获得一个徽章和该玩家持有的徽章,增强自己的攻击力.
|
||||
|
||||
@@ -54,7 +54,7 @@ return{
|
||||
bgm="背景音乐:",
|
||||
},
|
||||
customVal={
|
||||
drop={"[20G]",1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞"},
|
||||
drop={"0G","1/180G","1/60G","1/40G","1/30G","1/25G","1/20G","1/18G","1/16G","1/14G","1/12G","1/10G","1/9G","1/8G","1/7G","1/6G","1/5G","1/4G","1/3G","1/2G","1G","2G","4G","8G","20G"},
|
||||
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞"},
|
||||
wait=nil,
|
||||
fall=nil,
|
||||
@@ -171,7 +171,7 @@ return{
|
||||
]],
|
||||
support="支持作者",
|
||||
group="官方QQ群",
|
||||
warning="禁 止 私 自 传 播",
|
||||
warning="禁止直接传播游戏本体",
|
||||
WidgetText={
|
||||
main={
|
||||
lang="言/A",
|
||||
|
||||
@@ -39,7 +39,7 @@ return{
|
||||
|
||||
custom="自定义游戏",
|
||||
customOption={
|
||||
drop="下落延迟:",
|
||||
drop="下落速度:",
|
||||
lock="锁定延迟:",
|
||||
wait="放块延迟:",
|
||||
fall="消行延迟:",
|
||||
@@ -54,7 +54,7 @@ return{
|
||||
bgm="背景音乐:",
|
||||
},
|
||||
customVal={
|
||||
drop={"[20G]",1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞"},
|
||||
drop={"0G","1/180G","1/60G","1/40G","1/30G","1/25G","1/20G","1/18G","1/16G","1/14G","1/12G","1/10G","1/9G","1/8G","1/7G","1/6G","1/5G","1/4G","1/3G","1/2G","1G","2G","4G","8G","20G"},
|
||||
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞"},
|
||||
wait=nil,
|
||||
fall=nil,
|
||||
@@ -171,7 +171,7 @@ return{
|
||||
]],
|
||||
support="支持作者",
|
||||
group="官方QQ群",
|
||||
warning="禁 止 私 自 传 播",
|
||||
warning="禁止直接传播游戏本体",
|
||||
WidgetText={
|
||||
main={
|
||||
lang="言/A",
|
||||
|
||||
@@ -52,7 +52,7 @@ return{
|
||||
bgm="BGM:",
|
||||
},
|
||||
customVal={
|
||||
drop={"[20G]",1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞"},
|
||||
drop={"0G","1/180G","1/60G","1/40G","1/30G","1/25G","1/20G","1/18G","1/16G","1/14G","1/12G","1/10G","1/9G","1/8G","1/7G","1/6G","1/5G","1/4G","1/3G","1/2G","1G","2G","4G","8G","20G"},
|
||||
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"∞"},
|
||||
wait=nil,
|
||||
fall=nil,
|
||||
@@ -170,7 +170,7 @@ Lib used:
|
||||
]],
|
||||
support="Support Author",
|
||||
group="Official QQ Group",
|
||||
warning="DO NOT DISTRIBUTE",
|
||||
warning="DO NOT SHARE APP",
|
||||
WidgetText={
|
||||
main={
|
||||
lang="言/A",
|
||||
|
||||
2
list.lua
2
list.lua
@@ -160,7 +160,7 @@ customID={
|
||||
"bg","bgm",
|
||||
}
|
||||
customRange={
|
||||
drop={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
|
||||
drop={1e99,180,60,40,30,25,20,18,16,14,12,10,9,8,7,6,5,4,3,2,1,.5,.25,.125,0},
|
||||
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
|
||||
wait={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
|
||||
fall={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
|
||||
|
||||
14
main.lua
14
main.lua
@@ -9,8 +9,8 @@ local Timer=love.timer.getTime
|
||||
local int,rnd,max,min=math.floor,math.random,math.max,math.min
|
||||
local rem=table.remove
|
||||
|
||||
package.path="?.lua"
|
||||
NULL=function()end
|
||||
package.path="?.lua"--boost
|
||||
function NULL()end
|
||||
--Libs
|
||||
-------------------------------------------------------------
|
||||
system=sys.getOS()
|
||||
@@ -51,7 +51,7 @@ kb.setTextInput(false)
|
||||
ms.setVisible(false)
|
||||
--Application Vars
|
||||
-------------------------------------------------------------
|
||||
customSel={22,22,1,1,7,3,1,1,8,4,1,1,1}
|
||||
customSel={1,22,1,1,7,3,1,1,8,4,1,1,1}
|
||||
preField={h=20}
|
||||
for i=1,10 do preField[i]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}end
|
||||
for i=11,20 do preField[i]={0,0,0,0,0,0,0,0,0,0}end
|
||||
@@ -798,9 +798,9 @@ end
|
||||
local lastX,lastY--last clickDown pos
|
||||
function love.mousepressed(x,y,k,t,num)
|
||||
mouseShow=true
|
||||
if devMode>0 then print(x,y)end
|
||||
if t or scene.swapping then return end
|
||||
mx,my=xOy:inverseTransformPoint(x,y)
|
||||
if devMode>0 then print(mx,my)end
|
||||
if t or scene.swapping then return end
|
||||
if mouseDown[scene.cur]then
|
||||
mouseDown[scene.cur](mx,my,k)
|
||||
elseif k==2 then
|
||||
@@ -816,8 +816,8 @@ function love.mousepressed(x,y,k,t,num)
|
||||
end
|
||||
function love.mousemoved(x,y,dx,dy,t)
|
||||
mouseShow=true
|
||||
if t or scene.swapping then return end
|
||||
mx,my=xOy:inverseTransformPoint(x,y)
|
||||
if t or scene.swapping then return end
|
||||
dx,dy=dx/scr.k,dy/scr.k
|
||||
if mouseMove[scene.cur]then
|
||||
mouseMove[scene.cur](mx,my,dx,dy)
|
||||
@@ -835,8 +835,8 @@ function love.mousemoved(x,y,dx,dy,t)
|
||||
end
|
||||
end
|
||||
function love.mousereleased(x,y,k,t,num)
|
||||
if t or scene.swapping then return end
|
||||
mx,my=xOy:inverseTransformPoint(x,y)
|
||||
if t or scene.swapping then return end
|
||||
if mouseUp[scene.cur]then
|
||||
mouseUp[scene.cur](mx,my,k)
|
||||
end
|
||||
|
||||
@@ -42,7 +42,7 @@ return{
|
||||
Event.win(P,"finish")
|
||||
end
|
||||
end,
|
||||
arr=1,
|
||||
minarr=1,
|
||||
bg="game3",bgm="shining terminal",
|
||||
},
|
||||
load=function()
|
||||
@@ -63,6 +63,6 @@ return{
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]>b[2]end,
|
||||
getRank=function(P)
|
||||
local P=P.modeData.point
|
||||
return P==80 and 5 or P>=70 and 4 or P>=60 and 3 or P>=40 and 2 or P>=20 and 1
|
||||
return P==80 and 5 or P>=70 and 4 or P>=60 and 3 or P>=40 and 2 or P>=20 and 1 or P>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -67,6 +67,6 @@ return{
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
local W=P.modedata.event
|
||||
return W>100 and 4 or W>=80 and 3 or W>=50 and 2 or W>=20 and 1
|
||||
return W>100 and 4 or W>=80 and 3 or W>=50 and 2 or W>=20 and 1 or W>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -80,6 +80,6 @@ return{
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
local W=P.modedata.event
|
||||
return W>40 and 4 or W>=30 and 3 or W>=20 and 2 or W>=10 and 1
|
||||
return W>40 and 4 or W>=30 and 3 or W>=20 and 2 or W>=10 and 1 or W>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -48,7 +48,8 @@ return{
|
||||
return
|
||||
L>=150 and 3 or
|
||||
L>=100 and 2 or
|
||||
L>=40 and 1
|
||||
L>=40 and 1 or
|
||||
L>=1 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -50,7 +50,8 @@ return{
|
||||
return
|
||||
L>=150 and 3 or
|
||||
L>=90 and 2 or
|
||||
L>=40 and 1
|
||||
L>=40 and 1 or
|
||||
L>=1 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -50,7 +50,8 @@ return{
|
||||
return
|
||||
L>=150 and 3 or
|
||||
L>=100 and 2 or
|
||||
L>=40 and 1
|
||||
L>=40 and 1 or
|
||||
L>=1 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -49,7 +49,8 @@ return{
|
||||
return
|
||||
L>=150 and 3 or
|
||||
L>=100 and 2 or
|
||||
L>=40 and 1
|
||||
L>=40 and 1 or
|
||||
L>=1 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -46,6 +46,7 @@ return{
|
||||
L>=100 and 4 or
|
||||
L>=50 and 3 or
|
||||
L>=26 and 2 or
|
||||
L>=10 and 1
|
||||
L>=10 and 1 or
|
||||
L>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -80,7 +80,8 @@ return{
|
||||
return
|
||||
L>=70 and 3 or
|
||||
L>=40 and 2 or
|
||||
L>=20 and 1
|
||||
L>=20 and 1 or
|
||||
L>=5 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -78,7 +78,8 @@ return{
|
||||
else
|
||||
return
|
||||
L>=60 and 2 or
|
||||
L>=30 and 1
|
||||
L>=30 and 1 or
|
||||
L>=10 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -63,6 +63,7 @@ return{
|
||||
L>=191 and 4 or
|
||||
L>=110 and 3 or
|
||||
L>=50 and 2 or
|
||||
L>=2 and 1
|
||||
L>=5 and 1 or
|
||||
L>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -73,6 +73,7 @@ return{
|
||||
W>=80 and 4 or
|
||||
W>=55 and 3 or
|
||||
W>=30 and 2 or
|
||||
W>=20 and 1
|
||||
W>=20 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -73,6 +73,7 @@ return{
|
||||
W>=100 and 4 or
|
||||
W>=70 and 3 or
|
||||
W>=40 and 2 or
|
||||
W>=10 and 1
|
||||
W>=10 and 1 or
|
||||
L>=3 and 0
|
||||
end,
|
||||
}
|
||||
@@ -49,6 +49,7 @@ return{
|
||||
W>=110 and 4 or
|
||||
W>=80 and 3 or
|
||||
W>=50 and 2 or
|
||||
W>=20 and 1
|
||||
W>=20 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -48,6 +48,7 @@ return{
|
||||
W>=100 and 4 or
|
||||
W>=80 and 3 or
|
||||
W>=50 and 2 or
|
||||
W>=20 and 1
|
||||
W>=20 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -35,13 +35,19 @@ return{
|
||||
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
if P.stat.row<100 then return end
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<=70 and 5 or
|
||||
T<=110 and 4 or
|
||||
T<=160 and 3 or
|
||||
T<=240 and 2 or
|
||||
1
|
||||
local L=P.stat.row
|
||||
if L>=100 then
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<=70 and 5 or
|
||||
T<=110 and 4 or
|
||||
T<=160 and 3 or
|
||||
T<=240 and 2 or
|
||||
1
|
||||
else
|
||||
return
|
||||
L>=50 and 1 or
|
||||
L>=10 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -35,13 +35,19 @@ return{
|
||||
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
if P.stat.row<100 then return end
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<=65 and 5 or
|
||||
T<=100 and 4 or
|
||||
T<=145 and 3 or
|
||||
T<=220 and 2 or
|
||||
1
|
||||
local L=P.stat.row
|
||||
if L>=100 then
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<=65 and 5 or
|
||||
T<=100 and 4 or
|
||||
T<=145 and 3 or
|
||||
T<=220 and 2 or
|
||||
1
|
||||
else
|
||||
return
|
||||
L>=50 and 1 or
|
||||
L>=10 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -41,6 +41,7 @@ return{
|
||||
L>=1500 and 4 or
|
||||
L>=1000 and 3 or
|
||||
L>=500 and 2 or
|
||||
L>=100 and 1
|
||||
L>=100 and 1 or
|
||||
L>=20 and 0
|
||||
end,
|
||||
}
|
||||
@@ -58,6 +58,7 @@ return{
|
||||
L>=400 and 4 or
|
||||
L>=200 and 3 or
|
||||
L>=100 and 2 or
|
||||
L>=10 and 1
|
||||
L>=40 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -1,7 +1,16 @@
|
||||
local gc=love.graphics
|
||||
local function check(P)
|
||||
if P.stat.row>=200 then
|
||||
Event.win(P,"finish")
|
||||
if P.stat.row>=P.gameEnv.target then
|
||||
local T=P.gameEnv.target
|
||||
if T==50 then
|
||||
P.gameEnv.drop=.25
|
||||
P.gameEnv.target=100
|
||||
elseif T==100 then
|
||||
P.gameEnv._20G=true
|
||||
P.gameEnv.target=200
|
||||
else
|
||||
Event.win(P,"finish")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -23,8 +32,9 @@ return{
|
||||
},
|
||||
color=color.magenta,
|
||||
env={
|
||||
_20G=true,fall=15,
|
||||
dropPiece=check,
|
||||
drop=.5,fall=30,
|
||||
target=50,dropPiece=check,
|
||||
mindas=7,minarr=1,
|
||||
bg="strap",bgm="race",
|
||||
},
|
||||
load=function()
|
||||
@@ -33,7 +43,7 @@ return{
|
||||
mesDisp=function(P,dx,dy)
|
||||
setFont(45)
|
||||
mStr(P.stat.row,-82,320)
|
||||
mStr(200,-82,370)
|
||||
mStr(P.gameEnv.target,-82,370)
|
||||
gc.rectangle("fill",-125,375,90,4)
|
||||
end,
|
||||
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
|
||||
@@ -45,12 +55,13 @@ return{
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<=200 and 5 or
|
||||
T<=260 and 4 or
|
||||
T<=270 and 4 or
|
||||
3
|
||||
else
|
||||
return
|
||||
L>=100 and 2 or
|
||||
L>=50 and 1
|
||||
L>=50 and 1 or
|
||||
L>=10 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -1,15 +1,14 @@
|
||||
local gc=love.graphics
|
||||
local marathon_drop={[0]=60,48,40,30,24,18,15,12,10,8,7,6,5,4,3,2,1,1,0,0}
|
||||
local dropSpeed={[0]=60,50,40,30,25,20,15,12,9,7,5,4,3,2,1,1,.5,.5,.25,.25}
|
||||
local function check_LVup(P)
|
||||
local T=P.modeData.point+10
|
||||
if P.stat.row>=T then
|
||||
if T==200 then
|
||||
Event.win(P,"finish")
|
||||
else
|
||||
P.gameEnv.drop=marathon_drop[T/10]
|
||||
if T==180 then P.gameEnv._20G=true end
|
||||
SFX("reach")
|
||||
P.gameEnv.drop=dropSpeed[T/10]
|
||||
P.modeData.point=T
|
||||
SFX("reach")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -32,8 +31,9 @@ return{
|
||||
},
|
||||
color=color.green,
|
||||
env={
|
||||
drop=60,fall=20,
|
||||
fall=30,
|
||||
target=10,dropPiece=check_LVup,
|
||||
mindas=7,minarr=1,
|
||||
bg="strap",bgm="way",
|
||||
},
|
||||
load=function()
|
||||
@@ -53,13 +53,14 @@ return{
|
||||
if L>=200 then
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<=180 and 5 or
|
||||
T<=240 and 4 or
|
||||
T<=185 and 5 or
|
||||
T<=250 and 4 or
|
||||
3
|
||||
else
|
||||
return
|
||||
L>=150 and 2 or
|
||||
L>=100 and 1
|
||||
L>=100 and 1 or
|
||||
L>=20 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -55,7 +55,7 @@ return{
|
||||
wait=death_wait[1],
|
||||
fall=death_fall[1],
|
||||
dropPiece=score,
|
||||
das=6,arr=1,
|
||||
mindas=6,minarr=1,
|
||||
freshLimit=15,
|
||||
bg="game2",bgm="secret7th",
|
||||
},
|
||||
@@ -85,7 +85,8 @@ return{
|
||||
return
|
||||
S>=426 and 3 or
|
||||
S>=326 and 2 or
|
||||
S>=226 and 1
|
||||
S>=226 and 1 or
|
||||
S>=50 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -89,7 +89,8 @@ return{
|
||||
return
|
||||
S>=420 and 3 or
|
||||
S>=250 and 2 or
|
||||
S>=120 and 1
|
||||
S>=120 and 1 or
|
||||
L>=30 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -54,7 +54,7 @@ return{
|
||||
_20G=true,lock=12,
|
||||
wait=10,fall=10,
|
||||
dropPiece=score,
|
||||
das=5,arr=1,
|
||||
mindas=5,minarr=1,
|
||||
freshLimit=15,
|
||||
easyFresh=false,bone=true,
|
||||
bg="none",bgm="shining terminal",
|
||||
@@ -79,6 +79,7 @@ return{
|
||||
S>=800 and 4 or
|
||||
S>=600 and 3 or
|
||||
S>=400 and 2 or
|
||||
S>=200 and 1
|
||||
S>=200 and 1 or
|
||||
L>=50 and 0
|
||||
end,
|
||||
}
|
||||
@@ -52,6 +52,7 @@ return{
|
||||
L>=13 and 4 or
|
||||
L>=10 and 3 or
|
||||
L>=7 and 2 or
|
||||
L>=4 and 1
|
||||
L>=4 and 1 or
|
||||
L>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -52,6 +52,7 @@ return{
|
||||
L>=12 and 4 or
|
||||
L>=9 and 3 or
|
||||
L>=6 and 2 or
|
||||
L>=3 and 1
|
||||
L>=3 and 1 or
|
||||
L>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -51,6 +51,7 @@ return{
|
||||
L>=20 and 4 or
|
||||
L>=16 and 3 or
|
||||
L>=13 and 2 or
|
||||
L>=10 and 1
|
||||
L>=10 and 1 or
|
||||
L>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -109,6 +109,7 @@ return{
|
||||
L>=40 and 4 or
|
||||
L>=30 and 3 or
|
||||
L>=20 and 2 or
|
||||
L>=10 and 1
|
||||
L>=10 and 1 or
|
||||
L>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -92,6 +92,7 @@ return{
|
||||
L>=60 and 4 or
|
||||
L>=40 and 3 or
|
||||
L>=25 and 2 or
|
||||
L>=15 and 1
|
||||
L>=15 and 1 or
|
||||
L>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -28,7 +28,7 @@ return{
|
||||
},
|
||||
color=color.cyan,
|
||||
env={
|
||||
drop=60,lock=60,
|
||||
drop=1e99,lock=1e99,
|
||||
oncehold=false,
|
||||
dropPiece=update_round,
|
||||
bg="game2",bgm="push",
|
||||
|
||||
@@ -28,7 +28,7 @@ return{
|
||||
},
|
||||
color=color.green,
|
||||
env={
|
||||
drop=60,lock=60,
|
||||
drop=1e99,lock=1e99,
|
||||
oncehold=false,
|
||||
dropPiece=update_round,
|
||||
bg="game2",bgm="push",
|
||||
|
||||
@@ -28,7 +28,7 @@ return{
|
||||
},
|
||||
color=color.magenta,
|
||||
env={
|
||||
drop=60,lock=60,
|
||||
drop=1e99,lock=1e99,
|
||||
oncehold=false,
|
||||
dropPiece=update_round,
|
||||
bg="game2",bgm="push",
|
||||
|
||||
@@ -28,7 +28,7 @@ return{
|
||||
},
|
||||
color=color.red,
|
||||
env={
|
||||
drop=60,lock=60,
|
||||
drop=1e99,lock=1e99,
|
||||
oncehold=false,
|
||||
dropPiece=update_round,
|
||||
bg="game2",bgm="push",
|
||||
|
||||
@@ -28,7 +28,7 @@ return{
|
||||
},
|
||||
color=color.lightYellow,
|
||||
env={
|
||||
drop=60,lock=60,
|
||||
drop=1e99,lock=1e99,
|
||||
oncehold=false,
|
||||
dropPiece=update_round,
|
||||
bg="game2",bgm="push",
|
||||
|
||||
@@ -48,6 +48,7 @@ return{
|
||||
T<=10 and 4 or
|
||||
T<=25 and 3 or
|
||||
T<=40 and 2 or
|
||||
T<=60 and 1
|
||||
T<=60 and 1 or
|
||||
0
|
||||
end,
|
||||
}
|
||||
@@ -48,6 +48,7 @@ return{
|
||||
T<=90 and 4 or
|
||||
T<=130 and 3 or
|
||||
T<=200 and 2 or
|
||||
T<=270 and 1
|
||||
T<=270 and 1 or
|
||||
0
|
||||
end,
|
||||
}
|
||||
@@ -48,6 +48,7 @@ return{
|
||||
T<=1000 and 4 or
|
||||
T<=1400 and 3 or
|
||||
T<=2200 and 2 or
|
||||
T<=3000 and 1
|
||||
T<=3000 and 1 or
|
||||
0
|
||||
end,
|
||||
}
|
||||
@@ -48,6 +48,7 @@ return{
|
||||
T<=18 and 4 or
|
||||
T<=45 and 3 or
|
||||
T<=70 and 2 or
|
||||
T<=100 and 1
|
||||
T<=100 and 1 or
|
||||
0
|
||||
end,
|
||||
}
|
||||
@@ -47,7 +47,8 @@ return{
|
||||
T<=25 and 5 or
|
||||
T<=32 and 4 or
|
||||
T<=40 and 3 or
|
||||
T<=60 and 2 or
|
||||
T<=120 and 1
|
||||
T<=62 and 2 or
|
||||
T<=126 and 1 or
|
||||
0
|
||||
end,
|
||||
}
|
||||
@@ -48,6 +48,7 @@ return{
|
||||
T<=330 and 4 or
|
||||
T<=420 and 3 or
|
||||
T<=626 and 2 or
|
||||
T<=1000 and 1
|
||||
T<=1000 and 1 or
|
||||
0
|
||||
end,
|
||||
}
|
||||
@@ -53,6 +53,7 @@ return{
|
||||
W>=60 and 4 or
|
||||
W>=45 and 3 or
|
||||
W>=30 and 2 or
|
||||
W>=15 and 1
|
||||
W>=15 and 1 or
|
||||
W>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -58,6 +58,7 @@ return{
|
||||
W>=60 and 4 or
|
||||
W>=45 and 3 or
|
||||
W>=30 and 2 or
|
||||
W>=15 and 1
|
||||
W>=15 and 1 or
|
||||
W>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -54,6 +54,7 @@ return{
|
||||
W>=80 and 4 or
|
||||
W>=55 and 3 or
|
||||
W>=30 and 2 or
|
||||
W>=15 and 1
|
||||
W>=15 and 1 or
|
||||
W>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -58,6 +58,7 @@ return{
|
||||
W>=55 and 4 or
|
||||
W>=45 and 3 or
|
||||
W>=30 and 2 or
|
||||
W>=15 and 1
|
||||
W>=15 and 1 or
|
||||
W>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -58,6 +58,7 @@ return{
|
||||
W>=26 and 4 or
|
||||
W>=20 and 3 or
|
||||
W>=10 and 2 or
|
||||
W>=5 and 1
|
||||
W>=5 and 1 or
|
||||
W>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -49,6 +49,7 @@ return{
|
||||
L>=126 and 4 or
|
||||
L>=90 and 3 or
|
||||
L>=60 and 2 or
|
||||
L>=30 and 1
|
||||
L>=30 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -49,6 +49,7 @@ return{
|
||||
L>=126 and 4 or
|
||||
L>=90 and 3 or
|
||||
L>=60 and 2 or
|
||||
L>=30 and 1
|
||||
L>=30 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -49,6 +49,7 @@ return{
|
||||
L>=140 and 4 or
|
||||
L>=90 and 3 or
|
||||
L>=60 and 2 or
|
||||
L>=30 and 1
|
||||
L>=30 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -49,6 +49,7 @@ return{
|
||||
L>=140 and 4 or
|
||||
L>=90 and 3 or
|
||||
L>=60 and 2 or
|
||||
L>=30 and 1
|
||||
L>=30 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -49,6 +49,7 @@ return{
|
||||
L>=126 and 4 or
|
||||
L>=80 and 3 or
|
||||
L>=50 and 2 or
|
||||
L>=20 and 1
|
||||
L>=20 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -49,6 +49,7 @@ return{
|
||||
L>=126 and 4 or
|
||||
L>=80 and 3 or
|
||||
L>=50 and 2 or
|
||||
L>=20 and 1
|
||||
L>=20 and 1 or
|
||||
L>=5 and 0
|
||||
end,
|
||||
}
|
||||
@@ -50,6 +50,7 @@ return{
|
||||
L>=150 and 4 or
|
||||
L>=100 and 3 or
|
||||
L>=70 and 2 or
|
||||
L>=40 and 1
|
||||
L>=40 and 1 or
|
||||
L>=10 and 0
|
||||
end,
|
||||
}
|
||||
@@ -50,6 +50,7 @@ return{
|
||||
L>=150 and 4 or
|
||||
L>=100 and 3 or
|
||||
L>=70 and 2 or
|
||||
L>=40 and 1
|
||||
L>=40 and 1 or
|
||||
L>=10 and 0
|
||||
end,
|
||||
}
|
||||
@@ -96,6 +96,7 @@ return{
|
||||
R<=3 and 4 or
|
||||
R<=5 and 3 or
|
||||
R<=10 and 2 or
|
||||
R<=15 and 1
|
||||
R<=15 and 1 or
|
||||
R<=45 and 0
|
||||
end,
|
||||
}
|
||||
@@ -96,6 +96,7 @@ return{
|
||||
R==2 and 4 or
|
||||
R<=4 and 3 or
|
||||
R<=6 and 2 or
|
||||
R<=8 and 1
|
||||
R<=8 and 1 or
|
||||
R<=45 and 0
|
||||
end,
|
||||
}
|
||||
@@ -96,6 +96,7 @@ return{
|
||||
R==2 and 4 or
|
||||
R==3 and 3 or
|
||||
R==4 and 2 or
|
||||
R<=6 and 1
|
||||
R<=6 and 1 or
|
||||
R<=45 and 0
|
||||
end,
|
||||
}
|
||||
@@ -96,6 +96,7 @@ return{
|
||||
R<=3 and 4 or
|
||||
R<=6 and 3 or
|
||||
R<=10 and 2 or
|
||||
R<=20 and 1
|
||||
R<=20 and 1 or
|
||||
R<=90 and 0
|
||||
end,
|
||||
}
|
||||
@@ -96,6 +96,7 @@ return{
|
||||
R<=3 and 4 or
|
||||
R<=6 and 3 or
|
||||
R<=8 and 2 or
|
||||
R<=10 and 1
|
||||
R<=10 and 1 or
|
||||
R<=90 and 0
|
||||
end,
|
||||
}
|
||||
@@ -96,6 +96,7 @@ return{
|
||||
R==2 and 4 or
|
||||
R==3 and 3 or
|
||||
R<=5 and 2 or
|
||||
R<=7 and 1
|
||||
R<=7 and 1 or
|
||||
R<=90 and 0
|
||||
end,
|
||||
}
|
||||
@@ -41,7 +41,7 @@ return{
|
||||
mDraw(drawableText.tsd,-82,407)
|
||||
end,
|
||||
score=function(P)return{P.modeData.event,P.stat.time}end,
|
||||
scoreDisp=function(D)return"NO."..D[1]" KO:"..D[2]end,
|
||||
scoreDisp=function(D)return"NO."..D[1].." KO:"..D[2]end,
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
local T=P.modeData.event
|
||||
@@ -50,6 +50,7 @@ return{
|
||||
T>=20 and 4 or
|
||||
T>=15 and 3 or
|
||||
T>=10 and 2 or
|
||||
T>=6 and 1
|
||||
T>=6 and 1 or
|
||||
T>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -41,7 +41,7 @@ return{
|
||||
mDraw(drawableText.tsd,-82,407)
|
||||
end,
|
||||
score=function(P)return{P.modeData.event,P.stat.time}end,
|
||||
scoreDisp=function(D)return"NO."..D[1]" KO:"..D[2]end,
|
||||
scoreDisp=function(D)return"NO."..D[1].." KO:"..D[2]end,
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
local T=P.modeData.event
|
||||
@@ -50,6 +50,7 @@ return{
|
||||
T>=19 and 4 or
|
||||
T>=16 and 3 or
|
||||
T>=13 and 2 or
|
||||
T>=10 and 1
|
||||
T>=10 and 1 or
|
||||
T>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -41,7 +41,7 @@ return{
|
||||
mDraw(drawableText.tsd,-82,407)
|
||||
end,
|
||||
score=function(P)return{P.modeData.event,P.stat.time}end,
|
||||
scoreDisp=function(D)return"NO."..D[1]" KO:"..D[2]end,
|
||||
scoreDisp=function(D)return"NO."..D[1].." KO:"..D[2]end,
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
local T=P.modeData.event
|
||||
@@ -50,6 +50,7 @@ return{
|
||||
T>=18 and 4 or
|
||||
T>=16 and 3 or
|
||||
T>=14 and 2 or
|
||||
T>=12 and 1
|
||||
T>=12 and 1 or
|
||||
T>=1 and 0
|
||||
end,
|
||||
}
|
||||
@@ -35,10 +35,10 @@ return{
|
||||
getRank=function(P)
|
||||
local T=P.stat.score
|
||||
return
|
||||
T>=1e5 and 5 or
|
||||
T>=8e4 and 4 or
|
||||
T>=5e4 and 3 or
|
||||
T>=2e4 and 2 or
|
||||
T>=12e4 and 5 or
|
||||
T>=10e4 and 4 or
|
||||
T>=6e4 and 3 or
|
||||
T>=3e4 and 2 or
|
||||
T>=1e4 and 1
|
||||
end,
|
||||
}
|
||||
37
player.lua
37
player.lua
@@ -27,6 +27,7 @@ local gameEnv0={
|
||||
freshLimit=1e99,easyFresh=true,
|
||||
fine=false,fineKill=false,
|
||||
target=1e99,dropPiece=NULL,
|
||||
mindas=0,minarr=0,
|
||||
bg="none",bgm="race"
|
||||
}
|
||||
local renATK={[0]=0,0,0,1,1,2,2,3,3,4,4}--3 else
|
||||
@@ -41,9 +42,10 @@ local spinSCR={--[blockName][row]
|
||||
{250,800,1500},--T
|
||||
{300,1000,2200},--O
|
||||
{300,1000,1800},--I
|
||||
}--MUL:1.2,2.0
|
||||
--Techrash:1K;MUL:1.3,1.8
|
||||
--Mini*=.5
|
||||
}
|
||||
--B2BMUL:1.2/2.0
|
||||
--Techrash:1K;MUL:1.3/1.8
|
||||
--Mini*=.6
|
||||
local visible_opt={show=1e99,time=300,fast=20,none=5}
|
||||
local reAtk={0,0,1,1,1,2,2,3,3}
|
||||
local reDef={0,1,1,2,3,3,4,4,5}
|
||||
@@ -724,11 +726,23 @@ function player.update(P,dt)
|
||||
goto stop
|
||||
end
|
||||
if P.curY~=P.y_img then
|
||||
if P.dropDelay>=0 then
|
||||
P.dropDelay=P.dropDelay-1
|
||||
if P.dropDelay>0 then goto stop end
|
||||
local D=P.dropDelay
|
||||
if D>1 then
|
||||
P.dropDelay=D-1
|
||||
goto stop
|
||||
end
|
||||
if D==1 then
|
||||
P.curY=P.curY-1
|
||||
else
|
||||
local _=P.curY-P.y_img--max fall dist
|
||||
D=1/D--fall dist
|
||||
if D<_ then
|
||||
P.curY=P.curY-D
|
||||
assert(P.curY==int(P.curY),"y:"..P.curY.." fall:"..D.." D_env:"..P.gameEnv.drop)
|
||||
else
|
||||
P.curY=P.y_img
|
||||
end
|
||||
end
|
||||
P.curY=P.curY-1
|
||||
P.spinLast=false
|
||||
if P.y_img~=P.curY then
|
||||
P.dropDelay=P.gameEnv.drop
|
||||
@@ -1507,7 +1521,7 @@ function player.drop(P)--Place piece
|
||||
P:showText(text.mini,0,-80,35,"appear")
|
||||
send=send*.5
|
||||
sendTime=sendTime+60
|
||||
cscore=cscore*.5
|
||||
cscore=cscore*.6
|
||||
P.b2b=P.b2b+b2bPoint[cc]*.5
|
||||
if P.human then
|
||||
VOICE("mini",CHN)
|
||||
@@ -1524,7 +1538,7 @@ function player.drop(P)--Place piece
|
||||
elseif #P.field>0 then
|
||||
P.b2b=max(P.b2b-250,0)
|
||||
P:showText(text.clear[cc],0,-30,27+cc*3,"appear",(8-cc)*.3)
|
||||
send=cc-1
|
||||
send=cc-.75
|
||||
sendTime=20+send*20
|
||||
cscore=cscore+clearSCR[cc]
|
||||
P.lastClear=cc
|
||||
@@ -1542,7 +1556,7 @@ function player.drop(P)--Place piece
|
||||
end
|
||||
if #P.field==0 then
|
||||
P:showText(text.PC,0,-80,50,"flicker")
|
||||
send=ceil(send^.5)+min(6+P.stat.pc,10)
|
||||
send=send^.5+min(6+P.stat.pc,10)
|
||||
exblock=exblock+2
|
||||
sendTime=sendTime+60
|
||||
if P.stat.row>4 then
|
||||
@@ -2100,6 +2114,9 @@ function newPlayer(id,x,y,size,AIdata)
|
||||
P.gameEnv[k]=v
|
||||
end
|
||||
end--reset current game settings
|
||||
P.gameEnv.das=max(P.gameEnv.das,P.gameEnv.mindas)
|
||||
P.gameEnv.arr=max(P.gameEnv.arr,P.gameEnv.minarr)
|
||||
|
||||
P.cur={bk={{}},id=0,color=0,name=0}--shape,shapeID,colorID,nameID
|
||||
P.sc,P.dir,P.r,P.c={0,0},0,0,0--spinCenter,direction,row,col
|
||||
P.curX,P.curY,P.y_img=0,0,0--x,y,ghostY
|
||||
|
||||
@@ -50,7 +50,13 @@ local sceneInit={
|
||||
curBG="glow"
|
||||
BGM("blank")
|
||||
destroyPlayers()
|
||||
mapCam.zoomK=scene.swap.tar=="mode"and 5 or 1
|
||||
local cam=mapCam
|
||||
cam.zoomK=scene.swap.tar=="mode"and 5 or 1
|
||||
if cam.sel then
|
||||
local M=modes[cam.sel]
|
||||
cam.x,cam.y=M.x*cam.k+180,M.y*cam.k
|
||||
cam.x1,cam.y1=cam.x,cam.y
|
||||
end
|
||||
end,
|
||||
custom=function()
|
||||
sceneTemp=1--option select
|
||||
|
||||
72
toolfunc.lua
72
toolfunc.lua
@@ -20,12 +20,12 @@ end
|
||||
|
||||
function toTime(s)
|
||||
if s<60 then
|
||||
return format("%.3fs",s)
|
||||
return format("%.3f",s)
|
||||
elseif s<3600 then
|
||||
return format("%dm%.2fs",int(s/60),s%60)
|
||||
return format("%d:%.2f",int(s/60),s%60)
|
||||
else
|
||||
local h=int(s/3600)
|
||||
return format("%dh%dm%.2fs",h,int(s-h/60),s%60)
|
||||
return format("%d:%d:%.2f",h,int(s-h/60),s%60)
|
||||
end
|
||||
end
|
||||
function mStr(s,x,y)
|
||||
@@ -145,53 +145,65 @@ function restoreVirtualKey()
|
||||
end
|
||||
function copyBoard()
|
||||
local str=""
|
||||
for y=1,20 do
|
||||
local H=20
|
||||
for y=20,1,-1 do
|
||||
for x=1,10 do
|
||||
if preField[y][x]~=0 then
|
||||
H=y
|
||||
goto L
|
||||
end
|
||||
end
|
||||
end
|
||||
::L::
|
||||
for y=1,H do
|
||||
local L=""
|
||||
for x=1,10 do
|
||||
local s=preField[y][x]
|
||||
if s>7 then s=s-1 end
|
||||
L=L..char(66+s)
|
||||
end
|
||||
str=str..L.."\n"
|
||||
-- str=str..L.."\n"
|
||||
end
|
||||
love.system.setClipboardText("Techmino sketchpad:\n"..str)
|
||||
love.system.setClipboardText("Techmino sketchpad:"..str)
|
||||
TEXT(text.copySuccess,350,360,40,"appear",.5)
|
||||
end
|
||||
function pasteBoard()
|
||||
local str=love.system.getClipboardText()
|
||||
local len=#str
|
||||
local s,p,P,_=0,1,10--sum,pStr,pField
|
||||
if sub(str,1,20)=="Techmino sketchpad:\n"then
|
||||
p=21
|
||||
else
|
||||
p=find(str,":")
|
||||
if p then
|
||||
p=p+1
|
||||
else
|
||||
p=find(str,"[A-N]")
|
||||
end
|
||||
end
|
||||
::L1::
|
||||
_=byte(str,p)
|
||||
if _<65 or _>78 then
|
||||
local _
|
||||
local p,P=1,10--sum,pStr,pField(r*10+(c-1))
|
||||
p=find(str,":")
|
||||
if p then
|
||||
p=p+1
|
||||
goto L1
|
||||
end
|
||||
::L2::
|
||||
if s==200 then return end
|
||||
if p>len then
|
||||
if s~=200 then
|
||||
else
|
||||
p=find(str,"[A-N]")
|
||||
if not p then
|
||||
goto E
|
||||
end
|
||||
end
|
||||
_=byte(sub(str,p))-66
|
||||
end--int p*//head
|
||||
::L::
|
||||
_=byte(str,p)
|
||||
if P==210 then
|
||||
return
|
||||
elseif not _ then
|
||||
if P%10~=0 then
|
||||
goto E
|
||||
else
|
||||
return
|
||||
end
|
||||
end--end check
|
||||
_=_-66
|
||||
if _<-1 or _>12 then
|
||||
p=p+1
|
||||
goto L
|
||||
end--skip illegal char
|
||||
if _>-2 and _<13 then
|
||||
if _>7 then _=_+1 end
|
||||
preField[int(P/10)][P%10+1]=_
|
||||
s,P=s+1,P+1
|
||||
P=P+1
|
||||
end
|
||||
p=p+1
|
||||
goto L2
|
||||
goto L
|
||||
::E::
|
||||
TEXT(text.dataCorrupted,350,360,35,"flicker",.5)
|
||||
end
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
--[[
|
||||
big bang未完成
|
||||
]]
|
||||
local S=[=[
|
||||
Patron(rmb10+):
|
||||
Fireboos
|
||||
@@ -34,12 +31,19 @@ Future outlook:
|
||||
auto GUI position in any screen size
|
||||
more FXs & 3d features & animations
|
||||
Encrypt source code(compile to byte code)
|
||||
0.8.7:
|
||||
better user experience in mode selecting
|
||||
support 2^n G falling speed
|
||||
speed of marathon mode changed
|
||||
shorter clipboard string(when air above)
|
||||
attack system/score system little changed
|
||||
bugs fixed(rank system,some mode error when enter)(again!)
|
||||
0.8.6:
|
||||
gamepad can adjust key
|
||||
add SFX when enter game
|
||||
map GUI little adjusted
|
||||
event system little changed(no ctrl when scene swapping)
|
||||
bug fixed(rank system,some mode error when enter)
|
||||
bugs fixed(rank system,some mode error when enter)
|
||||
0.8.5-:
|
||||
mode map!Brandly new GUI for mode selecting
|
||||
mode unlock system,not that scary for noob
|
||||
|
||||
@@ -73,11 +73,11 @@ local virtualkeySet={
|
||||
},--PC key feedback(top&in a row)
|
||||
}
|
||||
local customSet={
|
||||
{20,20,1,1,7,1,1,1,3,4,1,2,3},
|
||||
{18,20,1,1,7,1,1,1,8,3,8,3,3},
|
||||
{22,22,1,1,7,3,1,1,8,4,1,7,7},
|
||||
{20,20,1,1,7,1,1,3,8,3,1,7,8},
|
||||
{1,11,8,11,4,1,2,1,8,3,1,4,9},
|
||||
{3,20,1,1,7,1,1,1,3,4,1,2,3},
|
||||
{5,20,1,1,7,1,1,1,8,3,8,3,3},
|
||||
{1,22,1,1,7,3,1,1,8,4,1,7,7},
|
||||
{3,20,1,1,7,1,1,3,8,3,1,7,8},
|
||||
{25,11,8,11,4,1,2,1,8,3,1,4,9},
|
||||
}
|
||||
local function useDefaultSet(n)
|
||||
for i=1,#customSet[n]do
|
||||
|
||||
Reference in New Issue
Block a user