0.10.0:回放更新

This commit is contained in:
MrZ_26
2020-08-03 16:45:08 +08:00
parent 25fe724bf8
commit 5d74d980e9
6 changed files with 736 additions and 692 deletions

View File

@@ -2,6 +2,7 @@ local langList={
{
anykey="按任意键继续",
newVersion="检测到更新!",
newBigVersion="检测到大更新!大量存档信息被改动",
marking="游戏作者:MrZ_26\n任何视频/直播不得出现此水印\n任何转述声明无效",
lang="中文",
atkModeName={"随机","徽章","击杀","反击"},
@@ -464,6 +465,7 @@ local langList={
{
anykey="按任意键继续",
newVersion="检测到更新!",
newBigVersion="检测到大更新!大量存档信息被改动",
marking="游戏作者:MrZ_26\n任何视频/直播不得出现此水印\n任何转述声明无效",
lang="全中文",
atkModeName={"随机","徽章","击杀","反击"},
@@ -923,6 +925,7 @@ local langList={
{
anykey="Press any button",
newVersion="Updating detected!",
newBigVersion="Big updating detected! Save data altered",
marking="Game Author:MrZ_26\nIllegal recording if see this\nAny explanation invalid",
lang="English",
atkModeName={"Random","Badges","K.O.s","Attackers"},
@@ -1371,6 +1374,7 @@ local langList={
{
anykey="↓□↓",
newVersion="&!!!",
newBigVersion="&!!!~~~",
marking="Game Author:MrZ_26\nIllegal recording if see this\nAny explanation invalid",
lang="?????",
atkModeName={"?","( )","!","←→"},

View File

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

View File

@@ -11,16 +11,15 @@ spin判定:
攻击系统:
普通消除:
消1/2/3/4攻击0.25/1.25/2.25/4
消1/2/3/4攻击0.5/1.5/2.5/4
特殊消除:
spin1/2/3攻击2/4/6,若mini则减半
spin1/2/3攻击2/4/6,若mini则减至一
B2B:加1(techrash/spin1/spin2)或2(spin3)攻击
B3B:在B2B效果之上消四再加1,spin再加0.5*消行数攻击,二者都+1额外抵挡
堆楼连击:0,0,1,1,2,2,2,3,3,3,4,4,3, 之后都是2
挖掘连击:0,0,1,1,2,2,3,3,4,4,4, 之后都是5
连击:给予上述攻击[连击数*20%]的加成,上限200%,连消3次之后额外加1攻击
特殊消除会增加B2B点数,让之后的特殊消除获得B2B(B3B)增益(详细说明见下文)
半全消("下方有剩余方块"的全消,如果是I消1行则必须不剩余玩家放置的方块):伤害+2,额外抵挡+2
全消:将上述伤害之和开根号,再+6~12(本局内递增)+2额外抵挡(注:本局消行数>4时会将B2B点数拉满)
全消:将上述伤害之和减半,再+6~12(本局内递增)+2额外抵挡(注:本局消行数>4时会将B2B点数拉满)
根据上述规则计算后,向下取整,攻击打出
分数系统:
@@ -37,7 +36,7 @@ spin判定:
back to back(B2B)点数说明:
B2B点数的范围在0~1200,在点数>=40时进行特殊消除为B2B,>1000时特殊消除为B3B
普通消除-250
spin1/2/3:+50/100/180(mini变为原来40%)
spin1/2/3:+50/100/180(mini变为原来25%)
消四:+100
空spin:+20,此法得到的点数不能超过1000
当点数在1000以上时空放一块-40(不减到低于1000)
@@ -67,16 +66,15 @@ Spin detection:
Attack system:
Regular line clears:
Single/Double/Triple/Techrash sends 0.25/1.25/2.25/4
Single/Double/Triple/Techrash sends 0.5/1.5/2.5/4
Special line clears:
Spin Single/Double/Triple sends 2/4/6, half if Mini
B2B: +1 (Techrash/Spin Single/Spin Double) or +2 (Spin Triple)
B2B2B/B3B: In addition to B2B, +1 if Techrash, +(0.5 * lines cleared) if Spin, and in both cases +1 additional blocking
Wide Combo: 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 3, then 2 afterwards
Dig Combo: 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, then 5 afterwards
Combo: each combo gives 20% more attack (capped at 200%), extra 1 attack after 3 combo
Special line clears will increase B2B gauge, making later special line clears have B2B or B2B2B bonus (see below)
Half Perfect Clear (a Perfect Clear "with blocks left below". If it's an I clearing 1 line, then the remaining blocks must not be player-placed): Attack +2, Extra Blocking +2
Perfect Clear: square root all damage above, then +6 to +12 attack (increases within a round) and +2 extra blocking. (note: if lines cleared in this round >4, then B2B gauge will be filled)
Perfect Clear: half all damage above, then +6 to +12 attack (increases within a round) and +2 extra blocking. (note: if lines cleared in this round >4, then B2B gauge will be filled)
After calculating all above, the damage value will be rounded down then sent
Score system:
@@ -93,7 +91,7 @@ Countering:
Back to Back (B2B) gauge:
The B2B gauge ranges from 0 to 1,200. Special line clears are B2B if the gauge is >=40, B2B2B if >1,000.
A regular line clear -250
Spin Single/Double/Triple +50/100/180 (x40% if Mini)
Spin Single/Double/Triple +50/100/180 (x25% if Mini)
Techrash +100
Spin without clearing lines +20, but gauge cannot exceed 1,000 with this method
When gauge is above 1,000, a drop without clearing lines -40 (cannot drop below 1,000 with this method)

View File

@@ -6,7 +6,7 @@
/_/ \___/ \___//_/ /_//_/ /_/ /_//_//_/ /_/ \____/
Techmino is my first "huge project"
optimization is welcomed if you also love tetromino game
]]
]]--
--Global Setting & Vars
math.randomseed(os.time()*626)
@@ -18,17 +18,18 @@ function NULL()end
system=love.system.getOS()
game={}
mapCam={
sel=nil,--selected mode ID
sel=nil,--Selected mode ID
x=0,y=0,k=1,--camera pos/k
x1=0,y1=0,k1=1,--camera pos/k shown
--basic paras
--Basic paragrams
x=0,y=0,k=1,--Camera pos/k
x1=0,y1=0,k1=1,--Camera pos/k shown
keyCtrl=false,--if controlling with key
--If controlling with key
keyCtrl=false,
--For auto zooming when enter/leave scene
zoomMethod=nil,
zoomK=nil,
--for auto zooming when enter/leave scene
}
scr={x=0,y=0,w=0,h=0,rad=0,k=1}--wid,hei,radius,scale K
@@ -36,10 +37,23 @@ 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
preBag={}
players={alive={},human=0}
--blockSkin,blockSkinMini={},{}--redefined in SKIN.change
game={
frame=0, --Frame count
result=0, --Game result
pauseTime=0, --Time paused
pauseCount=0, --Pausing count
garbageSpeed=1, --Garbage timing speed
warnLVL0=0, --Warning level
warnLVL=0, --Warning level (show)
recording=false, --If recording
replaying=false, --If replaying
rec={}, --Recording list, key-time
}--Global game data
players={alive={}}--Players data
curMode=nil--Current mode object
--blockSkin,blockSkinMini={},{}--Redefined in SKIN.change
require("Zframework")--load Zframework
require("Zframework")--Load Zframework
--Load modules
blocks= require("parts/mino")
@@ -58,7 +72,7 @@ Modes= require("parts/modes")
TICK= require("parts/tick")
--load files & settings
--Load files & settings
modeRanks={sprint_10=0}
local fs=love.filesystem
@@ -87,23 +101,37 @@ if fs.getInfo("virtualkey.dat")then FILE.loadVK()end
if fs.getInfo("tech_ultimate.dat")then fs.remove("tech_ultimate.dat")end
if fs.getInfo("tech_ultimate+.dat")then fs.remove("tech_ultimate+.dat")end
--update data file
S=stat
while #modeRanks>73 do
table.remove(modeRanks)
end
if modeRanks[73]==6 then modeRanks[73]=0 end
if modeRanks[1]then--rename key of modeRanks
local L=modeRanks
--Update modeRanks
R=modeRanks
if R[1]then
local L=R
for i=1,#L do
L[Modes[i].name],L[i]=L[i]
end
elseif R.master_adavnce then
R.master_advance,R.master_adavnce=R.master_adavnce
end
--Update data file
S=stat
if S.version=="Alpha V0.9.1"or type(setting.spawn)~="number"then
setting.spawn=0
end
if S.version~=gameVersion then
S.version=gameVersion
TEXT.show(text.newVersion,640,200,30,"fly",.3)
TEXT.show(text.newBigVersion,640,200,30,"fly",.3)
newVersionLaunch=true
fs.remove("master_adavnce.dat")
fs.remove("master_beginner.dat")
for name,M in next,Modes do
if M.score then
if modeRanks[name]==6 then
modeRanks[name]=0
end
S=nil
else
modeRanks[name]=6
end
end
end
R,S=nil

View File

@@ -82,5 +82,5 @@ return{
{name="infinite_dig", x=-1000, y=-600, size=35,shape=1,icon="infinite_dig",unlock={}},
{name="custom_clear", x=200, y=-350, size=45,shape=3,icon="custom", unlock={}},
{name="custom_puzzle", x=200, y=-200, size=45,shape=3,icon="puzzle", unlock={}},
{name="sprintPenta", x=-200, y=-200, size=45,shape=3,icon="sprint", unlock={}},
{name="sprintPenta", x=-200, y=-200, size=50,shape=2,icon="sprint", unlock={}},
}

View File

@@ -27,10 +27,9 @@ Future outlook:
New modes:
PUYO
game tutorial
finesse tutorial
finesse tutorial/exam(3next, 1pt/mino, drop to score)
game Abbr. test
backfire
finesse exam(3next, 1pt/mino, drop to score)
round-based dig
bigbang
rhythm
@@ -40,17 +39,14 @@ Future outlook:
task survival
dig practice
dig zen
sprint_symmetry
symmetry
hidden: sound only
reverb (often repeat a piece many times)
KPP-locked
parkour
Other:
mod system with:
block hidden
field hidden
up-hidden
low-hidden
block/field/up/low hidden
next[1] hidden
field flip(LR/UD)
no fail(∞ lives)
@@ -59,33 +55,51 @@ Future outlook:
2048 (with next (with deadly mode))
mine sweeper
tank battle
简易防沉迷系统(GMT+8限定)
new AI: task-Z
full-key control
drag control for mobile device
cool backgrounds
'Encrypt'(compile to byte code)
better drop FX
60+ fps supporting
in-game document
game recording
full-key control
drag control for mobile device
new widgets (joystick etc.)
splashing block
more graphic FXs & 3D features & animations
network game
0.9.3: Details Update
0.10.0: 回放更新 Replay Update
新内容:
中文更新说明
更新后跳转到此页面
单局回放,要是有cc会出问题,以后再说
支持复制场地+序列
修改连击攻击力算法,调整mini的属性
自定义序列显示方块颜色
自定义序列菜单ui调整
新控件:简化按钮 (用于自定义序列等菜单)
改动:
Chinese update log
控件动效优化
极简错误音效调整
模电吉备历史性同框
暂停界面数据显示格式微
spin消3的分数下
暂停界面数据显示格式和布局微调
初心/上级20G评级要求改动,清除高分榜
100L/400L评级要求改动
这个页面更易读了
代码:
性能优化,部分老设备运行更流畅
帧率控制代码调整,运行可能更流畅(反正不会比以前卡)
修改部分玩家方法名
统一注释位置,所有注释开头大写
修复:
一些文本小错误
自定义序列相关的闪退
按键跟踪设置界面闪退
pc训练方块ghost浮空
i平放顶层消1的奇怪行为
玩家掉出屏幕过程中绘制场地时剪裁不正确
限时打分的时间条和hold重合
0.9.2: Global Update
new:
@@ -157,7 +171,7 @@ Future outlook:
new hidden BGM: Hay what kind of feeling
now can reset all data (hidden)
changed:
add a stat "offset", used to avoid strange radar chart in Attack Mode, show in total stat page only
show "offset" in stat (only in total stat page)
6 more X-spin-wallkick added
fixed:
speed dial do not moving
@@ -193,7 +207,7 @@ Future outlook:
fixed:
error in modes with ai (rotate O in its rotation system, cause some strange error)
0.8.19/20: Fantastic Global Update II
0.8.19/20: Fantastic Global Update+
new:
new clearing FX
pentomino with new rotation system (testing)
@@ -222,7 +236,7 @@ Future outlook:
fixed:
impossible to get SS in attacker mode
0.8.18: Details Update II
0.8.18: Details Update+
new:
adjustable virtualkey SFX & VIB
changed:
@@ -294,7 +308,7 @@ Future outlook:
4 devMode now
fixed:
error when set to max 0 next
AI sequence initializing error when face setting changed
I sequence initializing error when face setting changed
DAS error
0.8.15: Bug Fixed
@@ -305,11 +319,11 @@ Future outlook:
changed:
animation time of lock effect little changed
bone block of ball-skin changed
AI change target more slowly
Author.dignity-=1
I change target more slowly
uthor.dignity-=1
fixed:
180° I spin kicklist error
AI will kill itself when spawn dir. of mino changed
I will kill itself when spawn dir. of mino changed
error when reach 400 in 20G(Lunatic)
error block color in modes with starting field
@@ -408,7 +422,7 @@ Future outlook:
0.8.8: Space BG Update
new:
background now is cool space with "planets" and "stars", instead of boring falling tetrominos
background now is cool space with "planets" and "stars", instead of falling tetrominos
no black side in any screen size
adjustable waiting time before start
ajustable maxnext count
@@ -463,7 +477,7 @@ Future outlook:
fixed:
many bugs
0.8.4: Miya Update II
0.8.4: Miya Update+
changed:
vocal more natural(important, may cause new bug)
a bit better performence on mobile devices
@@ -557,7 +571,7 @@ Future outlook:
ALMOST reconstructed WHOLE PLAYER SYSTEM, NEED TEST
many bug fixed
0.7.23/24: Feast of Hearing
0.7.23/24: Sound Update
all bgm remade
more settings with brand new GUI!
new mode: Master-Final
@@ -666,10 +680,10 @@ Future outlook:
code reconstructed
debug key change to F8
fixed:
error when seq=his
error when sequence mode is his
error game area size of custom opponent
0.7.12: Total Update
0.7.12: Global Update
AI learned to switch attack mode
seperate master mode from marathon mode
master mode more interesting
@@ -683,7 +697,7 @@ Future outlook:
some Chinese translaton editted
[reconstruct event system]
0.7.11: Total Update
0.7.11: Global Update
some Chinese translaton editted
add bone block in 2 hardest marathon(new block-fresh system)
play sound when get badges in royale mode
@@ -740,7 +754,7 @@ Future outlook:
fix all attacking bug of royale mode
change sequence of TSD-only mode to bag7
0.7.5: Total Update
0.7.5: Global Update
reduce difficuly of PC training mode, and add more patterns
reduce difficuly of death mode
add PC challenge mode
@@ -776,8 +790,8 @@ Future outlook:
]=]
local find,sub=string.find,string.sub
local L,c={},0--list, \n counter,
local p,p1=1,0--cut start/end pos
local L,c={},0--List, \n counter,
local p,p1=1,0--Cut start/end pos
local EOF=#S
while true do