Compare commits

...

57 Commits

Author SHA1 Message Date
MrZ626
963b57a49b 0.10.9:舒尔特方格 2020-09-09 10:02:54 +08:00
MrZ626
9b57f55285 把音乐室装修得更好看了 2020-09-09 01:19:20 +08:00
MrZ626
86266731cd 美化隐形方块回放显示 2020-09-09 00:43:54 +08:00
MrZ626
78c0c7d18d 新BGM: Down 2020-09-09 00:25:17 +08:00
MrZ626
be7f7fe17b 优化15p开关排版和机制 2020-09-08 23:31:02 +08:00
MrZ626
b673892b7d LOG.print新增"short"输出方式,仅显示一个时长很短的不重要提示信息 2020-09-08 23:21:04 +08:00
MrZ626
7ab34480cd BGM文件夹不再追踪 2020-09-08 23:19:53 +08:00
MrZ626
f46cdbec47 排版微调 2020-09-08 23:19:33 +08:00
MrZ626
30f4073bc6 不允许使用瞬移操作的模式虚拟按键也不显示 2020-09-08 23:08:18 +08:00
MrZ626
6bc0da712d BGM重新转码,并不再使用git追踪 2020-09-08 22:45:25 +08:00
MrZ626
d553b2cb05 新增舒尔特方格 2020-09-08 19:07:01 +08:00
MrZ626
aebf6fafc2 优化15p细节 2020-09-08 13:09:21 +08:00
MrZ626
0287dd390d 画图界面新增顶起一行和消除满行功能 2020-09-06 22:28:45 +08:00
MrZ626
7f6d0e8c45 复活动画时长缩短 2020-09-06 22:20:32 +08:00
MrZ626
68c4a9fceb 缺失字体时使用引擎自带字体 2020-09-06 21:35:32 +08:00
MrZ626
e47e0e1c78 15p可关闭滑动轨迹显示 2020-09-06 21:22:43 +08:00
MrZ626
e5478739bb 修复左侧信息排版 2020-09-06 21:12:03 +08:00
MrZ626
0c7f56b656 调整ai难度 2020-09-06 01:20:43 +08:00
MrZ626
0b5c19b459 隐型模式回放时方块不会完全隐藏 2020-09-05 01:56:09 +08:00
MrZ626
f86d98bfde 代码再整理,移出do内local 2020-09-04 23:47:26 +08:00
MrZ626
e681a43fb1 优化LOG库,LOG.print功能更多 2020-09-04 20:20:51 +08:00
MrZ626
4f8810a693 优化splitS函数 2020-09-04 20:19:48 +08:00
MrZ626
0e5bcaa21e 主界面ai演示ghost受设置影响 2020-09-03 23:41:16 +08:00
MrZ626
6cc0b262be debug模式下帧间隔显示位置和颜色,非特殊功能键fallback到普通按键 2020-09-03 22:29:58 +08:00
MrZ626
4c94952052 代码整理 2020-09-03 18:10:27 +08:00
MrZ626
c82f04e115 屏幕尺寸相关代码整理,修复部分背景显示不正确 2020-09-03 16:07:46 +08:00
MrZ626
4da23852a7 部分弹出消息改用LOG.print输出到屏幕左上角 2020-09-03 16:00:28 +08:00
MrZ626
b873aa09d6 释放死掉的CC进程 2020-09-03 11:54:03 +08:00
MrZ626
d3ae0e28a8 单挑评分标准适配三条命 2020-09-03 11:53:38 +08:00
MrZ626
b730d5e485 修复CC死后不能正常复活 2020-09-03 01:22:50 +08:00
MrZ626
ffbfa525d4 略微降低单挑CC的难度 2020-09-03 01:21:53 +08:00
MrZ_26
ff9d63c910 Merge pull request #25 from flaribbit/master
add CI for windows-x64
2020-09-02 23:03:50 +08:00
MrZ626
7d4607a82d 0.10.8:全局更新 2020-09-02 22:25:46 +08:00
MrZ626
e7a9a2c0e9 玩家绘制代码调整 2020-09-02 22:25:24 +08:00
MrZ626
719a14bed4 整理消行特效代码,新增复活动画 2020-09-02 20:52:28 +08:00
MrZ626
d2586faf13 命数显示 2020-09-02 20:28:28 +08:00
MrZ626
d188580c85 拼写错误 2020-09-02 20:10:18 +08:00
MrZ626
aa442a18a3 单挑模式改为两边三条命 2020-09-02 19:58:04 +08:00
MrZ626
5ba8cd9d6f 码表指针不透明度增加 2020-09-02 19:57:20 +08:00
MrZ626
ae19255b2f 模式约束变量noFly改为noTele,修复大小写不一致 2020-09-02 19:57:04 +08:00
MrZ626
7bb2fa2fbd PRINT改为独立模块log.lua,增加显示动画,增加使用样例 2020-09-02 18:38:16 +08:00
MrZ626
f2520fdbc2 优化15p体验,新增滑动操作开关和键盘反向 2020-09-02 18:21:29 +08:00
MrZ626
b4258d0759 控件属性输出代码重命名 2020-09-02 17:19:47 +08:00
MrZ626
ee45f4aecf 修复键盘控制滑条越界 2020-09-02 17:18:08 +08:00
MrZ626
1497bf97f5 增加图形输出PRINT函数 2020-09-02 17:17:34 +08:00
MrZ626
906107471a 控件布局微调 2020-09-02 16:06:33 +08:00
MrZ626
1ba6f2eae3 鼠标点击按钮后不失去焦点 2020-09-02 00:16:19 +08:00
MrZ626
1f524f5ec0 优化15p体验 2020-09-02 00:11:36 +08:00
MrZ626
409417c529 优化滑条信息显示 2020-09-02 00:10:56 +08:00
MrZ626
7899ab54c2 代码整理 2020-09-01 21:56:55 +08:00
MrZ626
10bcad54a4 tip微调 2020-09-01 21:11:40 +08:00
MrZ626
9141fde183 场景代码完全集中 2020-09-01 20:19:30 +08:00
MrZ626
3eaac51523 代码整理 2020-09-01 20:19:12 +08:00
MrZ626
6ee6503e1c tips微调 2020-09-01 20:17:46 +08:00
MrZ626
19975826b5 增大解锁400L模式难度 2020-09-01 20:17:31 +08:00
flaribbit
ef32b917a8 Update build.yml 2020-09-01 16:51:27 +08:00
flaribbit
198e4bdaab add CI for windows-x64 2020-09-01 16:48:55 +08:00
117 changed files with 3167 additions and 2541 deletions

37
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Techmino CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Download font
run: curl -LO https://github.com/flaribbit/Techmino/releases/download/font/font.ttf
- name: Download love
run: |
curl -LO https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
7z x love-11.3-win64.zip
- name: Download ColdClear
run: |
curl -LO https://github.com/flaribbit/Techmino/releases/download/coldclear/lib.zip
7z x lib.zip -olib
move lib\Windows\x86_64\cold_clear.dll love-11.3-win64
- name: Pack Techmino
run: |
7z a game.zip BGM image lib modes parts SFX VOICE Zframework conf.lua document.txt font.ttf main.lua
move game.zip game.love
cmd /c copy /b love-11.3-win64\love.exe + game.love love-11.3-win64\Techmino.exe
del love-11.3-win64\love.exe
del love-11.3-win64\lovec.exe
cmd /c rmdir /S/Q lib\windows\x86
- name: Artifact
uses: actions/upload-artifact@v1.0.0
with:
name: Techmino_x64
path: love-11.3-win64

3
.gitignore vendored
View File

@@ -1,2 +1,3 @@
lib
font.ttf
font.ttf
BGM

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -345,16 +345,18 @@ back.matrix={
t=t+dt
end,
draw=function()
gc.scale(scr.k)
gc.clear(.15,.15,.15)
local Y=ceil(scr.H/80)
for x=1,ceil(scr.W/80)do
for y=1,Y do
gc.setColor(1,1,1,sin(x+matrixT[x][y]*t)*.1+.1)
gc.rectangle("fill",80*x,80*y,-80,-80)
gc.push("transform")
local k=scr.k
gc.scale(k)
local Y=ceil(scr.h/80/k)
for x=1,ceil(scr.w/80/k)do
for y=1,Y do
gc.setColor(1,1,1,sin(x+matrixT[x][y]*t)*.1+.1)
gc.rectangle("fill",80*x,80*y,-80,-80)
end
end
end
gc.scale(1/scr.k)
gc.pop()
end,
}

View File

