Compare commits

..

16 Commits

Author SHA1 Message Date
MrZ_26
d46d111900 0.10.3:软件锁 2020-08-12 00:04:48 +08:00
MrZ_26
87d6e0b501 回放时暂停不打断玩家操作 2020-08-12 00:02:26 +08:00
MrZ_26
45430a6a4a 修复禁断连c4wtrain的成绩为随机(我傻逼) 2020-08-11 23:22:57 +08:00
MrZ_26
7f8a10327b 剩余锁延重置次数指示器改为长方形 2020-08-11 18:28:19 +08:00
MrZ_26
bebe4b96a3 设置添加软件锁,debug界面改为重置界面,进入方法调整 2020-08-11 17:57:57 +08:00
MrZ_26
c1fd22f0b4 场景系统逻辑微调 2020-08-11 00:35:26 +08:00
MrZ_26
0f204e8659 取消按钮喵叫 2020-08-11 00:34:40 +08:00
MrZ_26
9529597a0d 取消"找不到语音"的print 2020-08-11 00:32:19 +08:00
MrZ_26
392ec9abab 加载完毕标记 2020-08-11 00:31:37 +08:00
MrZ_26
d0c7e14f74 "声明"变量 2020-08-11 00:26:44 +08:00
MrZ_26
3cd86472f8 修复回放也计入排行榜 2020-08-10 23:18:21 +08:00
MrZ_26
1e6e3d0d50 时间tip报错 2020-08-10 19:00:25 +08:00
MrZ_26
ed89685925 语音音量设置连续 2020-08-10 01:44:26 +08:00
MrZ_26
971dce6a66 极简提示音量放大 2020-08-10 01:44:00 +08:00
MrZ_26
5de78e924d 取消quickR设置,修改游戏设置布局,增加相关tip 2020-08-10 01:43:39 +08:00
MrZ_26
de0de3a771 修复无尽挖掘报错,小改垃圾行出现代码 2020-08-10 01:37:49 +08:00
17 changed files with 288 additions and 155 deletions

View File

@@ -25,6 +25,7 @@ local Timer=love.timer.getTime
local int,rnd,max,min=math.floor,math.random,math.max,math.min
local abs=math.abs
local ins,rem=table.insert,table.remove
local byte=string.byte
local scr=scr
local xOy=love.math.newTransform()
@@ -127,6 +128,75 @@ local touchDown,touchUp,touchMove={},{},{}
local keyDown,keyUp={},{}
local gamepadDown,gamepadUp={},{}
function keyDown.calculator(k)
local S=sceneTemp
if byte(k)>=48 and byte(k)<=57 then
if S.sym=="="then
S.val=tonumber(k)
S.sym=false
elseif S.sym then
if not S.reg then
S.reg=S.val
S.val=tonumber(k)
elseif S.val<1e13 then
S.val=S.val*10+tonumber(k)
end
else
if S.val<1e13 then
S.val=S.val*10+tonumber(k)
end
end
elseif k=="backspace"then
if S.val>0 then
S.val=int(S.val/10)
end
elseif k=="+"or k=="="and kb.isDown("rshift","lshift")then
S.sym="+"
elseif k=="-"then
S.sym="-"
elseif k=="*"or k=="8"and kb.isDown("rshift","lshift")then
S.sym="*"
elseif k=="/"then
S.sym="/"
elseif k=="return"then
if S.val then
if S.sym and S.reg then
S.val=
S.sym=="+"and S.reg+S.val or
S.sym=="-"and S.reg-S.val or
S.sym=="*"and S.reg*S.val or
S.sym=="/"and S.reg/S.val or
-1
end
S.sym="="
S.reg=false
if S.val==626 then
S.pass=true
elseif S.val==196022 then
marking=nil
TEXT.show("\68\69\86\58\87\97\116\101\114\109\97\114\107\32\82\101\109\111\118\101\100",640,360,60,"stretch",.6)
SFX.play("clear")
elseif S.val==72943816 then
for name,M in next,Modes do
if not modeRanks[name]then
modeRanks[name]=M.score and 0 or 6
end
end
FILE.saveUnlock()
TEXT.show("\68\69\86\58\85\78\76\79\67\75\65\76\76",640,360,60,"stretch",.6)
SFX.play("clear_2")
elseif S.val==137926261379 then
SCN.goto("debug")
end
end
elseif k=="space"then
if S.pass then
SCN.goto("load")
end
end
end
function keyDown.load(k)
if k=="a"then
sceneTemp.skip=true
@@ -738,34 +808,6 @@ function gamepadUp.play(key)
end
end
function keyDown.staff(key,RESET)
if key=="escape"then
SCN.back()
elseif key=="\122"then
if RESET or kb.isDown("\109")and kb.isDown("\114")then
SCN.goto("debug")
end
end
end
function touchDown.staff(id,x,y)
local pw=sceneTemp.pw
local t=pw%4
if
t==0 and x<640 and y<360 or
t==1 and x>640 and y<360 or
t==2 and x<640 and y>360 or
t==3 and x>640 and y>360
then
pw=pw+1
if pw==8 then
SCN.goto("debug")
end
else
pw=x<640 and y<360==1 and 1 or 0
end
sceneTemp.pw=pw
end
function wheelMoved.history(x,y)
wheelScroll(y)
end
@@ -1050,7 +1092,7 @@ function love.run()
local FCT=0--Framedraw counter
love.resize(gc.getWidth(),gc.getHeight())
SCN.init("load")--Scene Launch
SCN.init(setting.lock and "calculator"or"load")--Scene Launch
marking=true
return function()
@@ -1152,7 +1194,7 @@ function love.run()
end
--Fresh power info.
if Timer()-lastFreshPow>2 and setting.powerInfo and SCN.cur~="load"then
if Timer()-lastFreshPow>2 and setting.powerInfo and loadingFinished then
updatePowerInfo()
lastFreshPow=Timer()
_=gc.getWidth()

