Compare commits

...

7 Commits

Author SHA1 Message Date
MrZ_26
856c490a2b 再修正master_g的一些细节 2022-01-19 20:02:30 +08:00
MrZ_26
5e9dcc27aa 再更新所有的音效文件 2022-01-19 19:46:27 +08:00
NOT_A_ROBOT
3f129a9585 Fix crash bug on graded master when reaching a very high internal grade 2 (#611)
* Fix crash bug on graded master when reaching a very high internal grade 2
2022-01-19 19:45:59 +08:00
MrZ_26
e682ff1de5 提前修改好更新历史和版本号 2022-01-19 18:46:40 +08:00
MrZ_26
2c064d5809 修复倒计时时不能充das close #610 2022-01-19 18:43:08 +08:00
MrZ_26
e0573382e8 更新manual关于攻击系统的说明 2022-01-19 18:38:57 +08:00
MrZ_26
5a514ce495 修正master_g的规则 2022-01-19 18:10:15 +08:00
52 changed files with 51 additions and 44 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -2,7 +2,13 @@ local gc=love.graphics
local regretDelay=-1
local int_grade=0
local grade_points=0
local int_grade_boosts={0,1,2,3,4,5,5,6,6,7,7,7,8,8,8,9,9,9,10,11,12,12,12,13,13,14,14,15,15,16,16,17}
local int_grade_boosts={0,1,2,3,4,5,5,6,6,7,7,7,8,8,8,9,9,9,10,11,12,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26}
local gradeList={
"9","8","7","6","5","4","3","2","1",
"S1","S2","S3","S4","S5","S6","S7","S8","S9",
"m1","m2","m3","m4","m5","m6","m7","m8","m9",
"M","MK","MV","MO","MM-","MM","MM+","GM-","GM","GM+","TM-","TM","TM+"
}
local spd_lvl=0
local cools=0
local regrets=0
@@ -66,15 +72,9 @@ local function getDas(l)
6
end
local function getGrade()
local gradeList={
"9","8","7","6","5","4","3","2","1",
"S1","S2","S3","S4","S5","S6","S7","S8","S9",
"m1","m2","m3","m4","m5","m6","m7","m8","m9",
"M","MK","MV","MO","MM-","MM","MM+","GM-","GM","GM+","TM-","TM","TM+"
}
if int_grade==nil then int_grade=0 end
if rollGrades==nil then rollGrades=0 end
return gradeList[math.min(math.floor(int_grade_boosts[int_grade+1]+rollGrades+cools+1-regrets),#gradeList)]
return gradeList[math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList)]
end
local function addGrade(row, cmb, lvl) -- IGS = internal grade system
if row<1 then return end
@@ -111,11 +111,13 @@ return{
noTele=true,
das=16,arr=1,
minsdarr=1,
ihs=true,irs=true,ims=false,
RS='SRS_plus',
mesDisp=function(P)
gc.setColor(1,1,1,1)
setFont(45)
mText(TEXTOBJ.grade,63,180)
setFont(62)
setFont(60)
mStr(getGrade(),63,110)
if isInRoll then
setFont(20)
@@ -245,34 +247,33 @@ return{
isInRollTrans=false
prevDrop70=false
nextSpeedUp=false
local decayRate={125,80,80,50,45,45,45,40,40,40,40,40,30,30,30,20,20,20,20,20,15,15,15,15,15,15,15,15,15,15,10,10,10}
local decayRate={125,80,80,50,45,45,45,40,40,40,40,40,30,30,30,20,20,20,20,20,15,15,15,15,15,15,15,15,15,15,10,10,10,9,9,9,8,8,8,7,7,7,6}
local decayTimer=0
while true do
YIELD()
P.modeData.grade=getGrade()
P.modeData.gradePts=math.min(math.floor(int_grade_boosts[int_grade+1]+rollGrades+cools-regrets),36)
P.modeData.gradePts=math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList)
if regretDelay>-1 then
regretDelay=regretDelay-1
if regretDelay==-1 then P:_showText("REGRET!!",0,-120,80,'beat',.8) end
end
if isInRollTrans then
if P.waiting==220 then
if P.waiting>=220 then
--Make field invisible
for j=1,#P.field do for i=1,10 do
P.visTime[j][i]=P.visTime[j][i]-0.001
for y=1,#P.field do for x=1,10 do
P.visTime[y][x]=P.waiting-220
end end
elseif P.waiting==190 then
for _=#P.field,1,-1 do
P.field[_],P.visTime[_]=nil
end
TABLE.cut(P.field)
TABLE.cut(P.visTime)
elseif P.waiting==180 then
playReadySFX(3,3)
elseif P.waiting==120 then
playReadySFX(2,2)
playReadySFX(2,1)
elseif P.waiting==60 then
playReadySFX(1,1)
elseif P.waiting==1 then
playReadySFX(0,0)
playReadySFX(0,1)
isInRollTrans=false
isInRoll=true
BGM.play('hope')
@@ -282,7 +283,7 @@ return{
end
if P.waiting<=0 and grade_points>0 and not isInRoll then
decayTimer=decayTimer+1
if decayTimer>=decayRate[int_grade+1] then
if decayTimer>=decayRate[math.min(int_grade+1,#decayRate)] then
decayTimer=0
grade_points=grade_points-1
end

View File

@@ -18,8 +18,6 @@ Spin detection:
- The Spin is a Mini if it only has 2 points; the piece is one of S, Z, J, L, T; AND the line clear did not clear the entire piece.
Attack system:
Normal line clears (1 to 3 lines):
Sends (lines cleared -0.5) attack
Special line clears:
Spin sends (lines cleared x2) attack,
- B2B sends extra 1/1/2/4/8 for Spin Single/Double/Triple/Techrash/Techrash+
@@ -28,18 +26,18 @@ Attack system:
Non-Spin Techrash/Techrash+ sends (lines cleared) attack,
- B2B sends 1 additional line
- B2B2B will have an attack boost of 50% and +1 extra blocking
Hemi Perfect Clear (a P.C. "with blocks left below". If it's an I clearing 1 line, the remaining blocks must not be player-placed):
- Attack +4, Extra Blocking +2
Perfect Clear (aka All Clear):
- Sends 8 to 16 (increments within a game by 2 for every PC) OR every other damage above, whichever is higher,
and +2 extra blocking.
Normal line clears (1 to 3 lines, no spin or pc/hpc):
Sends (lines cleared -0.5) attack
Special line clears will the increase B2B gauge, making later special line clears have either a B2B or B2B2B bonus (see below)
Combos: All damage above will be given a (combo x25%) bonus, or (combo x15%) for Single clear (capped at 12 combo),
Combos: All damage above (except attack from pc/hpc) will be given a (combo x25%) bonus, or (combo x15%) for Single clear (capped at 12 combo),
+1 more attack for 3 Combo or more.
Hemi Perfect Clear (a P.C. "with blocks left below". If it's an I clearing 1 line, the remaining blocks must not be player-placed):
Attack +4, Extra Blocking +2
Perfect Clear (aka All Clear):
Sends 8 to 16 (increments within a game by 2 for every PC) OR every other damage above, whichever is higher,
and +2 extra blocking.
Special line clears will the increase B2B gauge, making later special line clears have either a B2B or B2B2B bonus (see below)
After calculating all above, the damage value will be rounded down then sent

View File

@@ -15,8 +15,6 @@ spin判定:
--如果分数只有2,方块是SZJLT之一,并且没有把当前方块整个消除那么就是mini
攻击系统:
普通消除:
消<4行打出[消行数-0.5]攻击
特殊消除:
如果是spin,打出[2*消行数]攻击,
B2B攻击+[1/1/2/4/8(spin1~5)]
@@ -25,11 +23,15 @@ spin判定:
不是spin但是单次消>=4行,打出[消行数]攻击,
B2B攻击+1
B3B攻击+50%,+1额外抵挡
半全消("下方有剩余方块"的全消,如果是I消1行则必须不剩余玩家放置的方块):
伤害+4,额外抵挡+2
全消:
伤害为8~16(本局内递增2),和上述其他伤害取大,+2额外抵挡
普通消除(也就是消行数<4并且没有spin或者(半)全消):
打出[消行数-0.5]攻击
连击:每次连击给予上述除去hpc/pc加成的部分[连击数*25%(上限12连)(如果只消一行就是15%)]的加成,>=3次时再额外加1攻击
特殊消除会增加B2B点数,让之后的特殊消除获得B2B(B3B)增益(详细说明见下文)
连击:每次连击给予上述攻击[连击数*25%(上限12连)(如果只消一行就是15%)]的加成,>=3次时再额外加1攻击
半全消("下方有剩余方块"的全消,如果是I消1行则必须不剩余玩家放置的方块):伤害+4,额外抵挡+2
全消:全消伤害为8~16(本局内递增2),和上述其他伤害取大,然后+2额外抵挡
根据上述规则计算后,向下取整,攻击打出
计算完成后,向下取整,攻击打出
分数系统:
分数计算系统非常复杂,而且随时可能更改所以不写在这里,并且计算只跟消除方式等信息有关,和模式设定无关

View File

@@ -217,11 +217,11 @@ function Player:_deepDrop()
end
end
function Player:act_moveLeft(auto)
self.movDir=-1
if not self.control then return end
if not auto then
self.ctrlCount=self.ctrlCount+1
end
self.movDir=-1
if self.cur then
if self.cur and not self:ifoverlap(self.cur.bk,self.curX-1,self.curY)then
self:createMoveFX('left')
@@ -239,11 +239,11 @@ function Player:act_moveLeft(auto)
end
end
function Player:act_moveRight(auto)
self.movDir=1
if not self.control then return end
if not auto then
self.ctrlCount=self.ctrlCount+1
end
self.movDir=1
if self.cur then
if self.cur and not self:ifoverlap(self.cur.bk,self.curX+1,self.curY)then
self:createMoveFX('right')

View File

@@ -2,6 +2,12 @@ return[=[
未来计划:
R E M A K E
0.17.2:
新增:
改动:
修复:
倒计时时不能充das #610
master_g模式的一些细节问题
0.17.1: 苏醒 Wake Up
新增:
新模式:master_g(NOT_A_ROBOT移植)

View File

@@ -1,7 +1,7 @@
return{
["apkCode"]=429,
["code"]=1701,
["string"]="V0.17.1",
["room"]="ver A-4",
["name"]="苏醒 Wake Up",
["apkCode"]=430,
["code"]=1702,
["string"]="V0.17.2",
["room"]="ver A-5",
["name"]="",
}