diff --git a/main.lua b/main.lua index 50ec6a62..bea20f93 100644 --- a/main.lua +++ b/main.lua @@ -443,6 +443,14 @@ do fs.remove('record/round_l.rec') fs.remove('record/round_u.rec') end + if STAT.version<1604 then + RANKS.stack_e=nil + RANKS.stack_h=nil + RANKS.stack_u=nil + fs.remove('record/stack_e.rec') + fs.remove('record/stack_h.rec') + fs.remove('record/stack_u.rec') + end if RANKS.stack_20l then RANKS.stack_20l=nil RANKS.stack_40l=nil diff --git a/parts/eventsets/stack_100.lua b/parts/eventsets/stack_100.lua new file mode 100644 index 00000000..c9fdfedc --- /dev/null +++ b/parts/eventsets/stack_100.lua @@ -0,0 +1,21 @@ +return{ + fillClear=false, + dropPiece=function(P) + if #P.field>P.gameEnv.fieldH then + local cc=P:checkClear(P.field,P.garbageBeneath+1,#P.field-P.garbageBeneath) + if cc>0 then + SFX.play('clear_'..math.min(cc,6)) + P:showText(text.clear[cc]or cc.."-crash",0,0,60,'beat',.4) + P:removeClearedLines() + P.falling=P.gameEnv.fall + P.stat.row=P.stat.row+cc + end + if P.gameEnv.fieldH-cc-P.garbageBeneath>0 then + P:garbageRise(21,P.gameEnv.fieldH-cc-P.garbageBeneath,2e10-1) + if P.garbageBeneath>=P.gameEnv.fieldH then + P:lose() + end + end + end + end, +} \ No newline at end of file diff --git a/parts/eventsets/stack_50.lua b/parts/eventsets/stack_50.lua new file mode 100644 index 00000000..dac236b8 --- /dev/null +++ b/parts/eventsets/stack_50.lua @@ -0,0 +1,22 @@ +return{ + fillClear=false, + dropPiece=function(P) + if #P.field>P.gameEnv.fieldH then + local cc=P:checkClear(P.field,P.garbageBeneath+1,#P.field-P.garbageBeneath) + if cc>0 then + SFX.play('clear_'..math.min(cc,6)) + P:showText(text.clear[cc]or cc.."-crash",0,0,60,'beat',.4) + P:removeClearedLines() + P.falling=P.gameEnv.fall + P.stat.row=P.stat.row+cc + end + local h=math.ceil((P.gameEnv.fieldH-cc-P.garbageBeneath)/2) + if h>0 then + P:garbageRise(21,h,2e10-1) + if P.garbageBeneath>=P.gameEnv.fieldH then + P:lose() + end + end + end + end, +} \ No newline at end of file diff --git a/parts/modes/stack_e.lua b/parts/modes/stack_e.lua index 6e231f73..305441f2 100644 --- a/parts/modes/stack_e.lua +++ b/parts/modes/stack_e.lua @@ -1,36 +1,25 @@ -local function getHoleCount(P) - local hole=0 - for x=1,10 do - for y=1,100 do - if not P:solid(x,y)then - hole=hole+1 - end - end - end - return hole -end return{ color=COLOR.cyan, env={ drop=60,lock=60, - fieldH=100, - highCam=true, - fillClear=false, + wait=0,fall=50, + garbageSpeed=30, + highCam=false, seqData={1,2,3,4,5,6,7}, - mesDisp=function(P)PLY.draw.drawTargetLine(P,100)end, + eventSet='stack_100', bg='blockrain',bgm='there', }, - score=function(P)return{getHoleCount(P),P.stat.time}end, - scoreDisp=function(D)return D[1].." Holes".." "..STRING.time(D[2])end, - comp=function(a,b)return a[1]b[1]or a[1]==b[1]and a[2]=200 and 5 or + L>=180 and 4 or + L>=160 and 3 or + L>=130 and 2 or + L>=100 and 1 or + L>=70 and 0 end, } diff --git a/parts/modes/stack_h.lua b/parts/modes/stack_h.lua index da4c2389..c37b28d3 100644 --- a/parts/modes/stack_h.lua +++ b/parts/modes/stack_h.lua @@ -1,36 +1,26 @@ -local function getHoleCount(P) - local hole=0 - for x=1,10 do - for y=1,98 do - if not P:solid(x,y)then - hole=hole+1 - end - end - end - return hole -end return{ color=COLOR.magenta, env={ drop=60,lock=60, - fieldH=100, - highCam=true, - fillClear=false, + wait=0,fall=50, + fieldH=21, + highCam=false, + garbageSpeed=30, seqData={1,2,3,4,5,6,7,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}, - mesDisp=function(P)PLY.draw.drawTargetLine(P,98)end, + eventSet='stack_50', bg='blockrain',bgm='there', }, - score=function(P)return{getHoleCount(P),P.stat.time}end, - scoreDisp=function(D)return D[1].." Holes".." "..STRING.time(D[2])end, - comp=function(a,b)return a[1]b[1]or a[1]==b[1]and a[2]=80 and 5 or + L>=70 and 4 or + L>=60 and 3 or + L>=50 and 2 or + L>=40 and 1 or + L>=20 and 0 end, -} +} \ No newline at end of file diff --git a/parts/modes/stack_u.lua b/parts/modes/stack_u.lua index a70b9177..72134f30 100644 --- a/parts/modes/stack_u.lua +++ b/parts/modes/stack_u.lua @@ -1,36 +1,26 @@ -local function getHoleCount(P) - local hole=0 - for x=1,10 do - for y=1,97 do - if not P:solid(x,y)then - hole=hole+1 - end - end - end - return hole -end return{ color=COLOR.yellow, env={ drop=60,lock=60, - fieldH=100, - highCam=true, - fillClear=false, + wait=0,fall=50, + fieldH=21, + highCam=false, + garbageSpeed=30, seqData={8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}, - mesDisp=function(P)PLY.draw.drawTargetLine(P,97)end, + eventSet='stack_50', bg='blockrain',bgm='there', }, - score=function(P)return{getHoleCount(P),P.stat.time}end, - scoreDisp=function(D)return D[1].." Holes".." "..STRING.time(D[2])end, - comp=function(a,b)return a[1]b[1]or a[1]==b[1]and a[2]=60 and 5 or + L>=50 and 4 or + L>=45 and 3 or + L>=30 and 2 or + L>=20 and 1 or + L>=10 and 0 end, -} +} \ No newline at end of file diff --git a/parts/updateLog.lua b/parts/updateLog.lua index 80dbf7ba..aef4e93b 100644 --- a/parts/updateLog.lua +++ b/parts/updateLog.lua @@ -7,12 +7,12 @@ return[=[ 其他未来内容: 组队战; 实时统计数据可视化; 教学关; 从录像继续 重做模式选择UI; 重做模组UI; 加速下落; spike相关统计数据 - 更好的手柄支持; 场地格边缘线; 模式数据分析; 高级自定义序列 + 支持更多手柄; 场地格边缘线; 模式数据分析; 高级自定义序列 等级系统; 成就系统; Domain状态; 手势操作; C2连击; 特殊控件(虚拟摇杆等) - 可调场地宽度; 可调攻击系统; 更多消除方式(隔断/架空/混合/彩色/穿墙) - 方块位移/旋转动画; 更细节的DAS选项; 拓展主题系统; 复杂的攻击系统 + 方块位移/旋转动画; 更细节的DAS选项; 拓展主题系统; 无用货币 + 可调攻击系统; 更多消除方式; 可调场地宽度 工程编译到字节码; task-Z(新AI) - 无用货币; 收集向抽奖; 自适应UI; 多方块 + 收集向抽奖; 自适应UI; 多方块 0.16.4: 虫洞 Wormhole 新增: @@ -21,6 +21,7 @@ return[=[ Next槽上方显示序列模式标记 等级图标(暂时不能升级) 词典支持复制词条方便发给别人 + 修改堆叠模式玩法(自动清除之前记录) 改动: 移除组合键切换攻击模式功能,固定为单点切换 iOS设备支持三档振动(原来只有一档) diff --git a/version.lua b/version.lua index a7e1fa55..58264402 100644 --- a/version.lua +++ b/version.lua @@ -1,5 +1,5 @@ return{ - ["apkCode"]=388, + ["apkCode"]=389, ["code"]=1604, ["string"]="V0.16.4", ["room"]="ver A-0",