Compare commits

..

11 Commits

15 changed files with 73 additions and 41 deletions

View File

@@ -1,8 +1,8 @@
VERSION={
code=1500,
short="V0.15.0",
string="Alpha V0.15.0",
name="超新星 Supernovas",
code=1501,
short="V0.15.1",
string="Alpha V0.15.1",
name="耀斑 Flare",
}
function love.conf(t)
t.identity='Techmino'--Saving folder

View File

@@ -82,10 +82,10 @@ SKIN= require"parts.skin"
USERS= require"parts.users"
NET= require"parts.net"
VK= require"parts.virtualKey"
PLY= require"parts.player"
netPLY= require"parts.netPlayer"
AIFUNC= require"parts.ai"
AIBUILDER= require"parts.AITemplate"
PLY= require"parts.player"
netPLY= require"parts.netPlayer"
MODES= require"parts.modes"
--Initialize field[1]

View File

@@ -10,7 +10,7 @@ return{
"official website homepage",
"help",
"Official website of Techmino!\nYou can modify your profile on it",
"home.techmino.org",
"http://home.techmino.org",
},
{"To New Players",
"guide newbie noob",

View File

@@ -11,7 +11,7 @@ return{
"official website homepage guanwang",
"help",
"Techmino的官网!\n可以在上面修改头像和个人信息",
"home.techmino.org",
"http://home.techmino.org",
},
{"Tetris Wiki",
"tetris wiki",

View File

@@ -64,10 +64,8 @@ return{
local AItype=ENV.opponent:sub(1,2)
local AIlevel=tonumber(ENV.opponent:sub(-1))
if AItype=='9S'then
ENV.target=nil
PLY.newAIPlayer(2,AIBUILDER('9S',2*AIlevel))
elseif AItype=='CC'then
ENV.target=nil
PLY.newAIPlayer(2,AIBUILDER('CC',2*AIlevel-1,math.floor(AIlevel*.5+1),true,20000+5000*AIlevel))
end
@@ -77,12 +75,7 @@ return{
end,
mesDisp=function(P)
setFont(55)
if P.modeData.target>1e10 then
mStr(P.stat.row,69,225)
mText(drawableText.line,69,290)
else
local R=P.modeData.target-P.stat.row
mStr(R>=0 and R or 0,69,240)
end
mStr(P.stat.row,69,225)
mText(drawableText.line,69,290)
end,
}

View File

@@ -6,6 +6,7 @@ return{
freshLimit=15,
pushSpeed=5,
garbageSpeed=2,
initSkip=true,
allowMod=false,
task=function(P)
local S=P.stat

View File

@@ -23,6 +23,7 @@ return{
garbageSpeed=.3,
pushSpeed=2,
freshLimit=15,
initSkip=true,
bg='rainbow',bgm='sugar fairy',
},
load=function()

View File

@@ -23,6 +23,7 @@ return{
garbageSpeed=.3,
pushSpeed=2,
freshLimit=15,
initSkip=true,
bg='rainbow',bgm='rockblock',
},
load=function()

View File

@@ -23,6 +23,7 @@ return{
garbageSpeed=.3,
pushSpeed=2,
freshLimit=15,
initSkip=true,
bg='rainbow',bgm='magicblock',
},
load=function()

View File

@@ -23,6 +23,7 @@ return{
garbageSpeed=.3,
pushSpeed=2,
freshLimit=15,
initSkip=true,
bg='rainbow',bgm='sugar fairy',
},
load=function()

View File

@@ -23,6 +23,7 @@ return{
garbageSpeed=.3,
pushSpeed=2,
freshLimit=15,
initSkip=true,
bg='rainbow',bgm='rockblock',
},
load=function()

View File

@@ -23,6 +23,7 @@ return{
garbageSpeed=.3,
pushSpeed=2,
freshLimit=15,
initSkip=true,
bg='rainbow',bgm='magicblock',
},
load=function()

View File

@@ -1,6 +1,6 @@
local gc=love.graphics
local gc_push,gc_pop,gc_clear,gc_origin=gc.push,gc.pop,gc.clear,gc.origin
local gc_translate,gc_scale,gc_rotate=gc.translate,gc.scale,gc.rotate
local gc_translate,gc_scale,gc_rotate,gc_shear=gc.translate,gc.scale,gc.rotate,gc.shear
local gc_setCanvas,gc_setShader=gc.setCanvas,gc.setShader
local gc_draw,gc_line,gc_rectangle=gc.draw,gc.line,gc.rectangle
local gc_print,gc_printf=gc.print,gc.printf
@@ -293,9 +293,15 @@ local function drawBuffer(P)
gc_push('transform')
gc_translate(300,max(0,600-30*sum))
gc_scale(min(.2+sum/50,1))
setFont(100)
gc_setColor(1,.2+min(sum*.02,.8)*(.5+.5*sin(TIME()*min(sum,32))),.2,min(sum/30,.8))
gc_printf(int(P.atkBufferSum1),-300,-20,292,'right')
setFont(100)
if sum>20 then
local d=P.atkBufferSum-sum
if d>.5 then
gc_translate(d^.5*(rnd()-.5)*15,d^.5*(rnd()-.5)*15)
end
end
gc_printf(int(sum),-300,-20,292,'right')
gc_pop()
end
end
@@ -439,13 +445,25 @@ local function drawMission(P)
end
end
end
local function drawStartCounter(count)
gc_setColor(1,1,1)
local function drawStartCounter(P)
local count=179-P.frameRun
gc_push('transform')
gc_translate(305,220)
if count%60>45 then gc_scale(1+(count%60-45)^2*.01,1)end
setFont(95)
mStr(int(count/60+1),0,0)
gc_translate(300,300)
local num=int(count/60+1)
local d=count%60-45
if num==3 then
gc_setColor(.7,.9,1)
if d>0 then gc_scale(1+d^2*.01,1)end
elseif num==2 then
gc_setColor(1,.95,.7)
if d>0 then gc_shear(-(d/15)^2,0)end
elseif num==1 then
gc_setColor(1,.8,.8)
if d>0 then gc_rotate(d^2*.00355)end
end
setFont(100)
mStr(num,0,-70)
--P.gameEnv.initSkip
gc_pop()
end
@@ -670,10 +688,16 @@ function draw.norm(P)
end
--Spike
if ENV.showSpike and P.spikeTime>0 and P.spike>=10 then
local gb=10/P.spike
gc_setColor(1,gb,gb,min(P.spikeTime/30,.8))
mDraw(P.spikeText,150,100,nil,min(.3+(P.spike/26)*.4+P.spikeTime/100*.3,1))
local sp,spt=P.spike,P.spikeTime
if ENV.showSpike and spt>0 and sp>=10 then
local rg=10/sp
gc_setColor(rg,rg,1,min(spt/30,.8))
local x,y=150,100
if spt>85 then
local d=2*(spt-85)*min(sp/50,1)
x,y=x+(rnd()-.5)*d,y+(rnd()-.5)*d
end
mDraw(P.spikeText,x,y,nil,min(.3+(sp/26)*.4+spt/100*.3,1))
end
--Bonus texts
@@ -716,7 +740,7 @@ function draw.norm(P)
if P.life>0 then drawLife(P.life)end
drawMission(P)
if P.frameRun<180 then drawStartCounter(179-P.frameRun)end
if P.frameRun<180 then drawStartCounter(P)end
gc_pop()
end
function draw.small(P)

View File

@@ -1,4 +1,4 @@
local gc,tc=love.graphics,love.touch
local gc,kb,tc=love.graphics,love.keyboard,love.touch
local gc_setColor,gc_print=gc.setColor,gc.print
local setFont,mStr=setFont,mStr
@@ -144,15 +144,10 @@ function scene.keyDown(key)
else
if key=="space"then
if netPLY.getSelfJoinMode()==0 then
_setReady()
(kb.isDown("lctrl","rctrl","lalt","ralt")and _setSpectate or _setReady)()
else
_setCancel()
end
elseif key=="p"then
if netPLY.getSelfJoinMode()==0 then
_setSpectate()
end
elseif key=="s"then
_gotoSetting()
end
end
@@ -351,7 +346,7 @@ scene.widgetList={
textBox,
inputBox,
WIDGET.newKey{name="setting",fText=TEXTURE.setting,x=1200,y=160,w=90,h=90,code=_gotoSetting,hideF=function()return playing or netPLY.getSelfReady()or NET.getlock('ready')end},
WIDGET.newKey{name="ready",x=950,y=630,w=190,h=80,color='lG',font=35,code=_setReady,
WIDGET.newKey{name="ready",x=1060,y=510,w=370,h=90,color='lG',font=35,code=_setReady,
hideF=function()
return
playing or
@@ -359,7 +354,7 @@ scene.widgetList={
netPLY.getSelfReady() or
NET.getlock('ready')
end},
WIDGET.newKey{name="spectate",x=1150,y=630,w=190,h=80,color='lO',font=35,code=_setSpectate,
WIDGET.newKey{name="spectate",x=1060,y=610,w=370,h=90,color='lO',font=35,code=_setSpectate,
hideF=function()
return
playing or
@@ -367,7 +362,7 @@ scene.widgetList={
netPLY.getSelfReady() or
NET.getlock('ready')
end},
WIDGET.newKey{name="cancel",x=1050,y=630,w=390,h=80,color='lH',font=40,code=_setCancel,
WIDGET.newKey{name="cancel",x=1060,y=560,w=370,h=120,color='lH',font=40,code=_setCancel,
hideF=function()
return
playing or

View File

@@ -24,6 +24,19 @@ return STRING.split([=[
等级系统; 收集向抽奖玩法; 教学关
录像回放菜单; 跳帧开关; 多方块; 超60帧; 热更新
0.15.1: 耀斑 Flare
新增:
允许开局跳过若干next时,倒计时数字颜色会略有不同
改动:
微调联网房间内准备前ui,修改键盘准备/观战快捷键
混战模式和联网对战允许开局跳块
优化爆发累计和缓冲预警的画面效果
优化开局倒计时画面效果
修复自定义-消除模式左侧信息显示问题
修复:
一处cc库相关的报错
[服务器]观战玩家会影响游戏结束判定
0.15.0: 超新星 Supernova
新增:
[双端]观战功能