Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ecc1ae826f | ||
|
|
408377e51b | ||
|
|
1f5698ce15 | ||
|
|
d4a23ee68c | ||
|
|
b76b82d6ee | ||
|
|
2a0154dfa0 | ||
|
|
622177e0df |
@@ -1,28 +1,25 @@
|
|||||||
local fs=love.filesystem
|
local fs=love.filesystem
|
||||||
local FILE={}
|
local FILE={}
|
||||||
function FILE.load(name)
|
function FILE.load(name)
|
||||||
local F=fs.newFile(name)
|
if fs.getInfo(name)then
|
||||||
if F:open("r")then
|
local F=fs.newFile(name)
|
||||||
local s=F:read()
|
if F:open("r")then
|
||||||
F:close()
|
local s=F:read()
|
||||||
if s:sub(1,6)=="return"then
|
F:close()
|
||||||
s=loadstring(s)
|
if s:sub(1,6)=="return"then
|
||||||
if s then
|
s=loadstring(s)
|
||||||
setfenv(s,{})
|
if s then
|
||||||
return s()
|
setfenv(s,{})
|
||||||
|
return s()
|
||||||
|
end
|
||||||
else
|
else
|
||||||
LOG.print(name.." "..text.loadError,COLOR.red)
|
local res=json.decode(s)
|
||||||
return
|
if res then
|
||||||
end
|
return res
|
||||||
else
|
end
|
||||||
local res=json.decode(s)
|
|
||||||
if res then
|
|
||||||
return res
|
|
||||||
else
|
|
||||||
LOG.print(name.." "..text.loadError,COLOR.red)
|
|
||||||
return
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
LOG.print(name.." "..text.loadError,COLOR.red)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function FILE.save(data,name,mode)
|
function FILE.save(data,name,mode)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
local gc=love.graphics
|
local gc=love.graphics
|
||||||
local rnd,rem=math.random,table.remove
|
local int,rnd,rem=math.floor,math.random,table.remove
|
||||||
local setFont,mStr=setFont,mStr
|
local setFont,mStr=setFont,mStr
|
||||||
|
|
||||||
local texts={}
|
local texts={}
|
||||||
@@ -79,7 +79,7 @@ function TEXT.show(text,x,y,font,style,spd,stop)
|
|||||||
text=text, --String
|
text=text, --String
|
||||||
x=x or 0, --X
|
x=x or 0, --X
|
||||||
y=y or 0, --Y
|
y=y or 0, --Y
|
||||||
font=font or 40, --Font
|
font=int(font/5)*5 or 40, --Font
|
||||||
spd=(spd or 1)/60, --Timing speed(1=last 1 sec)
|
spd=(spd or 1)/60, --Timing speed(1=last 1 sec)
|
||||||
stop=stop, --Stop time(sustained text)
|
stop=stop, --Stop time(sustained text)
|
||||||
draw=textFX[style]or error("unavailable type:"..style), --Draw method
|
draw=textFX[style]or error("unavailable type:"..style), --Draw method
|
||||||
@@ -91,7 +91,7 @@ function TEXT.getText(text,x,y,font,style,spd,stop)--Another version of TEXT.sho
|
|||||||
text=text,
|
text=text,
|
||||||
x=x or 0,
|
x=x or 0,
|
||||||
y=y or 0,
|
y=y or 0,
|
||||||
font=font or 40,
|
font=int(font/5)*5 or 40,
|
||||||
spd=(spd or 1)/60,
|
spd=(spd or 1)/60,
|
||||||
stop=stop,
|
stop=stop,
|
||||||
draw=textFX[style]or error("unavailable type:"..style),
|
draw=textFX[style]or error("unavailable type:"..style),
|
||||||
|
|||||||
4
conf.lua
4
conf.lua
@@ -1,5 +1,5 @@
|
|||||||
VERSION_CODE=1208
|
VERSION_CODE=1209
|
||||||
VERSION_NAME="Alpha V0.12.8"
|
VERSION_NAME="Alpha V0.12.9"
|
||||||
love.setDeprecationOutput(false)
|
love.setDeprecationOutput(false)
|
||||||
function love.conf(t)
|
function love.conf(t)
|
||||||
t.identity="Techmino"--Saving folder
|
t.identity="Techmino"--Saving folder
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ function FREEROW.reset(num)
|
|||||||
end
|
end
|
||||||
elseif num>len then
|
elseif num>len then
|
||||||
for i=len+1,num do
|
for i=len+1,num do
|
||||||
L[i]={0,0,0,0,0,0,0,0,0,0}
|
L[i]={0,0,0,0,0,0,0,0,0,0,garbage=false}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
len=num
|
len=num
|
||||||
@@ -16,7 +16,7 @@ end
|
|||||||
function FREEROW.get(val,ifGarbage)
|
function FREEROW.get(val,ifGarbage)
|
||||||
if len==0 then
|
if len==0 then
|
||||||
for i=1,10 do
|
for i=1,10 do
|
||||||
L[i]={0,0,0,0,0,0,0,0,0,0}
|
L[i]={0,0,0,0,0,0,0,0,0,0,garbage=false}
|
||||||
end
|
end
|
||||||
len=len+10
|
len=len+10
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ local Player={}--Player class
|
|||||||
|
|
||||||
local int,ceil,rnd=math.floor,math.ceil,math.random
|
local int,ceil,rnd=math.floor,math.ceil,math.random
|
||||||
local max,min=math.max,math.min
|
local max,min=math.max,math.min
|
||||||
local lg=math.log10
|
|
||||||
local ins,rem=table.insert,table.remove
|
local ins,rem=table.insert,table.remove
|
||||||
local ct=coroutine
|
local ct=coroutine
|
||||||
|
|
||||||
@@ -154,15 +153,13 @@ local function task_movePosition(P,x,y,size)
|
|||||||
local x1,y1,size1=P.x,P.y,P.size
|
local x1,y1,size1=P.x,P.y,P.size
|
||||||
while true do
|
while true do
|
||||||
coroutine.yield()
|
coroutine.yield()
|
||||||
local d=((x1-x)^2+(y1-y)^2)^.5
|
if (x1-x)^2+(y1-y)^2<1 then
|
||||||
if d<.626 then
|
|
||||||
P:setPosition(x,y,size)
|
P:setPosition(x,y,size)
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
d=max(.085-lg(d)*.02,.03)
|
x1=x1+(x-x1)*.126
|
||||||
x1=x1+(x-x1)*d
|
y1=y1+(y-y1)*.126
|
||||||
y1=y1+(y-y1)*d
|
size1=size1+(size-size1)*.126
|
||||||
size1=size1+(size-size1)*d
|
|
||||||
P:setPosition(x1,y1,size1)
|
P:setPosition(x1,y1,size1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1196,45 +1193,42 @@ do--Player.drop(P)--Place piece
|
|||||||
end
|
end
|
||||||
|
|
||||||
--Send Lines
|
--Send Lines
|
||||||
|
atk=int(atk*(1+P.strength*.25))--Badge Buff
|
||||||
send=atk
|
send=atk
|
||||||
if send>0 then
|
if exblock>0 then
|
||||||
if exblock>0 then
|
exblock=int(exblock*(1+P.strength*.25))--Badge Buff
|
||||||
exblock=int(exblock*(1+P.strength*.25))--Badge Buff
|
P:showText("+"..exblock,0,53,20,"fly")
|
||||||
P:showText("+"..exblock,0,53,20,"fly")
|
off=off+P:cancel(exblock)
|
||||||
off=off+P:cancel(exblock)
|
end
|
||||||
end
|
if send>=1 then
|
||||||
|
P:showText(send,0,80,35,"zoomout")
|
||||||
send=int(send*(1+P.strength*.25))--Badge Buff
|
_=P:cancel(send)
|
||||||
|
send=send-_
|
||||||
|
off=off+_
|
||||||
if send>0 then
|
if send>0 then
|
||||||
P:showText(send,0,80,35,"zoomout")
|
local T
|
||||||
_=P:cancel(send)
|
if GAME.modeEnv.royaleMode then
|
||||||
send=send-_
|
if P.atkMode==4 then
|
||||||
off=off+_
|
local M=#P.atker
|
||||||
if send>0 then
|
if M>0 then
|
||||||
local T
|
for i=1,M do
|
||||||
if GAME.modeEnv.royaleMode then
|
P:attack(P.atker[i],send,CB.color)
|
||||||
if P.atkMode==4 then
|
|
||||||
local M=#P.atker
|
|
||||||
if M>0 then
|
|
||||||
for i=1,M do
|
|
||||||
P:attack(P.atker[i],send,CB.color)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
T=randomTarget(P)
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
T=P.atking
|
T=randomTarget(P)
|
||||||
P:freshTarget()
|
|
||||||
end
|
end
|
||||||
elseif #PLAYERS.alive>1 then
|
else
|
||||||
T=randomTarget(P)
|
T=P.atking
|
||||||
end
|
P:freshTarget()
|
||||||
if T then
|
|
||||||
P:attack(T,send,CB.color)
|
|
||||||
end
|
end
|
||||||
|
elseif #PLAYERS.alive>1 then
|
||||||
|
T=randomTarget(P)
|
||||||
|
end
|
||||||
|
if T then
|
||||||
|
P:attack(T,send,CB.color)
|
||||||
end
|
end
|
||||||
if P.sound and send>3 then SFX.play("emit",min(send,7)*.1)end
|
|
||||||
end
|
end
|
||||||
|
if P.sound and send>3 then SFX.play("emit",min(send,7)*.1)end
|
||||||
end
|
end
|
||||||
|
|
||||||
--SFX & Vibrate
|
--SFX & Vibrate
|
||||||
@@ -1282,7 +1276,7 @@ do--Player.drop(P)--Place piece
|
|||||||
|
|
||||||
cscore=int(cscore)
|
cscore=int(cscore)
|
||||||
if ENV.score then
|
if ENV.score then
|
||||||
P:showText(cscore,(P.curX+P.sc[2]-5.5)*30,(10-P.curY-P.sc[1])*30+P.fieldBeneath+P.fieldUp,int(8-120/(cscore+20))*5,"score",2)
|
P:showText(cscore,(P.curX+P.sc[2]-5.5)*30,(10-P.curY-P.sc[1])*30+P.fieldBeneath+P.fieldUp,40-600/(cscore+20),"score",2)
|
||||||
end
|
end
|
||||||
|
|
||||||
piece.row,piece.dig=cc,gbcc
|
piece.row,piece.dig=cc,gbcc
|
||||||
@@ -1342,7 +1336,9 @@ do--Player.drop(P)--Place piece
|
|||||||
end
|
end
|
||||||
if gbcc>0 then
|
if gbcc>0 then
|
||||||
STAT.dig=STAT.dig+gbcc
|
STAT.dig=STAT.dig+gbcc
|
||||||
STAT.digatk=STAT.digatk+atk*gbcc/cc
|
if atk>0 then
|
||||||
|
STAT.digatk=STAT.digatk+atk*gbcc/cc
|
||||||
|
end
|
||||||
end
|
end
|
||||||
local n=CB.name
|
local n=CB.name
|
||||||
if dospin then
|
if dospin then
|
||||||
|
|||||||
@@ -177,7 +177,9 @@ function scene.update()
|
|||||||
if newVersionLaunch then--Delete old ranks & Unlock modes which should be unlocked
|
if newVersionLaunch then--Delete old ranks & Unlock modes which should be unlocked
|
||||||
for name,rank in next,RANKS do
|
for name,rank in next,RANKS do
|
||||||
local M=MODES[name]
|
local M=MODES[name]
|
||||||
if M and M.unlock and rank>0 then
|
if type(rank)~="number"then
|
||||||
|
RANKS[name]=nil
|
||||||
|
elseif M and M.unlock and rank>0 then
|
||||||
for _,unlockName in next,M.unlock do
|
for _,unlockName in next,M.unlock do
|
||||||
if not RANKS[unlockName]then
|
if not RANKS[unlockName]then
|
||||||
RANKS[unlockName]=0
|
RANKS[unlockName]=0
|
||||||
|
|||||||
@@ -45,8 +45,17 @@ local S=[=[
|
|||||||
特殊控件(虚拟摇杆等); task-Z(新AI); 机器人调试模式
|
特殊控件(虚拟摇杆等); task-Z(新AI); 机器人调试模式
|
||||||
热更新; 工程编译到字节码; 超60帧; 跳帧开关
|
热更新; 工程编译到字节码; 超60帧; 跳帧开关
|
||||||
|
|
||||||
|
0.12.9: 修复更新 Fixup Update
|
||||||
|
改动:
|
||||||
|
玩家出场动画加速
|
||||||
|
代码:
|
||||||
|
几处细节调整
|
||||||
|
修复:
|
||||||
|
开局硬降后卡顿
|
||||||
|
|
||||||
0.12.8: 皮肤调整 Better Skins
|
0.12.8: 皮肤调整 Better Skins
|
||||||
改动:
|
改动:
|
||||||
|
攻击力统计算法修改
|
||||||
b3b触发点和上限都减小200,变为800和1000
|
b3b触发点和上限都减小200,变为800和1000
|
||||||
新增/删除几个方块皮肤
|
新增/删除几个方块皮肤
|
||||||
调整部分皮肤亮度
|
调整部分皮肤亮度
|
||||||
|
|||||||
Reference in New Issue
Block a user