@@ -26,7 +26,7 @@ local BGM={
BGM.list={
"blank",
"race","push","way","reason",
"newera","oxygen","infinite",
"newera","oxygen","infinite","down",
"secret7th","secret8th",
"shining terminal","distortion","far",
"rockblock","cruelty","final","8-bit happiness","end",
@@ -52,7 +52,10 @@ function BGM.play(s)
BGM.playing=BGM.list[s]
BGM.suspend,BGM.nowPlay=s
return
elseif not s or not BGM.list[s]then
elseif not s then
return
elseif not BGM.list[s]then
LOG.print("Cannot find BGM: "..s,"short",color.red)
return
end
if BGM.nowPlay~=s then

View File

@@ -5,14 +5,14 @@ local toN,toS=tonumber,tostring
local concat=table.concat
local function splitS(s,sep)
local t,n={},1
repeat
local p=find(s,sep)or #s+1
t[n]=sub(s,1,p-1)
n=n+1
s=sub(s,p+#sep)
until #s==0
return t
local L={}
local p1,p2=1--start,target
while p1<=#s do
p2=find(s,sep,p1)or #s+1
L[#L+1]=sub(s,p1,p2-1)
p1=p2+#sep
end
return L
end
local tabs={
[0]="",
@@ -99,7 +99,7 @@ function FILE.saveRecord(N,L)
local _,mes=F:write(dumpTable(L))
F:flush()F:close()
if not _ then
TEXT.show(text.recSavingError..(mes or"unknown error"),1140,650,20,"sudden",.5)
LOG.print(text.recSavingError..(mes or"unknown error"),color.red)
end
end
function FILE.delRecord(N)
@@ -125,10 +125,9 @@ function FILE.saveUnlock()
local _,mes=F:write(dumpTable(modeRanks))
F:flush()F:close()
if not _ then
TEXT.show(text.unlockSavingError..(mes or"unknown error"),1140,650,20,"sudden",.5)
LOG.print(text.unlockSavingError..(mes or"unknown error"),color.red)
end
end
function FILE.loadData()
local F=files.data
if F:open("r")then
@@ -151,7 +150,7 @@ function FILE.saveData()
local _,mes=F:write(dumpTable(stat))
F:flush()F:close()
if not _ then
TEXT.show(text.statSavingError..(mes or"unknown error"),1140,650,20,"sudden",.5)
LOG.print(text.statSavingError..(mes or"unknown error"),color.red)
end
end
@@ -175,8 +174,8 @@ function FILE.saveSetting()
F:open("w")
local _,mes=F:write(dumpTable(setting))
F:flush()F:close()
if _ then TEXT.show(text.settingSaved,1140,650,40,"sudden",.5)
else TEXT.show(text.settingSavingError..(mes or"unknown error"),1140,650,20,"sudden",.5)
if _ then LOG.print(text.settingSaved,color.green)
else LOG.print(text.settingSavingError..(mes or"unknown error"),color.red)
end
end
@@ -196,8 +195,8 @@ function FILE.saveKeyMap()
F:open("w")
local _,mes=F:write(dumpTable(keyMap))
F:flush()F:close()
if _ then TEXT.show(text.keyMapSaved,1140,650,26,"sudden",.5)
else TEXT.show(text.keyMapSavingError..(mes or"unknown error"),1140,650,20,"sudden",.5)
if _ then LOG.print(text.keyMapSaved,color.green)
else LOG.print(text.keyMapSavingError..(mes or"unknown error"),color.red)
end
end
@@ -217,8 +216,8 @@ function FILE.saveVK()
F:open("w")
local _,mes=F:write(dumpTable(VK_org))
F:flush()F:close()
if _ then TEXT.show(text.VKSaved,1140,650,26,"sudden",.5)
else TEXT.show(text.VKSavingError..(mes or"unknown error"),1140,650,20,"sudden",.5)
if _ then LOG.print(text.VKSaved,color.green)
else LOG.print(text.VKSavingError..(mes or"unknown error"),color.red)
end
end
return FILE

View File

@@ -4,6 +4,7 @@ local IMG={
title_color="mess/title_colored.png",
dialCircle="mess/dialCircle.png",
dialNeedle="mess/dialNeedle.png",
lifeIcon="mess/life.png",
badgeIcon="mess/badge.png",
spinCenter="mess/spinCenter.png",
ctrlSpeedLimit="mess/ctrlSpeedLimit.png",

File diff suppressed because it is too large Load Diff

View File

@@ -198,12 +198,6 @@ local langList={
["/"]="/",
play="开始",
},
p15={
reset="重新开始",
color="颜色",
hide="",
back="退出",
},
main={
play="开始",
setting="设置",
@@ -256,10 +250,12 @@ local langList={
b12="[ ]",
any="不定",
space="×",
clear="清除",
demo="不显示×",
copy="复制",
paste="粘贴",
clear="清除",
pushLine="增加一行(K)",
delLine="消除行(L)",
demo="不显示×",
custom="参数(E)",
back="返回",
},
@@ -377,6 +373,27 @@ local langList={
setting_lang={
back="返回",
},--LangName added later
minigame={
p15="15 Puzzle",
schulte_G="舒尔特方格",
back="返回",
},
p15={
reset="打乱",
color="颜色",
blind="盲打",
slide="滑动操作",
pathVis="路径显示",
revKB="键盘反向",
back="返回",
},
schulte_G={
reset="重来",
rank="尺寸",
blind="盲打",
disappear="消失",
back="返回",
},
help={
staff="制作人员",
his="更新历史",
@@ -675,12 +692,6 @@ local langList={
["/"]="/",
play="开始",
},
p15={
reset="重新开始",
color="颜色",
hide="",
back="退出",
},
main={
play="开始",
setting="设置",
@@ -733,11 +744,13 @@ local langList={
b12="[ ]",
any="不定",
space="×",
clear="清除",
demo="不显示×",
copy="复制",
paste="粘贴",
custom="参数",
clear="清除",
pushLine="增加一行(K)",
delLine="消除行(L)",
demo="不显示×",
custom="参数(E)",
back="返回",
},
play={
@@ -854,6 +867,27 @@ local langList={
setting_lang={
back="返回",
},--LangName added later
minigame={
p15="15 Puzzle",
schulte_G="舒尔特方格",
back="返回",
},
p15={
reset="打乱",
color="颜色",
blind="盲打",
slide="滑动操作",
pathVis="路径显示",
revKB="键盘反向",
back="返回",
},
schulte_G={
reset="重来",
rank="尺寸",
blind="盲打",
disappear="消失",
back="返回",
},
help={
staff="制作人员",
his="更新历史",
@@ -1142,12 +1176,6 @@ local langList={
["/"]="/",
play="Play",
},
p15={
reset="Reset",
color="Color",
hide="Blind",
back="Back",
},
main={
play="Play",
setting="Settings",
@@ -1200,10 +1228,12 @@ local langList={
b12="[ ]",
any="Erase",
space="×",
clear="Clear",
demo="Don't show ×",
copy="Copy",
paste="Paste",
clear="Clear",
pushLine="Add Line(K)",
delLine="Del Line(L)",
demo="Don't show ×",
custom="Args(E)",
back="Back",
},
@@ -1321,6 +1351,27 @@ local langList={
setting_lang={
back="Back",
},--LangName added later
minigame={
p15="15 Puzzle",
schulte_G="Schulte Grid",
back="Back",
},
p15={
reset="Shuffle",
color="Color",
blind="Blind",
slide="Slide",
pathVis="Path show",
revKB="Reverse",
back="Back",
},
schulte_G={
reset="Reset",
rank="Size",
blind="Blind",
disappear="Hide",
back="Back",
},
help={
staff="Staff",
his="History",
@@ -1607,12 +1658,6 @@ local langList={
["/"]="/",
play="!!!",
},
p15={
reset="Reset",
color="Color",
hide="Blind",
back="X",
},
main={
play="!!!",
setting="_?_",
@@ -1665,10 +1710,12 @@ local langList={
b12="[ ]",
any="_",
space="×",
clear="XXX",
demo="X ×",
copy="→__",
paste="__→",
clear="XXX",
pushLine="↑↑↑↑↑(K)",
delLine="==X==(L)",
demo="X ×",
custom="_?_(E)",
back="X",
},
@@ -1786,6 +1833,27 @@ local langList={
setting_lang={
back="X",
},--LangName added later
minigame={
p15="15 Puzzle",
schulte_G="Schulte Grid",
back="X",
},
p15={
reset="!@#$%",
color="~~~",
blind="???",
slide="~_~",
pathVis="--==>",
revKB="Reverse",
back="X",
},
schulte_G={
reset="!@#$%",
rank="←?→",
blind="???",
disappear="=X=",
back="X",
},
help={
staff="Orz",
his="_&_",
@@ -2086,12 +2154,6 @@ local langList={
["/"]="/",
play="开始",
},
p15={
reset="Reset",
color="",
hide="",
back="退出",
},
main={
play="开始",
setting="设置",
@@ -2144,10 +2206,12 @@ local langList={
b12="[ ]",
any="不定",
space="×",
clear="清除",
demo="不显示×",
copy="复制",
paste="粘贴",
clear="清除",
pushLine="增加一行",
delLine="消除行",
demo="不显示×",
custom="参数(E)",
back="返回",
},
@@ -2265,6 +2329,27 @@ local langList={
setting_lang={
back="返回",
},--LangName added later
minigame={
p15="15 Puzzle",
schulte_G="舒尔特方格",
back="返回",
},
p15={
reset="打乱",
color="",
blind="",
slide="滑动",
pathVis="路径显示",
revKB="键盘反向",
back="返回",
},
schulte_G={
reset="重开",
rank="尺寸",
blind="",
disappear="消失",
back="返回",
},
help={
staff="制作人员",
his="更新历史",

78
Zframework/log.lua Normal file
View File

@@ -0,0 +1,78 @@
local gc=love.graphics
local int,min=math.floor,math.min
local ins,rem=table.insert,table.remove
local debugMesList={}
local debugMesHistory={
"Version: "..gameVersion,
os.date("Launched at %Y/%m/%d %H:%M"),
}
local debugMesFloat=0
local LOG={}
function LOG.update()
if debugMesList[1]then
for i=#debugMesList,1,-1 do
local M=debugMesList[i]
if M.blink>0 then
M.blink=M.blink-1
else
M.time=M.time-1
if i==1 and M.time==0 then
rem(debugMesList,i)
if not debugMesList[1]then
debugMesFloat=0
else
debugMesFloat=debugMesFloat+25
end
end
end
end
if debugMesFloat>0 then
debugMesFloat=int(debugMesFloat*.9)
end
end
end
function LOG.draw()
if debugMesList[1]then
setFont(20)
for i=1,#debugMesList do
local M=debugMesList[i]
local t=M.time
gc.setColor(M.r,M.g,M.b,M.blink>0 and int(M.blink/3)%2 or min(t/26,1))
gc.print(M.text,10+(20-min(t,20))^1.5/4,25*i+debugMesFloat)
end
end
end
function LOG.print(text,T,C)--type/time,color
local time
local his
if type(T)=="table"then
C,T=T or color.white
elseif T=="warn"then
C=C or color.yellow
his=true
time=180
elseif T=="error"then
C=C or color.red
his=true
time=210
elseif T=="message"then
C=C or color.green
his=true
elseif T=="short"then
C=C or color.orange
time=30
elseif not C then
C=color.white
end
if his then
ins(debugMesHistory,SCN.cur..": "..tostring(text))
end
ins(debugMesList,{text=text,r=C[1],g=C[2],b=C[3],blink=30,time=time or 150})
end
function LOG.copy()
local str=table.concat(debugMesHistory,"\n")
love.system.setClipboardText(str)
LOG.print("Log copied",color.blue)
end
return LOG

View File

@@ -49,46 +49,42 @@ function SCN.pop()
end
local swap={
none={1,0,NULL},--swap time, change time, draw function
none={1,0,NULL},--swapTime, changeTime, drawFunction
flash={8,1,function()gc.clear(1,1,1)end},
fade={30,15,function(t)
local t=t>15 and 2-t/15 or t/15
gc.setColor(0,0,0,t)
gc.rectangle("fill",0,0,scr.W,scr.H)
gc.rectangle("fill",0,0,scr.w,scr.h)
end},
fade_togame={120,20,function(t)
local t=t>20 and(120-t)/100 or t/20
gc.setColor(0,0,0,t)
gc.rectangle("fill",0,0,scr.W,scr.H)
gc.rectangle("fill",0,0,scr.w,scr.h)
end},
slowFade={180,90,function(t)
local t=t>90 and 2-t/90 or t/90
gc.setColor(0,0,0,t)
gc.rectangle("fill",0,0,scr.W,scr.H)
gc.rectangle("fill",0,0,scr.w,scr.h)
end},
swipe={30,15,function(t)
t=t/30
gc.setColor(.1,.1,.1,1-abs(t-.5))
t=t*t*(3-2*t)*2-1
local w=scr.W
gc.rectangle("fill",t*w,0,w,scr.H)
gc.rectangle("fill",t*scr.w,0,scr.w,scr.h)
end},
}--Scene swapping animations
function SCN.swapTo(tar,style)--Parallel scene swapping, cannot back
local S=SCN.stat
if not SCN.swapping and tar~=SCN.cur then
SCN.swapping=true
if not style then style="fade"end
S.tar=tar
S.style=style
local swap=swap[style]
S.time=swap[1]
S.mid=swap[2]
S.draw=swap[3]
SCN.swapping=true
S.tar,S.style=tar,style
S.time,S.mid,S.draw=unpack(swap[style])
end
end
function SCN.go(tar,style)--Normal scene swapping, can back
SCN.push()SCN.swapTo(tar,style)
SCN.push()
SCN.swapTo(tar,style)
end
function SCN.back()
--Leave scene

View File

@@ -2,23 +2,42 @@ local gc=love.graphics
local int=math.floor
local format=string.format
local fontData=love.filesystem.newFile("font.ttf")
local newFont=gc.setNewFont
local setNewFont=gc.setFont
local fontCache,currentFontSize={}
function setFont(s)
local f=fontCache[s]
if s~=currentFontSize then
if f then
setNewFont(f)
else
f=newFont(fontData,s)
fontCache[s]=f
setNewFont(f)
do
local newFont=gc.setNewFont
local setNewFont=gc.setFont
local fontCache,currentFontSize={}
if love.filesystem.getInfo("font.ttf")then
local fontData=love.filesystem.newFile("font.ttf")
function setFont(s)
local f=fontCache[s]
if s~=currentFontSize then
if f then
setNewFont(f)
else
f=newFont(fontData,s)
fontCache[s]=f
setNewFont(f)
end
currentFontSize=s
end
return f
end
else
function setFont(s)
local f=fontCache[s]
if s~=currentFontSize then
if f then
setNewFont(f)
else
f=newFont(s)
fontCache[s]=f
setNewFont(f)
end
currentFontSize=s
end
return f
end
currentFontSize=s
end
return f
end
function toTime(s)

View File

@@ -1,6 +1,7 @@
local gc=love.graphics
local kb=love.keyboard
local int,abs=math.floor,math.abs
local max,min=math.max,math.min
local format=string.format
local color=color
local setFont=setFont
@@ -68,7 +69,7 @@ function button:draw()
gc.printf(t,x,y0,w,"center")
end
end
function button:getInfo()
function button:printInfo()
DBP(format("x=%d,y=%d,w=%d,h=%d,font=%d",self.x+self.w*.5,self.y+self.h*.5,self.w,self.h,self.font))
end
@@ -118,7 +119,7 @@ function key:draw()
gc.printf(t,x,y+h*.5-self.font*.7,w,"center")
end
end
function key:getInfo()
function key:printInfo()
DBP(format("x=%d,y=%d,w=%d,h=%d,font=%d",self.x+self.w*.5,self.y+self.h*.5,self.w,self.h,self.font))
end
@@ -138,13 +139,13 @@ function switch:getCenter()
return self.x,self.y
end
function switch:update()
local _=self.ATV
if WIDGET.sel==self then if _<8 then self.ATV=_+1 end
else if _>0 then self.ATV=_-.5 end
local atv=self.ATV
if WIDGET.sel==self then if atv<8 then self.ATV=atv+1 end
else if atv>0 then self.ATV=atv-.5 end
end
_=self.CHK
if self:disp()then if _<6 then self.CHK=_+1 end
else if _>0 then self.CHK=_-1 end
chk=self.CHK
if self:disp()then if chk<6 then self.CHK=chk+1 end
else if chk>0 then self.CHK=chk-1 end
end
end
function switch:draw()
@@ -175,16 +176,18 @@ function switch:draw()
gc.printf(t,x-412-ATV,y+20-self.font*.7,400,"right")
end
end
function switch:getInfo()
function switch:printInfo()
DBP(format("x=%d,y=%d,font=%d",self.x,self.y,self.font))
end
local slider={
type="slider",
ATV=0,--Activating time(0~8)
TAT=0,--Text activating time(0~180)
pos=0,--Position shown
}
local sliderShowFunc={
none=NULL,
int=function(S)
return S.disp()
end,
@@ -210,11 +213,21 @@ function slider:getCenter()
return self.x+self.w*(self.pos/self.unit),self.y
end
function slider:update()
local _=self.ATV
local atv=self.ATV
if self.TAT>0 then
self.TAT=self.TAT-1
end
if WIDGET.sel==self then
if _<6 then self.ATV=_+1 end
if atv<6 then
atv=atv+1
self.ATV=atv
end
self.TAT=180
else
if _>0 then self.ATV=_-.5 end
if atv>0 then
atv=atv-.5
self.ATV=atv
end
end
if not(self.hide and self.hide())then
self.pos=self.pos*.7+self.disp()*.3
@@ -251,10 +264,11 @@ function slider:draw()
gc.setLineWidth(2)
gc.setColor(1,1,1,ATV*.16)
gc.rectangle("line",bx+1,by+1,bw-2,bh-2)
if self.show then
setFont(25)
mStr(self:show(),cx,by-30)
end
end
if self.TAT>0 and self.show then
setFont(25)
gc.setColor(1,1,1,self.TAT/180)
mStr(self:show(),cx,by-30)
end
--Text
@@ -265,7 +279,7 @@ function slider:draw()
gc.printf(t,x-312-ATV,y-self.font*.7,300,"right")
end
end
function slider:getInfo()
function slider:printInfo()
DBP(format("x=%d,y=%d,w=%d",self.x,self.y,self.w))
end
@@ -416,10 +430,12 @@ function WIDGET.newSlider(D)
else
_.show=sliderShowFunc[D.show]
end
elseif _.unit<=1 then
_.show=sliderShowFunc.percent
else
_.show=sliderShowFunc.int
elseif D.show~=false then
if _.unit<=1 then
_.show=sliderShowFunc.percent
else
_.show=sliderShowFunc.int
end
end
for k,v in next,slider do _[k]=v end return _
end
@@ -493,10 +509,14 @@ function WIDGET.keyPressed(i)
if W then
if W.type=="slider"then
local p=W.disp()
local P=i=="left"and(p>0 and p-1)or p<W.unit and p+1
local u=(W.smooth and .01 or 1)
local P=i=="left"and max(p-u,0)or min(p+u,W.unit)
if p==P or not P then return end
W.code(P)
if W.change then W.change()end
if W.change and Timer()-W.lastTime>.18 then
W.lastTime=Timer()
W.change()
end
end
end
end
@@ -575,7 +595,10 @@ function WIDGET.gamepadPressed(i)
local P=i=="left"and(p>0 and p-1)or p<W.unit and p+1
if p==P or not P then return end
W.code(P)
if W.change then W.change()end
if W.change and Timer()-W.lastTime>.18 then
W.lastTime=Timer()
W.change()
end
end
end
elseif i=="dpup"or i=="dpdown"or i=="dpleft"or i=="dpright"then

View File

@@ -76,17 +76,18 @@ local virtualkeySet={
}
--Lambda Funcs for widgets,delete at file end
local function SETval(k) return function()return setting[k] end end
local function SETsto(k) return function(i)setting[k]=i end end
local function SETrev(k) return function()setting[k]=not setting[k] end end
local function pressKey(k) return function()love.keypressed(k) end end
local function setPen(i) return function()sceneTemp.pen=i end end
local function prevSkin(n) return function()SKIN.prev(n) end end
local function nextSkin(n) return function()SKIN.next(n) end end
local function nextDir(n) return function()SKIN.rotate(n) end end
local function VKAdisp(n) return function()return VK_org[n].ava end end
local function VKAcode(n) return function()VK_org[n].ava=not VK_org[n].ava end end
local function setLang(n) return function()LANG.set(n)setting.lang=n end end
function SETval(k) return function()return setting[k] end end
function SETsto(k) return function(i)setting[k]=i end end
function SETrev(k) return function()setting[k]=not setting[k] end end
function pressKey(k)return function()love.keypressed(k) end end
function setPen(i) return function()sceneTemp.pen=i end end
function prevSkin(n)return function()SKIN.prev(n) end end
function nextSkin(n)return function()SKIN.next(n) end end
function nextDir(n) return function()SKIN.rotate(n) end end
function VKAdisp(n) return function()return VK_org[n].ava end end
function VKAcode(n) return function()VK_org[n].ava=not VK_org[n].ava end end
function setLang(n) return function()LANG.set(n)setting.lang=n end end
function goScene(s) return function()SCN.go(s) end end
--NewXXX
newText=WIDGET.newText
@@ -118,20 +119,15 @@ local Widgets={
newKey({name="/", x=450,y=600,w=90, color="lBlue", font=50,code=pressKey("/")}),
newButton({name="play", x=640,y=600,w=180,h=90, color="lGreen", font=40,code=pressKey("space"),hide=function()return not sceneTemp.pass end}),
},
p15={
newButton({name="reset", x=160,y=100,w=180,h=100,color="lGreen", font=40,code=pressKey("space")}),
newSwitch({name="color", x=200,y=240,w=60, font=40,disp=function()return sceneTemp.color end,code=pressKey("c"),hide=function()return sceneTemp.state>0 end}),
newSwitch({name="hide", x=200,y=340,w=60, font=40,disp=function()return sceneTemp.blind end,code=pressKey("h"),hide=function()return sceneTemp.state>0 end}),
newButton({name="back", x=1140,y=640,w=180,h=80,color="white", font=35,code=BACK}),
},
main={
newButton({name="play", x=150,y=280,w=200,h=160,color="lRed", font=55,code=function()SCN.go("mode")end}),
newButton({name="setting", x=370,y=280,w=200,h=160,color="lBlue", font=45,code=function()SCN.go("setting_game")end}),
newButton({name="music", x=590,y=280,w=200,h=160,color="lPurple",font=32,code=function()SCN.go("music")end}),
newButton({name="help", x=150,y=460,w=200,h=160,color="lYellow",font=50,code=function()SCN.go("help")end}),
newButton({name="stat", x=370,y=460,w=200,h=160,color="lCyan", font=43,code=function()SCN.go("stat")end}),
newButton({name="play", x=150,y=280,w=200,h=160,color="lRed", font=55,code=goScene("mode")}),
newButton({name="setting", x=370,y=280,w=200,h=160,color="lBlue", font=45,code=goScene("setting_game")}),
newButton({name="music", x=590,y=280,w=200,h=160,color="lPurple",font=32,code=goScene("music")}),
newButton({name="help", x=150,y=460,w=200,h=160,color="lYellow",font=50,code=goScene("help")}),
newButton({name="stat", x=370,y=460,w=200,h=160,color="lCyan", font=43,code=goScene("stat")}),
newButton({name="qplay", x=590,y=460,w=200,h=160,color="lOrange",font=43,code=function()SCN.push()loadGame(stat.lastPlay,true)end}),
newButton({name="lang", x=150,y=610,w=160,h=100,color="lGreen", font=45,code=function()SCN.go("setting_lang")end}),
newButton({name="lang", x=150,y=610,w=160,h=100,color="lGreen", font=45,code=goScene("setting_lang")}),
newButton({name="minigame", x=370,y=610,w=80, color="black", code=goScene("minigame")}),
newButton({name="quit", x=590,y=610,w=160,h=100,color="lGrey", font=45,code=function()VOC.play("bye")SCN.swapTo("quit","slowFade")end}),
},
mode={
@@ -146,9 +142,9 @@ local Widgets={
},
music={
newSlider({name="bgm", x=760, y=80, w=400, font=35,disp=SETval("bgm"),code=function(v)setting.bgm=v;BGM.freshVolume()end}),
newButton({name="up", x=1100, y=200, w=120, color="white", font=55,code=pressKey("up")}),
newButton({name="up", x=1100, y=200, w=120, color="white", font=55,code=pressKey("up"),hide=function()return sceneTemp==1 end}),
newButton({name="play", x=1100, y=340, w=120, color="white", font=35,code=pressKey("space"),hide=function()return setting.bgm==0 end}),
newButton({name="down", x=1100, y=480, w=120, color="white", font=55,code=pressKey("down")}),
newButton({name="down", x=1100, y=480, w=120, color="white", font=55,code=pressKey("down"),hide=function()return sceneTemp==BGM.len end}),
newButton({name="back", x=1140, y=640, w=180,h=80, color="white", font=35,code=BACK}),
},
custom={
@@ -225,10 +221,12 @@ local Widgets={
newButton({name="any", x=600, y=360, w=120, color="lGrey", font=40,code=setPen(0)}),
newButton({name="space", x=730, y=360, w=120, color="grey", font=65,code=setPen(-1)}),
newButton({name="clear", x=1200, y=500, w=120, color="white", font=40,code=pressKey("delete")}),
newSwitch({name="demo", x=755, y=640, font=30,disp=function()return sceneTemp.demo end,code=function()sceneTemp.demo=not sceneTemp.demo end}),
newButton({name="copy", x=920, y=640, w=120, color="lRed", font=35,code=pressKey("cC")}),
newButton({name="paste", x=1060, y=640, w=120, color="lBlue", font=35,code=pressKey("cV")}),
newButton({name="copy", x=920, y=360, w=120, color="lRed", font=35,code=pressKey("cC")}),
newButton({name="paste", x=1060, y=360, w=120, color="lBlue", font=35,code=pressKey("cV")}),
newButton({name="clear", x=1200, y=360, w=120, color="white", font=40,code=pressKey("delete")}),
newButton({name="pushLine", x=1060, y=500, w=120, color="lYellow",font=20,code=pressKey("k")}),
newButton({name="delLine", x=1200, y=500, w=120, color="lYellow",font=20,code=pressKey("l")}),
newSwitch({name="demo", x=755, y=640, font=30,disp=function()return sceneTemp.demo end,code=function()sceneTemp.demo=not sceneTemp.demo end}),
newButton({name="custom", x=110, y=80, w=140,h=80, color="white", font=35,code=pressKey("e")}),
newButton({name="back", x=1140, y=640, w=180,h=80, color="white", font=35,code=BACK}),
},
@@ -245,9 +243,9 @@ local Widgets={
setting_game={
newButton({name="graphic", x=200, y=80, w=240,h=80, color="lCyan", font=35,code=function()SCN.swapTo("setting_video","swipe")end}),
newButton({name="sound", x=1080, y=80, w=240,h=80, color="lCyan", font=35,code=function()SCN.swapTo("setting_sound","swipe")end}),
newButton({name="ctrl", x=290, y=220, w=320,h=80, color="lYellow",font=35,code=function()SCN.go("setting_control")end}),
newButton({name="key", x=640, y=220, w=320,h=80, color="lGreen", font=35,code=function()SCN.go("setting_key")end}),
newButton({name="touch", x=990, y=220, w=320,h=80, color="lBlue", font=35,code=function()SCN.go("setting_touch")end}),
newButton({name="ctrl", x=290, y=220, w=320,h=80, color="lYellow",font=35,code=goScene("setting_control")}),
newButton({name="key", x=640, y=220, w=320,h=80, color="lGreen", font=35,code=goScene("setting_key")}),
newButton({name="touch", x=990, y=220, w=320,h=80, color="lBlue", font=35,code=goScene("setting_touch")}),
newSlider({name="reTime", x=350, y=340, w=300,unit=10, font=30,disp=SETval("reTime"), code=SETsto("reTime"),show=function(S)return(.5+S.disp()*.25).."s"end}),
newSlider({name="maxNext", x=350, y=440, w=300,unit=6, font=30,disp=SETval("maxNext"), code=SETsto("maxNext")}),
newButton({name="layout", x=460, y=540, w=140,h=70,color="white", font=35,code=function()
@@ -262,8 +260,8 @@ local Widgets={
setting_video={
newButton({name="sound", x=200, y=80,w=240,h=80,color="lCyan",font=35,code=function()SCN.swapTo("setting_sound","swipe")end}),
newButton({name="game", x=1080, y=80,w=240,h=80,color="lCyan",font=35,code=function()SCN.swapTo("setting_game","swipe")end}),
newSlider({name="ghost", x=250, y=180,w=200,unit=.6,noUnit=true,font=35,disp=SETval("ghost"),show="percent",code=SETsto("ghost")}),
newSlider({name="center", x=600, y=180,w=200,unit=1, font=35,disp=SETval("center"), code=SETsto("center")}),
newSlider({name="ghost", x=250, y=180,w=200,unit=.6,font=35,disp=SETval("ghost"),show="percent",code=SETsto("ghost")}),
newSlider({name="center", x=620, y=180,w=200,unit=1, font=35,disp=SETval("center"), code=SETsto("center")}),
newSwitch({name="smooth", x=260, y=260, font=25,disp=SETval("smooth"), code=SETrev("smooth")}),
newSwitch({name="grid", x=480, y=260, font=35,disp=SETval("grid"), code=SETrev("grid")}),
newSwitch({name="bagLine", x=700, y=260, font=30,disp=SETval("bagLine"), code=SETrev("bagLine")}),
@@ -425,16 +423,16 @@ local Widgets={
newSwitch({name="b8", x=280, y=500, font=35,disp=VKAdisp(8),code=VKAcode(8)}),
newSwitch({name="b9", x=280, y=560, font=35,disp=VKAdisp(9),code=VKAcode(9)}),
newSwitch({name="b10", x=280, y=620, font=35,disp=VKAdisp(10),code=VKAcode(10)}),
newSwitch({name="b11", x=620, y=80, font=35,disp=VKAdisp(11),code=VKAcode(11)}),
newSwitch({name="b12", x=620, y=140, font=35,disp=VKAdisp(12),code=VKAcode(12)}),
newSwitch({name="b13", x=620, y=200, font=35,disp=VKAdisp(13),code=VKAcode(13)}),
newSwitch({name="b14", x=620, y=260, font=35,disp=VKAdisp(14),code=VKAcode(14)}),
newSwitch({name="b15", x=620, y=320, font=35,disp=VKAdisp(15),code=VKAcode(15)}),
newSwitch({name="b16", x=620, y=380, font=35,disp=VKAdisp(16),code=VKAcode(16)}),
newSwitch({name="b17", x=620, y=440, font=35,disp=VKAdisp(17),code=VKAcode(17)}),
newSwitch({name="b18", x=620, y=500, font=35,disp=VKAdisp(18),code=VKAcode(18)}),
newSwitch({name="b19", x=620, y=560, font=35,disp=VKAdisp(19),code=VKAcode(19)}),
newSwitch({name="b20", x=620, y=620, font=35,disp=VKAdisp(20),code=VKAcode(20)}),
newSwitch({name="b11", x=580, y=80, font=35,disp=VKAdisp(11),code=VKAcode(11)}),
newSwitch({name="b12", x=580, y=140, font=35,disp=VKAdisp(12),code=VKAcode(12)}),
newSwitch({name="b13", x=580, y=200, font=35,disp=VKAdisp(13),code=VKAcode(13)}),
newSwitch({name="b14", x=580, y=260, font=35,disp=VKAdisp(14),code=VKAcode(14)}),
newSwitch({name="b15", x=580, y=320, font=35,disp=VKAdisp(15),code=VKAcode(15)}),
newSwitch({name="b16", x=580, y=380, font=35,disp=VKAdisp(16),code=VKAcode(16)}),
newSwitch({name="b17", x=580, y=440, font=35,disp=VKAdisp(17),code=VKAcode(17)}),
newSwitch({name="b18", x=580, y=500, font=35,disp=VKAdisp(18),code=VKAcode(18)}),
newSwitch({name="b19", x=580, y=560, font=35,disp=VKAdisp(19),code=VKAcode(19)}),
newSwitch({name="b20", x=580, y=620, font=35,disp=VKAdisp(20),code=VKAcode(20)}),
newButton({name="norm", x=840, y=100, w=240,h=80,color="white",font=35,code=function()for i=1,20 do VK_org[i].ava=i<11 end end}),
newButton({name="pro", x=1120, y=100, w=240,h=80,color="white",font=35,code=function()for i=1,20 do VK_org[i].ava=true end end}),
newSwitch({name="hide", x=1170, y=200, font=40,disp=SETval("VKSwitch"),code=SETrev("VKSwitch")}),
@@ -464,11 +462,32 @@ local Widgets={
newButton({name="eng", x=600, y=100,w=200,h=120,color="white",font=45,code=setLang(3)}),
newButton({name="str", x=820, y=100,w=200,h=120,color="white",font=45,code=setLang(4)}),
newButton({name="yygq", x=1040, y=100,w=200,h=120,color="white",font=45,code=setLang(5)}),
newButton({name="back", x=640, y=600,w=200,h=80,color="white",font=35,code=BACK}),
newButton({name="back", x=640, y=600,w=200,h=80,color="white", font=35,code=BACK}),
},
minigame={
newButton({name="p15", x=640, y=100,w=350,h=120,color="white",font=40,code=goScene("p15")}),
newButton({name="schulte_G",x=640, y=250,w=350,h=120,color="white",font=40,code=goScene("schulte_G")}),
newButton({name="back", x=1140, y=640,w=180,h=80,color="white", font=35,code=BACK}),
},
p15={
newButton({name="reset", x=160,y=100,w=180,h=100,color="lGreen", font=40,code=pressKey("space")}),
newSlider({name="color", x=110,y=250,w=170,unit=4,show=false, font=30,disp=function()return sceneTemp.color end,code=function(v)if sceneTemp.state==0 then sceneTemp.color=v end end,hide=function()return sceneTemp.state==1 end}),
newSwitch({name="blind", x=240,y=330,w=60, font=40,disp=function()return sceneTemp.blind end,code=pressKey("b"),hide=function()return sceneTemp.state==1 end}),
newSwitch({name="slide", x=240,y=420,w=60, font=40,disp=function()return sceneTemp.slide end,code=pressKey("s"),hide=function()return sceneTemp.state==1 end}),
newSwitch({name="pathVis", x=240,y=510,w=60, font=40,disp=function()return sceneTemp.pathVis end,code=pressKey("p"),hide=function()return sceneTemp.state==1 or not sceneTemp.slide end}),
newSwitch({name="revKB", x=240,y=600,w=60, font=40,disp=function()return sceneTemp.revKB end,code=pressKey("r"),hide=function()return sceneTemp.state==1 end}),
newButton({name="back", x=1140,y=640,w=180,h=80,color="white", font=35,code=BACK}),
},
schulte_G={
newButton({name="reset", x=160,y=100,w=180,h=100,color="lGreen", font=40,code=pressKey("r"),hide=function()return sceneTemp.state==0 end}),
newSlider({name="rank", x=130,y=250,w=150,unit=3,show=false, font=40,disp=function()return sceneTemp.rank-3 end,code=function(v)sceneTemp.rank=v+3 end,hide=function()return sceneTemp.state>0 end}),
newSwitch({name="blind", x=160,y=330,w=60, font=40,disp=function()return sceneTemp.blind end,code=pressKey("b"),hide=function()return sceneTemp.state==1 end}),
newSwitch({name="disappear",x=160,y=410,w=60, font=40,disp=function()return sceneTemp.disappear end,code=pressKey("d"),hide=function()return sceneTemp.state==1 end}),
newButton({name="back", x=1140,y=640,w=180,h=80,color="white", font=35,code=BACK}),
},
help={
newButton({name="staff", x=980, y=500,w=150,h=80,color="white",font=32,code=function()SCN.go("staff")end}),
newButton({name="his", x=1160, y=500,w=150,h=80,color="white",font=32,code=function()SCN.go("history")end}),
newButton({name="staff", x=980, y=500,w=150,h=80,color="white",font=32,code=goScene("staff")}),
newButton({name="his", x=1160, y=500,w=150,h=80,color="white",font=32,code=goScene("history")}),
newButton({name="qq", x=1070, y=600,w=200,h=80,color="white",font=32,code=function()love.system.openURL("tencent://message/?uin=1046101471&Site=&Menu=yes")end,hide=mobileHide}),
newButton({name="back", x=640, y=600,w=200,h=80,color="white",font=35,code=BACK}),
},
@@ -539,5 +558,6 @@ local Widgets={
mobileHide,SETval,SETsto,SETrev=nil
pressKey,setPen,prevSkin,nextSkin=nil
nextDir,VKAdisp,VKAcode,setLang=nil
goScene=nil
newText,newImage,newButton,newSwitch,newSlider=nil
return Widgets

View File

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

BIN
image/mess/life.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

View File

@@ -33,7 +33,13 @@ mapCam={
zoomMethod=nil,
zoomK=nil,
}
scr={x=0,y=0,w=0,h=0,W=0,H=0,rad=0,k=1}--wid,hei,radius,scale K
scr={
x=0,y=0,--Up-left Coord on screen
w=0,h=0,--Fullscreen w/h in gc
W=0,H=0,--Fullscreen w/h in shader
rad=0,--Radius
k=1,--Scale size
}--1280:720-Rect Screen Info
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

View File

@@ -15,7 +15,7 @@ end
return{
color=color.lBlue,
env={
noFly=true,
noTele=true,
minarr=1,
_20G=true,
drop=0,lock=15,
@@ -40,14 +40,14 @@ return{
players[1].modeData.event="M7"
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.grade,-81,170)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
mText(drawableText.grade,69,240)
setFont(55)
mStr(P.modeData.event,-81,110)
mStr(P.modeData.event,69,180)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
end,
score=function(P)return{P.modeData.point,P.stat.score}end,
scoreDisp=function(D)return sectionName[int(D[1]*.1)+1].." "..D[2]end,

View File

@@ -34,7 +34,7 @@ return{
end
end
end,
bg="rainbow2",bgm="way",
bg="rainbow2",bgm="shining terminal",
},
pauseLimit=true,
load=function()
@@ -42,10 +42,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
mStr(P.modeData.event,-81,200)
mStr("24",-81,320)
mText(drawableText.wave,-81,260)
mText(drawableText.nextWave,-81,380)
mStr(P.modeData.event,69,270)
mStr("22",69,390)
mText(drawableText.wave,69,330)
mText(drawableText.nextWave,69,450)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -51,14 +51,14 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
mStr(P.modeData.event,-81,200)
mStr(P.modeData.event,69,270)
mStr(
P.modeData.event<10 and 22
or P.modeData.event<20 and 25
or 28
,-81,320)
mText(drawableText.wave,-81,260)
mText(drawableText.nextWave,-81,380)
,69,390)
mText(drawableText.wave,69,330)
mText(drawableText.nextWave,69,450)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -19,8 +19,6 @@ return{
load=function()
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.modeData.event,P.stat.extraRate}end,
scoreDisp=function(D)return D[1].."Stage "..format("%.2f",D[2]).."%"end,
comp=function(a,b)return a[1]>b[1]end,

View File

@@ -14,11 +14,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -18,13 +18,13 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,106,0,2.6)
gc.draw(IMG.electric,124,176,0,2.6)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -18,13 +18,13 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,106,0,2.6)
gc.draw(IMG.electric,124,176,0,2.6)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -15,13 +15,13 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,106,0,2.6)
gc.draw(IMG.electric,124,176,0,2.6)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -18,13 +18,13 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,106,0,2.6)
gc.draw(IMG.electric,124,176,0,2.6)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -27,22 +27,22 @@ return{
--Figures
local t=Timer()
gc.setColor(1,1,1,.5+.2*sin(t))
gc.draw(IMG.hbm,-426,-86,0,1.5)
gc.draw(IMG.electric,326,142,0,2.6)
gc.draw(IMG.hbm,-276,-16,0,1.5)
gc.draw(IMG.electric,476,212,0,2.6)
--Texts
gc.setColor(.8,.8,.8)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
--"Field"
gc.setColor(.5,.5,.5)
gc.rectangle("line",-1,-11,302,612)
gc.rectangle("line",301,0,15,601)
gc.rectangle("line",-16,-3,15,604)
gc.rectangle("line",149,59,302,612)
gc.rectangle("line",451,70,15,601)
gc.rectangle("line",134,67,15,604)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -46,10 +46,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.combo,-81,310)
mStr(P.modeData.point,-81,400)
mText(drawableText.combo,-81,358)
mText(drawableText.mxcmb,-81,450)
mStr(P.combo,69,380)
mStr(P.modeData.point,69,470)
mText(drawableText.combo,69,428)
mText(drawableText.mxcmb,69,520)
end,
score=function(P)return{min(P.modeData.point,100),P.stat.time}end,
scoreDisp=function(D)return D[1].." Combo "..toTime(D[2])end,

View File

@@ -44,10 +44,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.combo,-81,310)
mStr(P.modeData.point,-81,400)
mText(drawableText.combo,-81,358)
mText(drawableText.mxcmb,-81,450)
mStr(P.combo,69,380)
mStr(P.modeData.point,69,470)
mText(drawableText.combo,69,428)
mText(drawableText.mxcmb,69,520)
end,
score=function(P)return{min(P.modeData.point,100),P.stat.time}end,
scoreDisp=function(D)return D[1].." Combo "..toTime(D[2])end,

View File

@@ -16,7 +16,7 @@ end
return{
color=color.lBlue,
env={
noFly=true,
noTele=true,
das=16,arr=6,sddas=2,sdarr=2,
center=0,ghost=0,
drop=3,lock=3,wait=10,fall=25,
@@ -34,12 +34,12 @@ return{
mesDisp=function(P,dx,dy)
setFont(75)
local r=P.gameEnv.target*.1
mStr(r<11 and 18 or r<22 and r+8 or r==22 and"00"or r==23 and"0a"or format("%x",r*10-220),-81,210)
mText(drawableText.speedLV,-81,290)
mStr(r<11 and 18 or r<22 and r+8 or r==22 and"00"or r==23 and"0a"or format("%x",r*10-220),69,280)
mText(drawableText.speedLV,69,360)
setFont(45)
mStr(P.stat.row,-81,320)
mStr(P.gameEnv.target,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.stat.row,69,390)
mStr(P.gameEnv.target,69,440)
gc.rectangle("fill",25,445,90,4)
end,
score=function(P)return{P.stat.score,P.stat.row}end,
scoreDisp=function(D)return D[1].." "..D[2].." Lines"end,

View File

@@ -51,21 +51,12 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
if P.gameEnv.puzzle or P.gameEnv.target>1e10 then
mStr(P.stat.row,-81,225)
mText(drawableText.line,-81,290)
if P.gameEnv.target>1e10 then
mStr(P.stat.row,69,295)
mText(drawableText.line,69,360)
else
local R=P.gameEnv.target-P.stat.row
mStr(R>=0 and R or 0,-81,240)
end
if P.gameEnv.puzzle and P.modeData.event==0 then
local m=puzzleMark
for y=1,preField.h do for x=1,10 do
local T=preField[y][x]
if T~=0 then
gc.draw(m[T],30*x-30+dx,600-30*y+dy)
end
end end
mStr(R>=0 and R or 0,69,310)
end
end,
}

View File

@@ -63,14 +63,14 @@ return{
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
setFont(55)
mStr(P.stat.row,-81,225)
mText(drawableText.line,-81,290)
mStr(P.stat.row,69,295)
mText(drawableText.line,69,360)
if P.gameEnv.puzzle and P.modeData.event==0 then
local m=puzzleMark
for y=1,preField.h do for x=1,10 do
local T=preField[y][x]
if T~=0 then
gc.draw(m[T],30*x-30+dx,600-30*y+dy)
gc.draw(m[T],150+30*x-30+dx,70+600-30*y+dy)
end
end end
end

View File

@@ -37,7 +37,7 @@ return{
end
end
end,
bg="rainbow2",bgm="shining terminal",
bg="rainbow2",bgm="down",
},
pauseLimit=true,
load=function()
@@ -45,10 +45,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
mStr(P.modeData.event,-81,200)
mStr(P.modeData.point,-81,320)
mText(drawableText.wave,-81,260)
mText(drawableText.rpm,-81,380)
mStr(P.modeData.event,69,270)
mStr(P.modeData.point,69,390)
mText(drawableText.wave,69,350)
mText(drawableText.rpm,69,450)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -45,10 +45,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
mStr(P.modeData.event,-81,200)
mStr(P.modeData.point,-81,320)
mText(drawableText.wave,-81,260)
mText(drawableText.rpm,-81,380)
mStr(P.modeData.event,69,270)
mStr(P.modeData.point,69,390)
mText(drawableText.wave,69,350)
mText(drawableText.rpm,69,450)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -24,8 +24,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.row}end,
scoreDisp=function(D)return D[1].." Waves "..D[2].." Lines"end,

View File

@@ -15,7 +15,7 @@ return{
D.event=D.event+1
end
end,
bg="bg2",bgm="shining terminal",
bg="bg2",bgm="down",
},
pauseLimit=true,
load=function()
@@ -23,8 +23,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.row}end,
scoreDisp=function(D)return D[1].." Waves "..D[2].." Lines"end,

View File

@@ -104,7 +104,7 @@ return{
mesDisp=function(P,dx,dy)
setFont(70)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,280)
mStr(R>=0 and R or 0,69,335)
end,
score=function(P)return{min(P.stat.row,100),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -18,7 +18,7 @@ return{
mesDisp=function(P,dx,dy)
setFont(70)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,280)
mStr(R>=0 and R or 0,69,335)
end,
score=function(P)return{min(P.stat.row,100),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -11,10 +11,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,370)
mText(drawableText.atk,-81,313)
mText(drawableText.eff,-81,425)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.score}end,
scoreDisp=function(D)return tostring(D[1])end,

View File

@@ -44,12 +44,12 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.dig,-81,190)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.line,-81,243)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.dig,69,260)
mStr(P.stat.atk,69,380)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,490)
mText(drawableText.line,69,313)
mText(drawableText.atk,69,433)
mText(drawableText.eff,69,545)
end,
score=function(P)return{P.stat.dig}end,
scoreDisp=function(D)return D[1].." Lines"end,

View File

@@ -17,7 +17,7 @@ end
return{
color=color.magenta,
env={
noFly=true,
noTele=true,
mindas=7,minarr=1,minsdarr=1,
drop=.5,wait=8,fall=20,
target=50,dropPiece=check,
@@ -30,9 +30,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.row,-81,320)
mStr(P.gameEnv.target,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.stat.row,69,390)
mStr(P.modeData.event*100+100,69,440)
gc.rectangle("fill",25,445,90,4)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -16,7 +16,7 @@ end
return{
color=color.green,
env={
noFly=true,
noTele=true,
wait=8,fall=20,
target=10,dropPiece=check_LVup,
mindas=7,minarr=1,minsdarr=1,
@@ -29,9 +29,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.row,-81,320)
mStr(P.modeData.point+10,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.stat.row,69,390)
mStr(P.modeData.event*100+100,69,440)
gc.rectangle("fill",25,445,90,4)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -36,7 +36,7 @@ end
return{
color=color.red,
env={
noFly=true,
noTele=true,
das=6,arr=1,
_20G=true,
lock=death_lock[1],
@@ -52,9 +52,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.modeData.point,-81,320)
mStr((P.modeData.event+1)*100,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.modeData.point,69,390)
mStr((P.modeData.event+1)*100,69,440)
gc.rectangle("fill",25,445,90,4)
end,
score=function(P)return{P.modeData.point,P.stat.time}end,
scoreDisp=function(D)return D[1].."P "..toTime(D[2])end,

View File

@@ -40,7 +40,7 @@ end
return{
color=color.red,
env={
noFly=true,
noTele=true,
das=9,arr=3,
_20G=true,
lock=rush_lock[1],
@@ -56,9 +56,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.modeData.point,-81,320)
mStr((P.modeData.event+1)*100,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.modeData.point,69,390)
mStr((P.modeData.event+1)*100,69,440)
gc.rectangle("fill",25,445,90,4)
end,
score=function(P)return{P.modeData.point,P.stat.time}end,
scoreDisp=function(D)return D[1].."P "..toTime(D[2])end,

View File

@@ -39,7 +39,7 @@ end
return{
color=color.lGrey,
env={
noFly=true,
noTele=true,
das=5,arr=1,
_20G=true,lock=12,
wait=10,fall=10,
@@ -54,10 +54,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
local MD=P.modeData
mStr(MD.point,-81,320)
mStr((MD.event+1)*100,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.modeData.point,69,390)
mStr((P.modeData.event+1)*100,69,440)
gc.rectangle("fill",25,445,90,4)
end,
score=function(P)return{P.modeData.point,P.stat.time}end,
scoreDisp=function(D)return D[1].."P "..toTime(D[2])end,

View File

@@ -16,11 +16,11 @@ return{
mesDisp=function(P,dx,dy)
setFont(45)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,250)
mStr(R>=0 and R or 0,69,320)
setFont(75)
mStr(P.stat.pc,-81,350)
mText(drawableText.pc,-81,432)
mStr(P.stat.pc,69,420)
mText(drawableText.pc,69,502)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -16,11 +16,11 @@ return{
mesDisp=function(P,dx,dy)
setFont(45)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,250)
mStr(R>=0 and R or 0,69,320)
setFont(75)
mStr(P.stat.pc,-81,350)
mText(drawableText.pc,-81,432)
mStr(P.stat.pc,69,420)
mText(drawableText.pc,69,502)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -15,11 +15,11 @@ return{
mesDisp=function(P,dx,dy)
setFont(45)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,250)
mStr(R>=0 and R or 0,69,320)
setFont(75)
mStr(P.stat.pc,-81,350)
mText(drawableText.pc,-81,432)
mStr(P.stat.pc,69,420)
mText(drawableText.pc,69,502)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -67,8 +67,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(75)
mStr(P.stat.pc,-81,330)
mText(drawableText.pc,-81,412)
mStr(P.stat.pc,69,400)
mText(drawableText.pc,69,482)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -58,8 +58,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(75)
mStr(P.stat.pc,-81,330)
mText(drawableText.pc,-81,412)
mStr(P.stat.pc,69,400)
mText(drawableText.pc,69,482)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,1,true,5000))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,1,true,10000))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,2,true,12600))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,3,true,16260))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,3,true,26000))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -1,6 +1,7 @@
return{
color=color.cyan,
env={
life=2,
drop=60,lock=60,
freshLimit=15,
bg="bg2",bgm="race",
@@ -8,9 +9,7 @@ return{
pauseLimit=true,
load=function()
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",3))
end,
mesDisp=function(P,dx,dy)
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",2))
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
@@ -19,10 +18,10 @@ return{
if P.result=="WIN"then
local T=P.stat.time
return
T<=20 and 5 or
T<=25 and 4 or
T<=35 and 3 or
T<=60 and 2 or
T<=100 and 5 or
T<=125 and 4 or
T<=175 and 3 or
T<=300 and 2 or
1
end
end,

View File

@@ -1,6 +1,7 @@
return{
color=color.green,
env={
life=2,
drop=60,lock=60,
freshLimit=15,
bg="bg2",bgm="race",
@@ -8,9 +9,7 @@ return{
pauseLimit=true,
load=function()
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",5))
end,
mesDisp=function(P,dx,dy)
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",4))
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
@@ -19,10 +18,10 @@ return{
if P.result=="WIN"then
local T=P.stat.time
return
T<=20 and 5 or
T<=25 and 4 or
T<=40 and 3 or
T<=62 and 2 or
T<=100 and 5 or
T<=125 and 4 or
T<=200 and 3 or
T<=300 and 2 or
1
end
end,

View File

@@ -1,6 +1,7 @@
return{
color=color.magenta,
env={
life=2,
drop=60,lock=60,
freshLimit=15,
bg="bg2",bgm="race",
@@ -8,9 +9,7 @@ return{
pauseLimit=true,
load=function()
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",7))
end,
mesDisp=function(P,dx,dy)
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",5))
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
@@ -19,10 +18,10 @@ return{
if P.result=="WIN"then
local T=P.stat.time
return
T<=20 and 5 or
T<=25 and 4 or
T<=35 and 3 or
T<=60 and 2 or
T<=100 and 5 or
T<=125 and 4 or
T<=175 and 3 or
T<=300 and 2 or
1
end
end,

View File

@@ -1,6 +1,7 @@
return{
color=color.red,
env={
life=2,
drop=60,lock=60,
freshLimit=15,
bg="bg2",bgm="race",
@@ -8,9 +9,7 @@ return{
pauseLimit=true,
load=function()
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",9,2,true,26000))
end,
mesDisp=function(P,dx,dy)
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",7,2,true,26000))
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
@@ -19,10 +18,10 @@ return{
if P.result=="WIN"then
local T=P.stat.time
return
T<=20 and 5 or
T<=25 and 4 or
T<=35 and 3 or
T<=60 and 2 or
T<=100 and 5 or
T<=125 and 4 or
T<=175 and 3 or
T<=300 and 2 or
1
end
end,

View File

@@ -1,6 +1,7 @@
return{
color=color.lYellow,
env={
life=2,
drop=60,lock=60,
freshLimit=15,
bg="bg2",bgm="race",
@@ -8,9 +9,7 @@ return{
pauseLimit=true,
load=function()
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,3,true,50000))
end,
mesDisp=function(P,dx,dy)
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",8,3,true,40000))
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
@@ -19,10 +18,10 @@ return{
if P.result=="WIN"then
local T=P.stat.time
return
T<=20 and 5 or
T<=25 and 4 or
T<=35 and 3 or
T<=60 and 2 or
T<=100 and 5 or
T<=125 and 4 or
T<=175 and 3 or
T<=300 and 2 or
1
end
end,

View File

@@ -12,11 +12,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=40-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)

View File

@@ -11,12 +11,12 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=10-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
if r<21 and r>0 then
mStr(r,69,335)
if r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)
gc.line(dx,600-30*r+dy,300+dx,600-30*r+dy)

View File

@@ -11,11 +11,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=100-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)
@@ -31,9 +31,9 @@ return{
return
T<=70 and 5 or
T<=90 and 4 or
T<=136 and 3 or
T<=196 and 2 or
T<=240 and 1 or
T<=110 and 3 or
T<=130 and 2 or
T<=160 and 1 or
0
end,
}

View File

@@ -11,11 +11,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=1000-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)

View File

@@ -11,12 +11,12 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=20-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
if r<21 and r>0 then
mStr(r,69,335)
if r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)
gc.line(dx,600-30*r+dy,300+dx,600-30*r+dy)

View File

@@ -11,11 +11,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=40-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)

View File

@@ -11,11 +11,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=400-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)

View File

@@ -24,8 +24,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -30,8 +30,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -25,8 +25,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -29,8 +29,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -31,8 +31,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -25,10 +25,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -17,10 +17,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -15,17 +15,17 @@ return{
freshLimit=15,
target=200,
dropPiece=tech_check_hard,
bg="matrix",bgm="newera",
bg="matrix",bgm="push",
},
load=function()
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -15,17 +15,17 @@ return{
freshLimit=15,
target=200,
dropPiece=tech_check_easy,
bg="matrix",bgm="newera",
bg="matrix",bgm="push",
},
load=function()
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -15,17 +15,17 @@ return{
freshLimit=15,
target=200,
dropPiece=tech_check_hard,
bg="matrix",bgm="push",
bg="matrix",bgm="down",
},
load=function()
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -15,17 +15,17 @@ return{
freshLimit=15,
target=200,
dropPiece=tech_check_easy,
bg="matrix",bgm="push",
bg="matrix",bgm="down",
},
load=function()
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -15,17 +15,17 @@ return{
drop=1e99,lock=1e99,
target=200,
dropPiece=tech_check_hard,
bg="matrix",bgm="way",
bg="matrix",bgm="newera",
},
load=function()
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -15,17 +15,17 @@ return{
drop=1e99,lock=1e99,
target=200,
dropPiece=tech_check_easy,
bg="matrix",bgm="way",
bg="matrix",bgm="newera",
},
load=function()
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -43,7 +43,7 @@ return{
if L[n]then
PLY.newAIPlayer(n,78*i-54,115*j-98,.09,AITemplate("9S",rnd(2,5)))
else
PLY.newAIPlayer(n,78*i-54,115*j-98,.09,AITemplate("CC",rnd(3,5),2,true,10000))
PLY.newAIPlayer(n,78*i-54,115*j-98,.09,AITemplate("CC",rnd(3,5),2,true,12000))
end
n=n+1
end end
@@ -51,24 +51,24 @@ return{
if L[n]then
PLY.newAIPlayer(n,78*i+267,115*j-98,.09,AITemplate("9S",rnd(2,5)))
else
PLY.newAIPlayer(n,78*i+267,115*j-98,.09,AITemplate("CC",rnd(3,5),2,true,10000))
PLY.newAIPlayer(n,78*i+267,115*j-98,.09,AITemplate("CC",rnd(3,5),2,true,12000))
end
n=n+1
end end
end,
mesDisp=function(P,dx,dy)
setFont(35)
mStr(#players.alive.."/49",-81,175)
mStr(P.modeData.point,-70,215)
gc.draw(drawableText.ko,-127,225)
mStr(#players.alive.."/49",69,245)
mStr(P.modeData.point,80,285)
gc.draw(drawableText.ko,23,295)
setFont(20)
gc.setColor(1,.5,0,.6)
gc.print(P.badge,-47,227)
gc.print(P.badge,103,297)
gc.setColor(1,1,1)
setFont(25)
gc.print(powerUp[P.strength],-132,290)
gc.print(powerUp[P.strength],18,360)
for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i-138,260)
gc.draw(IMG.badgeIcon,16*i+12,330)
end
end,
score=function(P)return{P.modeData.event,P.modeData.point}end,

View File

@@ -58,17 +58,17 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(35)
mStr(#players.alive.."/49",-81,175)
mStr(P.modeData.point,-70,215)
gc.draw(drawableText.ko,-127,225)
mStr(#players.alive.."/49",69,245)
mStr(P.modeData.point,80,285)
gc.draw(drawableText.ko,23,295)
setFont(20)
gc.setColor(1,.5,0,.6)
gc.print(P.badge,-47,227)
gc.print(P.badge,103,297)
gc.setColor(1,1,1)
setFont(25)
gc.print(powerUp[P.strength],-132,290)
gc.print(powerUp[P.strength],18,360)
for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i-138,260)
gc.draw(IMG.badgeIcon,16*i+12,330)
end
end,
score=function(P)return{P.modeData.event,P.modeData.point}end,

Some files were not shown because too many files have changed in this diff Show More