View File

@@ -186,6 +186,17 @@ local langList={
support="支持作者",
group="官方QQ群(如果没有被暗改的话就是这个):1080457319",
WidgetText={
calculator={
_1="1",_2="2",_3="3",
_4="4",_5="5",_6="6",
_7="7",_8="8",_9="9",
_0="0",["<"]="<",["="]="=",
["+"]="+",
["-"]="-",
["*"]="*",
["/"]="/",
play="开始",
},
main={
play="开始",
setting="设置",
@@ -258,15 +269,15 @@ local langList={
graphic="←画面设置",
sound="声音设置→",
ctrl="控制设置",
reTime="开局等待时间",
maxNext="最大预览数量",
autoPause="自动暂停",
layout="外观",
key="键位设置",
touch="触屏设置",
quickR="快速重新开始",
reTime="开局等待时间",
maxNext="最大预览数量",
layout="外观",
autoPause="失去焦点自动暂停",
swap="组合键切换攻击模式",
fine="极简操作提示音",
lock="软件锁(密码626)",
back="返回",
},
setting_video={
@@ -376,8 +387,6 @@ local langList={
back="返回",
},
debug={
killWTM="关闭水印",
unlock="解锁全模式",
reset="重置?",
reset1="重置解锁/等级",
reset2="重置统计",
@@ -646,6 +655,17 @@ local langList={
support="支持作者",
group="官方QQ群(如果没有被暗改的话就是这个):1080457319",
WidgetText={
calculator={
_1="1",_2="2",_3="3",
_4="4",_5="5",_6="6",
_7="7",_8="8",_9="9",
_0="0",["<"]="<",["="]="=",
["+"]="+",
["-"]="-",
["*"]="*",
["/"]="/",
play="开始",
},
main={
play="开始",
setting="设置",
@@ -718,15 +738,15 @@ local langList={
graphic="←画面设置",
sound="声音设置→",
ctrl="控制设置",
reTime="开局等待时间",
maxNext="最大预览数量",
autoPause="自动暂停",
layout="外观",
key="键位设置",
touch="触屏设置",
quickR="快速重新开始",
reTime="开局等待时间",
maxNext="最大预览数量",
layout="外观",
autoPause="失去焦点自动暂停",
swap="组合键切换攻击模式",
fine="极简操作提示音",
lock="软件锁(密码626)",
back="返回",
},
setting_video={
@@ -836,8 +856,6 @@ local langList={
back="返回",
},
debug={
killWTM="关闭水印",
unlock="解锁全模式",
reset="重置?",
reset1="重置解锁/等级",
reset2="重置统计",
@@ -1095,6 +1113,17 @@ local langList={
support="Support author",
group="Official QQ Group(if not hacked):1080457319",
WidgetText={
calculator={
_1="1",_2="2",_3="3",
_4="4",_5="5",_6="6",
_7="7",_8="8",_9="9",
_0="0",["<"]="<",["="]="=",
["+"]="+",
["-"]="-",
["*"]="*",
["/"]="/",
play="Play",
},
main={
play="Play",
setting="Settings",
@@ -1167,15 +1196,15 @@ local langList={
graphic="←Video",
sound="Sound→",
ctrl="Control settings",
reTime="Start Delay",
maxNext="Next Queue Length",
autoPause="Auto pause",
layout="Layout",
key="Key Mappings",
touch="Touch Settings",
quickR="Quick Retry",
reTime="Start Delay",
maxNext="Next Queue Length",
layout="Layout",
autoPause="Pause when lose focus",
swap="Key Combination (Change Atk. Mode)",
fine="Finesse Error Sound",
lock="Game Lock(pw=626)",
back="Back",
},
setting_video={
@@ -1285,8 +1314,6 @@ local langList={
back="Back",
},
debug={
killWTM="Kill watermark",
unlock="Unlock all",
reset="Reset?",
reset1="Reset rank",
reset2="Reset data",
@@ -1540,6 +1567,17 @@ local langList={
support="Support author",
group="Official QQ Group(if not hacked):1080457319",
WidgetText={
calculator={
_1="1",_2="2",_3="3",
_4="4",_5="5",_6="6",
_7="7",_8="8",_9="9",
_0="0",["<"]="<",["="]="=",
["+"]="+",
["-"]="-",
["*"]="*",
["/"]="/",
play="!!!",
},
main={
play="!!!",
setting="_?_",
@@ -1612,15 +1650,15 @@ local langList={
graphic="←Video",
sound="Sound→",
ctrl="=?=",
reTime="3-2-1",
maxNext="=123",
autoPause="A||",
layout="=-=-=",
key="=?",
touch="_?",
quickR="R!",
reTime="3-2-1",
maxNext="=123",
layout="=-=-=",
autoPause="A||",
swap="=+=+=",
fine="!#!X #!#",
lock="?XX(=626)",
back="X",
},
setting_video={
@@ -1730,8 +1768,6 @@ local langList={
back="X",
},
debug={
killWTM="Kill watermark",
unlock="Unlock all",
reset="Reset?",
reset1="Reset rank",
reset2="Reset data",
@@ -2003,6 +2039,17 @@ local langList={
support="支持作者",
group="官方QQ群(如果没有被暗改的话就是这个):1080457319",
WidgetText={
calculator={
_1="1",_2="2",_3="3",
_4="4",_5="5",_6="6",
_7="7",_8="8",_9="9",
_0="0",["<"]="<",["="]="=",
["+"]="+",
["-"]="-",
["*"]="*",
["/"]="/",
play="开始",
},
main={
play="开始",
setting="设置",
@@ -2075,15 +2122,15 @@ local langList={
graphic="←改画面",
sound="改声音→",
ctrl="改控制",
reTime="开局等待时间",
maxNext="最大预览数量",
autoPause="自动暂停",
layout="外观",
key="改键位",
touch="改触屏",
quickR="快速重新开始",
reTime="开局等待时间",
maxNext="最大预览数量",
layout="外观",
autoPause="失去焦点自动暂停",
swap="组合键切换攻击模式",
fine="极简操作提示音",
lock="家长锁(密码626)",
back="返回",
},
setting_video={
@@ -2193,8 +2240,6 @@ local langList={
back="返回",
},
debug={
killWTM="关水印",
unlock="解锁全模式",
reset="重置?",
reset1="重置解锁/等级",
reset2="重置统计",
@@ -2356,7 +2401,6 @@ function LANG.set(l)
end
end
for _,s in next,drawableTextLoad do
print(s)
drawableText[s]:set(text[s])
end
collectgarbage()

View File

@@ -94,6 +94,16 @@ end
local Pnt={}
function Pnt.calculator()
local S=sceneTemp
gc.setLineWidth(4)
gc.rectangle("line",100,80,650,150)
setFont(45)
if S.reg then gc.printf(S.reg,0,100,720,"right")end
if S.val then gc.printf(S.val,0,150,720,"right")end
setFont(50)
if S.sym then gc.print(S.sym,126,150)end
end
function Pnt.load()
local S=sceneTemp
gc.setLineWidth(4)
@@ -381,7 +391,6 @@ function Pnt.sequence()
gc.draw(drawableText.question,980,470)
end
end
function Pnt.draw()
local sx,sy=sceneTemp.x,sceneTemp.y
gc.translate(200,60)
@@ -531,10 +540,10 @@ function Pnt.play()
end
gc.pop()
end
local hexList={1,0,.5,1.732*.5,-.5,1.732*.5}for i=1,6 do hexList[i]=hexList[i]*150 end
local textPos={90,131,-90,131,-200,-25,-90,-181,90,-181,200,-25}
local dataPos={90,143,-90,143,-200,-13,-90,-169,90,-169,200,-13}
function Pnt.pause()
local S=sceneTemp
local T=S.timer*.02
@@ -625,7 +634,7 @@ end
function Pnt.setting_game()
gc.setColor(1,1,1)
mText(drawableText.setting_game,640,15)
gc.draw(blockSkin[int(Timer()*2)%11+1],720,540,Timer()%6.28319,2,nil,15,15)
gc.draw(blockSkin[int(Timer()*2)%11+1],590,540,Timer()%6.28319,2,nil,15,15)
end
function Pnt.setting_video()
gc.setColor(1,1,1)
@@ -646,6 +655,7 @@ function Pnt.setting_sound()
gc.draw(IMG.miyaF4,129,98+3*sin(t*.7))
gc.translate(-x,-y)
end
local function timeConv(t)
return t.."F "..int(t*16.67).."ms"
end

View File

@@ -7,6 +7,14 @@ local scr=scr
local sceneInit={}
sceneInit.quit=love.event.quit
function sceneInit.calculator()
sceneTemp={
reg=false,
val=0,
sym=false,
pass=false,
}
end
function sceneInit.load()
sceneTemp={
phase=1,--Loading stage
@@ -221,7 +229,6 @@ function sceneInit.help()
end
function sceneInit.staff()
sceneTemp={
pw=0,
time=0,
v=1,
}
@@ -337,8 +344,6 @@ function SCN.swapUpdate()
S.time=S.time-1
if S.time==S.mid then
SCN.init(S.tar,SCN.cur)
SCN.cur=S.tar
WIDGET.set(Widgets[S.tar])
collectgarbage()
--Scene swapped this moment
end
@@ -348,6 +353,8 @@ function SCN.swapUpdate()
end
function SCN.init(s,org)
if sceneInit[s]then sceneInit[s](org)end
SCN.cur=s
WIDGET.set(Widgets[s])
end
function SCN.push(tar,style)
if not SCN.swapping then

View File

@@ -52,6 +52,7 @@ function Tmr.load()
SCN.swapTo("intro","none")
end
end
loadingFinished=true
return
end
S.cur=S.cur+1

View File

@@ -91,13 +91,13 @@ function VOC.update()
end
elseif Q.s==1 then--Waiting load source
Q[1]=getVoice(Q[1])
Q[1]:setVolume(setting.voc*.1)
Q[1]:setVolume(setting.voc*.01)
Q[1]:play()
Q.s=Q[2]and 2 or 4
elseif Q.s==2 then--Playing 1,ready 2
if Q[1]:getDuration()-Q[1]:tell()<.08 then
Q[2]=getVoice(Q[2])
Q[2]:setVolume(setting.voc*.1)
Q[2]:setVolume(setting.voc*.01)
Q[2]:play()
Q.s=3
end
@@ -121,7 +121,7 @@ function VOC.play(s,chn)
if chn then
local L=voiceQueue[chn]
local _=VOC.list[s]
if not _ then DBP("no VOC called:"..s)return end
if not _ then return end
L[#L+1]=_[rnd(#_)]
L.s=1
--Add to queue[chn]

View File

@@ -395,7 +395,6 @@ function WIDGET.press(x,y)
W.code()
W:FX()
SFX.play("button")
VOC.play("nya")
elseif W.type=="key"then
W.code()
SFX.play("lock")

View File

@@ -98,6 +98,25 @@ newSlider=WIDGET.newSlider
--All widgets
local Widgets={
load={},intro={},quit={},
calculator={
newKey({name="_1", x=300,y=300,w=90,h=90, color="white", font=50,code=pressKey("1")}),
newKey({name="_2", x=400,y=300,w=90,h=90, color="white", font=50,code=pressKey("2")}),
newKey({name="_3", x=500,y=300,w=90,h=90, color="white", font=50,code=pressKey("3")}),
newKey({name="_4", x=300,y=400,w=90,h=90, color="white", font=50,code=pressKey("4")}),
newKey({name="_5", x=400,y=400,w=90,h=90, color="white", font=50,code=pressKey("5")}),
newKey({name="_6", x=500,y=400,w=90,h=90, color="white", font=50,code=pressKey("6")}),
newKey({name="_7", x=300,y=500,w=90,h=90, color="white", font=50,code=pressKey("7")}),
newKey({name="_8", x=400,y=500,w=90,h=90, color="white", font=50,code=pressKey("8")}),
newKey({name="_9", x=500,y=500,w=90,h=90, color="white", font=50,code=pressKey("9")}),
newKey({name="_0", x=300,y=600,w=90,h=90, color="white", font=50,code=pressKey("0")}),
newKey({name="<", x=400,y=600,w=90,h=90, color="lRed", font=50,code=pressKey("backspace")}),
newKey({name="=", x=500,y=600,w=90,h=90, color="lYellow",font=50,code=pressKey("return")}),
newKey({name="+", x=600,y=300,w=90,h=90, color="lBlue", font=50,code=pressKey("+")}),
newKey({name="-", x=600,y=400,w=90,h=90, color="lBlue", font=50,code=pressKey("-")}),
newKey({name="*", x=600,y=500,w=90,h=90, color="lBlue", font=50,code=pressKey("*")}),
newKey({name="/", x=600,y=600,w=90,h=90, color="lBlue", font=50,code=pressKey("/")}),
newButton({name="play", x=800,y=600,w=180,h=90, color="lGreen", font=40,code=pressKey("space"),hide=function()return not sceneTemp.pass end}),
},
main={
newButton({name="play", x=150,y=280,w=200,h=160,color="lRed", font=55,code=function()SCN.goto("mode")end}),
newButton({name="setting", x=370,y=280,w=200,h=160,color="lBlue", font=45,code=function()SCN.goto("setting_game")end}),
@@ -224,13 +243,13 @@ local Widgets={
newButton({name="touch", x=990, y=220, w=320,h=80, color="lBlue", font=35,code=function()SCN.goto("setting_touch")end}),
newSlider({name="reTime", x=350, y=340, w=300,unit=10, font=30,disp=SETval("reTime"), code=SETsto("reTime")}),
newSlider({name="maxNext", x=350, y=440, w=300,unit=6, font=30,disp=SETval("maxNext"), code=SETsto("maxNext")}),
newSwitch({name="autoPause",x=350, y=540, font=20,disp=SETval("autoPause"),code=SETrev("autoPause")}),
newButton({name="layout", x=590, y=540, w=140,h=70,color="white", font=35,code=function()
newButton({name="layout", x=460, y=540, w=140,h=70,color="white", font=35,code=function()
SCN.goto("setting_skin")
end}),
newSwitch({name="quickR", x=1050, y=320, font=35,disp=SETval("quickR"), code=SETrev("quickR")}),
newSwitch({name="swap", x=1050, y=400, font=20,disp=SETval("swap"), code=SETrev("swap")}),
newSwitch({name="fine", x=1050, y=480, font=20,disp=SETval("fine"), code=SETrev("fine")}),
newSwitch({name="autoPause",x=1080, y=320, font=20,disp=SETval("autoPause"), code=SETrev("autoPause")}),
newSwitch({name="swap", x=1080, y=380, font=20,disp=SETval("swap"), code=SETrev("swap")}),
newSwitch({name="fine", x=1080, y=440, font=20,disp=SETval("fine"), code=SETrev("fine")}),
newSwitch({name="lock", x=1080, y=500, font=20,disp=SETval("lock"), code=SETrev("lock")}),
newButton({name="back", x=1140, y=650, w=200,h=80,color="white", font=40,code=BACK}),
},
setting_video={
@@ -278,10 +297,10 @@ local Widgets={
newButton({name="graphic", x=1080, y=80,w=240,h=80,color="lCyan",font=35,code=function()SCN.swapTo("setting_video","swipe")end}),
newSlider({name="sfx", x=180, y=200,w=400,unit=100,noUnit=true,font=35,change=function()SFX.play("blip_1")end, disp=SETval("sfx"), code=SETsto("sfx")}),
newSlider({name="stereo", x=180, y=500,w=400,unit=10, font=35,change=function()SFX.play("move",1,-1)SFX.play("lock",1,1)end, disp=SETval("stereo"), code=SETsto("stereo"),hide=function()return setting.sfx==0 end}),
newSlider({name="spawn", x=180, y=300,w=400,unit=100,noUnit=true,font=30,change=function()SFX.fplay("spawn_1",setting.spawn)end, disp=SETval("spawn"), code=SETsto("spawn")}),
newSlider({name="spawn", x=180, y=300,w=400,unit=100,noUnit=true,font=30,change=function()SFX.fplay("spawn_1",setting.spawn)end, disp=SETval("spawn"), code=SETsto("spawn")}),
newSlider({name="bgm", x=180, y=400,w=400,unit=100,noUnit=true,font=35,change=function()BGM.freshVolume()end, disp=SETval("bgm"), code=SETsto("bgm")}),
newSlider({name="vib", x=750, y=200,w=400,unit=5, font=28,change=function()VIB(2)end, disp=SETval("vib"), code=SETsto("vib")}),
newSlider({name="voc", x=750, y=300,w=400,unit=10,font=32,change=function()VOC.play("nya")end, disp=SETval("voc"), code=SETsto("voc")}),
newSlider({name="vib", x=750, y=200,w=400,unit=5, font=28,change=function()VIB(2)end, disp=SETval("vib"), code=SETsto("vib")}),
newSlider({name="voc", x=750, y=300,w=400,unit=100,noUnit=true,font=32,change=function()VOC.play("nya")end, disp=SETval("voc"), code=SETsto("voc")}),
newButton({name="back", x=1140, y=650,w=200,h=80,color="white",font=40,code=BACK}),
},
setting_control={
@@ -458,27 +477,7 @@ local Widgets={
newButton({name="back", x=640, y=620,w=200,h=80,color="white",font=40,code=BACK}),
},
debug={
newButton({name="killWTM", x=340,y=200,w=260,h=100,color="white",font=35,
code=function()
marking=nil
TEXT.show("\68\69\86\58\87\97\116\101\114\109\97\114\107\32\82\101\109\111\118\101\100",640,360,60,"stretch",.6)
SFX.play("clear")
end,
hide=function()
return not marking
end}),
newButton({name="unlock", x=640,y=200,w=260,h=100,color="white",font=40,
code=function()
for name,M in next,Modes do
if not modeRanks[name]then
modeRanks[name]=M.score and 0 or 6
end
end
FILE.saveUnlock()
TEXT.show("\68\69\86\58\85\78\76\79\67\75\65\76\76",640,360,60,"stretch",.6)
SFX.play("clear_2")
end}),
newButton({name="reset", x=940,y=200,w=260,h=100,color="yellow",font=40,
newButton({name="reset", x=640,y=200,w=260,h=100,color="yellow",font=40,
code=function()
sceneTemp.reset=true
end,

View File

@@ -1,4 +1,4 @@
gameVersion="Alpha V0.10.2"
gameVersion="Alpha V0.10.3"
function love.conf(t)
t.identity="Techmino"--Saving folder
t.version="11.1"

View File

@@ -34,7 +34,7 @@ mapCam={
zoomMethod=nil,
zoomK=nil,
}
scr={x=0,y=0,w=0,h=0,rad=0,k=1}--wid,hei,radius,scale K
scr={x=0,y=0,w=0,h=0,W=0,H=0,rad=0,k=1}--wid,hei,radius,scale K
customSel={1,22,1,1,7,3,1,1,8,4,1,1,1}
preField={h=20}for i=1,20 do preField[i]={0,0,0,0,0,0,0,0,0,0}end
@@ -121,12 +121,12 @@ end
--Update data file
S=stat
if S.version=="Alpha V0.9.1"or type(setting.spawn)~="number"then
if type(setting.spawn)~="number"then
setting.spawn=0
end
if S.version~=gameVersion then
S.version=gameVersion
TEXT.show(text.newBigVersion,640,200,30,"fly",.3)
TEXT.show(text.newVersion,640,200,30,"fly",.3)
newVersionLaunch=true
fs.remove("sprintPenta.dat")

View File

@@ -1,4 +1,4 @@
local min=math.random,math.min
local min=math.min
local function check_c4w(P)
for i=1,#P.clearedRow do
P.field[#P.field+1]=freeRow.get(13)
@@ -59,7 +59,7 @@ return{
if L==100 then
local T=P.stat.time
return
T<=36 and 5 or
T<=40 and 5 or
T<=60 and 4 or
3
else

View File

@@ -18,8 +18,9 @@ return{
},
load=function()
PLY.newPlayer(1,340,15)
local P=players[1]
for _=1,8 do
players[1]:garbageRise(13,1,P:RND(10))
P:garbageRise(13,1,P:RND(10))
end
end,
mesDisp=function(P,dx,dy)

View File

@@ -3,12 +3,14 @@ setting={
das=10,arr=2,
sddas=0,sdarr=2,
ihs=true,irs=true,ims=true,
reTime=4,
maxNext=6,
autoPause=true,
quickR=true,
swap=true,
--System
reTime=4,
autoPause=true,
fine=false,
lock=false,
lang=1,
skinSet=1,
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},

View File

@@ -263,11 +263,13 @@ function pauseGame()
if not game.result then
game.pauseCount=game.pauseCount+1
end
for i=1,#players do
local l=players[i].keyPressing
for j=1,#l do
if l[j]then
players[i]:releaseKey(j)
if not game.replaying then
for i=1,#players do
local l=players[i].keyPressing
for j=1,#l do
if l[j]then
players[i]:releaseKey(j)
end
end
end
end

View File

@@ -68,7 +68,7 @@ if setting.lang==1 or setting.lang==2 then
"戴上耳机以获得最佳体验",
"大满贯10连击消四全清!",
"打好块没有捷径,多练",
"车车人在此",
"你可以长按R键重新开始游戏(也不是很长)",
"茶娘 可爱!",
"草(日本语)",
"不要在上课时玩游戏!",
@@ -143,6 +143,7 @@ elseif setting.lang==3 then
"Hello world!",
"Headphones for better experience",
"Have you noticed what does \"rotating\" do to block?",
"Hold R key to restart game",
"Find out what's in the setting!",
"Enjoy Tech. Rotation System!",
"e^(pi*i/2)=i",
@@ -196,31 +197,32 @@ elseif setting.lang==5 then
local R=math.random()
if R<.05 then
local time={
"大半夜的在这干啥呢?不睡觉是会猝死的",
"大半夜的在这干啥呢?不睡觉是会猝死的",
"现在打块你是认真的?",
"现在打块你是认真的?",
"早起是好的,但是你不应该打块",
"早起是好的,但是你不应该打块",
"早饭吃好了?",
"早饭吃好了?",
"九点多了,没自己的事情要做?",
"十点多了,没自己的事情要做?",
"十一点多了,午饭有的吃么",
"十二点多了,午饭有的吃么",
"累了累了,现在不想说你",
"累了累了,现在不想说你",
"累了累了,现在不想说你",
"累了累了,现在不想说你",
"累了累了,现在不想说你",
"晚饭吃好了?",
"晚饭吃好了?",
"累了累了,现在不想说你",
"累了累了,现在不想说你",
"好睡了,作息健康活得久",
"大半夜的在这干啥呢?不睡觉是会猝死的",
--[[00]]"大半夜的在这干啥呢?不睡觉是会猝死的",
--[[01]]"大半夜的在这干啥呢?不睡觉是会猝死的",
--[[02]]"现在打块你是认真的?",
--[[03]]"现在打块你是认真的?",
--[[04]]"早起是好的,但是你不应该打块",
--[[05]]"早起是好的,但是你不应该打块",
--[[06]]"早饭吃好了?",
--[[07]]"早饭吃好了?",
--[[08]]"九点多了,没自己的事情要做?",
--[[09]]"十点多了,没自己的事情要做?",
--[[10]]"十一点多了,午饭有的吃么",
--[[11]]"十二点多了,午饭有的吃么",
--[[12]]"累了累了,现在不想说你",
--[[13]]"累了累了,现在不想说你",
--[[14]]"累了累了,现在不想说你",
--[[15]]"累了累了,现在不想说你",
--[[16]]"累了累了,现在不想说你",
--[[17]]"晚饭吃好了?",
--[[18]]"晚饭吃好了?",
--[[19]]"累了累了,现在不想说你",
--[[20]]"累了累了,现在不想说你",
--[[21]]"好睡了,作息健康活得久",
--[[22]]"好睡了,作息健康活得久",
--[[23]]"大半夜的在这干啥呢?不睡觉是会猝死的",
}
return time[os.date("%H")]
return time[tonumber(os.date("%H"))+1]
elseif true or R<.1 then
local int=math.floor
L={
@@ -260,6 +262,7 @@ elseif setting.lang==5 then
"0202年了,还在玩这种小孩子玩的游戏?",
"天天卖弱,你一定把把150apm吧?",
"别会个c4w就以为自己多强,这是基本功罢了",
"少玩点,多眨眼,到时候瞎了别怪我没提醒你",
}
end
end

View File

@@ -5,13 +5,15 @@ local int,ceil,abs,rnd,max,min=math.floor,math.ceil,math.abs,math.random,math.ma
local ins,rem=table.insert,table.remove
local format=string.format
local scr=scr--Screen camera
local setFont=setFont
--------------------------<GameData>--------------------------
local gameEnv0={
noFly=false,
das=10,arr=2,
sddas=2,sdarr=2,
ihs=true,irs=true,ims=true,
quickR=true,swap=true,
swap=true,
ghost=true,center=true,
smooth=false,grid=false,
bagLine=false,
@@ -688,9 +690,9 @@ local function Pdraw_norm(P)
if P.lockDelay>=0 then
gc.rectangle("fill",0,602,300*P.lockDelay/P.gameEnv.lock,6)--Lock delay indicator
end
_=10
_=3
for i=1,min(P.gameEnv.freshLimit-P.freshTime,15)do
gc.circle("fill",_,615,5)
gc.rectangle("fill",_,615,14,5)
_=_+20
end
@@ -1136,7 +1138,7 @@ function player.finesseError(P,rate)
SFX.play("finesseError_long",.6)
P:lose()
elseif setting.fine then
SFX.play("finesseError",.3)
SFX.play("finesseError",.8)
end
elseif P.gameEnv.fineKill then
P:lose()
@@ -1197,9 +1199,11 @@ function player.garbageRise(P,color,amount,pos)
P.field[1][pos]=0
end
P.fieldBeneath=P.fieldBeneath+amount*30
P.curY=P.curY+amount
if P.cur then
P.curY=P.curY+amount
P.imgY=P.imgY+amount
end
P.garbageBeneath=P.garbageBeneath+amount
P.imgY=P.imgY+amount
for i=1,#P.clearingRow do
P.clearingRow[i]=P.clearingRow[i]+amount
end
@@ -2029,6 +2033,7 @@ end
--------------------------<Events>--------------------------
local function gameOver()--Save record
if game.replaying then return end
FILE.saveData()
local M=curMode
local R=M.getRank
@@ -2342,7 +2347,7 @@ function player.act.func(P)
P.gameEnv.Fkey(P)
end
function player.act.restart(P)
if P.gameEnv.quickR or game.frame<180 then
if game.frame<240 or game.result then
TASK.removeTask_code(TICK.autoPause)
resetPartGameData()
end
@@ -2687,7 +2692,7 @@ function PLY.newDemoPlayer(id,x,y,size)
noFly=false,
das=10,arr=2,
sddas=2,sdarr=2,
quickR=true,swap=true,
swap=true,
ghost=setting.ghost,center=setting.center,
smooth=setting.smooth,grid=setting.grid,
text=setting.text,

View File

@@ -56,7 +56,6 @@ Future outlook:
mine sweeper
tank battle
new AI: task-Z
self protection
cool backgrounds
'Encrypt'(compile to byte code)
better drop FX
@@ -70,11 +69,30 @@ Future outlook:
more graphic FXs & 3D features & animations
network game
0.10.3: 软件锁 APP Lock
新内容:
设置增加软件锁选项,打开游戏后进入伪装界面
改动:
剩余锁延重置次数指示器改为长方形
debug界面改为重置界面,进入方法修改
游戏设置页面布局更改
语音音量条改为无刻度
取消快速重开设置,游戏过程中长按重开,结束后开局一秒内点击重开
修复:
无尽挖掘报错
极简错误提示声音太小
修复回放也计入排行榜
回放时暂停不打断玩家操作
c4w练习的lunatic分数bug
0.10.2: 锁延修复 Lock Delay Fixed
改动:
锁延机制再修正
"失败"字样改为"游戏结束"
"失败"改为"游戏结束"
修复:
纠正部分rank文件转换错误
模式文件使用玩家的随机器以正确回放
游戏结束后马上暂停并解除还会自动暂停
改设置后回放错误
字库缺字