Compare commits
57 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
963b57a49b | ||
|
|
9b57f55285 | ||
|
|
86266731cd | ||
|
|
78c0c7d18d | ||
|
|
be7f7fe17b | ||
|
|
b673892b7d | ||
|
|
7ab34480cd | ||
|
|
f46cdbec47 | ||
|
|
30f4073bc6 | ||
|
|
6bc0da712d | ||
|
|
d553b2cb05 | ||
|
|
aebf6fafc2 | ||
|
|
0287dd390d | ||
|
|
7f6d0e8c45 | ||
|
|
68c4a9fceb | ||
|
|
e47e0e1c78 | ||
|
|
e5478739bb | ||
|
|
0c7f56b656 | ||
|
|
0b5c19b459 | ||
|
|
f86d98bfde | ||
|
|
e681a43fb1 | ||
|
|
4f8810a693 | ||
|
|
0e5bcaa21e | ||
|
|
6cc0b262be | ||
|
|
4c94952052 | ||
|
|
c82f04e115 | ||
|
|
4da23852a7 | ||
|
|
b873aa09d6 | ||
|
|
d3ae0e28a8 | ||
|
|
b730d5e485 | ||
|
|
ffbfa525d4 | ||
|
|
ff9d63c910 | ||
|
|
7d4607a82d | ||
|
|
e7a9a2c0e9 | ||
|
|
719a14bed4 | ||
|
|
d2586faf13 | ||
|
|
d188580c85 | ||
|
|
aa442a18a3 | ||
|
|
5ba8cd9d6f | ||
|
|
ae19255b2f | ||
|
|
7bb2fa2fbd | ||
|
|
f2520fdbc2 | ||
|
|
b4258d0759 | ||
|
|
ee45f4aecf | ||
|
|
1497bf97f5 | ||
|
|
906107471a | ||
|
|
1ba6f2eae3 | ||
|
|
1f524f5ec0 | ||
|
|
409417c529 | ||
|
|
7899ab54c2 | ||
|
|
10bcad54a4 | ||
|
|
9141fde183 | ||
|
|
3eaac51523 | ||
|
|
6ee6503e1c | ||
|
|
19975826b5 | ||
|
|
ef32b917a8 | ||
|
|
198e4bdaab |
37
.github/workflows/build.yml
vendored
Normal file
37
.github/workflows/build.yml
vendored
Normal 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
3
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
lib
|
||||
font.ttf
|
||||
font.ttf
|
||||
BGM
|
||||
Binary file not shown.
BIN
BGM/blank.ogg
BIN
BGM/blank.ogg
Binary file not shown.
BIN
BGM/cruelty.ogg
BIN
BGM/cruelty.ogg
Binary file not shown.
Binary file not shown.
BIN
BGM/end.ogg
BIN
BGM/end.ogg
Binary file not shown.
BIN
BGM/far.ogg
BIN
BGM/far.ogg
Binary file not shown.
BIN
BGM/final.ogg
BIN
BGM/final.ogg
Binary file not shown.
Binary file not shown.
BIN
BGM/infinite.ogg
BIN
BGM/infinite.ogg
Binary file not shown.
BIN
BGM/newera.ogg
BIN
BGM/newera.ogg
Binary file not shown.
BIN
BGM/oxygen.ogg
BIN
BGM/oxygen.ogg
Binary file not shown.
BIN
BGM/push.ogg
BIN
BGM/push.ogg
Binary file not shown.
BIN
BGM/race.ogg
BIN
BGM/race.ogg
Binary file not shown.
BIN
BGM/reason.ogg
BIN
BGM/reason.ogg
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
BGM/way.ogg
BIN
BGM/way.ogg
Binary file not shown.
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
@@ -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
78
Zframework/log.lua
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
2
conf.lua
2
conf.lua
@@ -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
BIN
image/mess/life.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 330 B |
8
main.lua
8
main.lua
@@ -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
|
||||
|
||||
14
modes/GM.lua
14
modes/GM.lua
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user