Resolve change requests part 2

This commit is contained in:
SweetSea-ButImNotSweet
2024-01-08 13:37:00 +07:00
parent 536174220d
commit 888f2f6074
7 changed files with 68 additions and 64 deletions

View File

@@ -803,7 +803,7 @@ function selector:press(x)
end
end
if self.select~=s then
self.code(self.list[s])
self.code(self.list[s],s)
self.select=s
self.selText=self.list[s]
if self.sound then

View File

@@ -998,7 +998,7 @@ do-- function resetGameData(args)
coroutine.yield()
local counter=0
if GAME.modUsed then
if usingMod() then
SFX.play('collect',.2)
TEXT.show(GAME.modApplyAt,640,26,45,'spin')
for _=1,90 do coroutine.yield() end

View File

@@ -372,41 +372,41 @@ do-- Mod data
{no=0,id="NX",name="next",
key="q",x=80,y=230,color='lO',
list={0,1,2,3,4,5,6},
funcInit=function(P,O) P.gameEnv.nextCount=O end,
funcOnce=_lockVfunc('nextCount'),
funcInit =function(P,O) P.gameEnv.nextCount=O end,
funcOnce =_lockVfunc('nextCount'),
},
{no=1,id="HL",name="hold",
key="w",x=200,y=230,color='lO',
list={0,1,2,3,4,5,6},
funcInit=function(P,O) P.gameEnv.holdCount=O end,
funcOnce=_lockVfunc('holdCount'),
funcInit =function(P,O) P.gameEnv.holdCount=O end,
funcOnce =_lockVfunc('holdCount'),
},
{no=2,id="FL",name="hideNext",
key="e",x=320,y=230,color='lA',
list={1,2,3,4,5},
funcInit=function(P,O) P.gameEnv.nextStartPos=O+1 end,
funcOnce=_lockVfunc('nextStartPos'),
funcInit =function(P,O) P.gameEnv.nextStartPos=O+1 end,
funcOnce =_lockVfunc('nextStartPos'),
},
{no=3,id="IH",name="infHold",
key="r",x=440,y=230,color='lA',
funcInit=function(P) P.gameEnv.infHold=true end,
funcOnce=_lockVfunc('infHold'),
funcInit =function(P) P.gameEnv.infHold=true end,
funcOnce =_lockVfunc('infHold'),
},
{no=4,id="HB",name="hideBlock",
key="y",x=680,y=230,color='lV',
funcInit=function(P) P.gameEnv.block=false end,
funcOnce=_lockVfunc('block'),
funcInit =function(P) P.gameEnv.block=false end,
funcOnce =_lockVfunc('block'),
},
{no=5,id="HG",name="hideGhost",
key="u",x=800,y=230,color='lV',
funcInit=function(P) P.gameEnv.ghost=false end,
funcOnce=function(P) P.gameEnv.ghost=false; P.gameEnv.__lock('ghost') end,
funcInit =function(P) P.gameEnv.ghost=false end,
funcOnce =function(P) P.gameEnv.ghost=false; P.gameEnv.__lock('ghost') end,
},
{no=6,id="HD",name="hidden",
key="i",x=920,y=230,color='lP',
list={'easy','slow','medium','fast','none'},
funcInit=function(P,O) P.gameEnv.visible=O end,
funcRepe=function(P,O)
funcInit =function(P,O) P.gameEnv.visible=O end,
funcRepeat=function(P,O)
if P.showTime~=_invisibleTime[O] then
P:setInvisible(_invisibleTime[O])
end
@@ -415,20 +415,20 @@ do-- Mod data
{no=7,id="HB",name="hideBoard",
key="o",x=1040,y=230,color='lP',
list={'down','up','all'},
funcInit=function(P,O) P.gameEnv.hideBoard=O end,
funcInit =function(P,O) P.gameEnv.hideBoard=O end,
},
{no=8,id="FB",name="flipBoard",
key="p",x=1160,y=230,color='lJ',
list={'U-D','L-R','180'},
funcInit=function(P,O) P.gameEnv.flipBoard=O end,
funcOnce=_lockVfunc('flipBoard'),
funcInit =function(P,O) P.gameEnv.flipBoard=O end,
funcOnce =_lockVfunc('flipBoard'),
},
{no=9,id="DT",name="dropDelay",
key="a",x=140,y=350,color='lR',
list={0,.125,.25,.5,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
funcInit=function(P,O) P.gameEnv.drop=O end,
funcRepe=function(P,O)
funcInit =function(P,O) P.gameEnv.drop=O end,
funcRepeat=function(P,O)
if P.dropDelay~=O then
P.gameEnv.drop=O
P:set20G(O==0)
@@ -438,45 +438,45 @@ do-- Mod data
{no=10,id="LT",name="lockDelay",
key="s",x=260,y=350,color='lR',
list={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
funcInit=function(P,O) P.gameEnv.lock=O end,
funcRepe=function(P,O) P.dropDelay=O end,
funcInit =function(P,O) P.gameEnv.lock=O end,
funcRepeat=function(P,O) P.dropDelay=O end,
},
{no=11,id="ST",name="waitDelay",
key="d",x=380,y=350,color='lR',
list={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
funcInit=function(P,O) P.gameEnv.wait=O end,
funcOnce=_lockVfunc('waitDelay'),
funcInit =function(P,O) P.gameEnv.wait=O end,
funcOnce =_lockVfunc('waitDelay'),
},
{no=12,id="CT",name="fallDelay",
key="f",x=500,y=350,color='lR',
list={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
funcInit=function(P,O) P.gameEnv.fall=O end,
funcOnce=_lockVfunc('fallDelay'),
funcInit =function(P,O) P.gameEnv.fall=O end,
funcOnce =_lockVfunc('fallDelay'),
},
{no=13,id="LF",name="life",
key="j",x=860,y=350,color='lY',
list={0,1,2,3,5,10,15,26,42,87,500},
funcInit=function(P,O) P.gameEnv.life=O end,
funcOnce=_lockVfunc('life'),
funcInit =function(P,O) P.gameEnv.life=O end,
funcOnce =_lockVfunc('life'),
},
{no=14,id="FB",name="forceB2B",
key="k",x=980,y=350,color='lY',
funcInit=function(P) P.gameEnv.b2bKill=true end,
funcOnce=_lockVfunc('b2bKill'),
funcInit =function(P) P.gameEnv.b2bKill=true end,
funcOnce =_lockVfunc('b2bKill'),
},
{no=15,id="PF",name="forceFinesse",
key="l",x=1100,y=350,color='lY',
funcInit=function(P) P.gameEnv.fineKill=true end,
funcOnce=_lockVfunc('fineKill'),
funcInit =function(P) P.gameEnv.fineKill=true end,
funcOnce =_lockVfunc('fineKill'),
},
{no=16,id="TL",name="tele",
key="z",x=200,y=470,color='lH',
funcInit=function(P)
funcInit =function(P)
P.gameEnv.das,P.gameEnv.arr=0,0
P.gameEnv.sddas,P.gameEnv.sdarr=0,0
end,
funcOnce=function(P)
funcOnce =function(P)
for _,k in pairs{'das','arr','sddas','sdarr'} do
P.gameEnv[k]=0
P.gameEnv.__lock(k)
@@ -485,7 +485,7 @@ do-- Mod data
},
{no=17,id="FX",name="noRotation",
key="x",x=320,y=470,color='lH',
funcInit=function(P)
funcInit =function(P)
_disableKey(P,3)
_disableKey(P,4)
_disableKey(P,5)
@@ -493,7 +493,7 @@ do-- Mod data
},
{no=18,id="GL",name="noMove",
key="c",x=440,y=470,color='lH',
funcInit=function(P)
funcInit =function(P)
_disableKey(P,1) _disableKey(P,2)
_disableKey(P,11)_disableKey(P,12)
_disableKey(P,17)_disableKey(P,18)
@@ -503,20 +503,20 @@ do-- Mod data
{no=19,id="CS",name="customSeq",
key="b",x=680,y=470,color='lB',
list={'bag','bagES','his','hisPool','c2','bagP1inf','rnd','mess','reverb'},
funcInit=function(P,O) P.gameEnv.sequence=O end,
funcOnce=_lockVfunc('sequence'),
funcInit =function(P,O) P.gameEnv.sequence=O end,
funcOnce =_lockVfunc('sequence'),
},
{no=20,id="PS",name="pushSpeed",
key="n",x=800,y=470,color='lB',
list={.5,1,2,3,5,15,1e99},
funcInit=function(P,O) P.gameEnv.pushSpeed=O end,
funcOnce=_lockVfunc('pushSpeed'),
funcInit =function(P,O) P.gameEnv.pushSpeed=O end,
funcOnce =_lockVfunc('pushSpeed'),
},
{no=21,id="BN",name="boneBlock",
key="m",x=920,y=470,color='lB',
list={'on','off'},
funcInit=function(P,O) P.gameEnv.bone=O end,
funcRepe=function(P,O)
funcInit =function(P,O) P.gameEnv.bone=O end,
funcRepeat=function(P,O)
P.gameEnv.bone=O
if O=='on' then
for _,bk in pairs(P.nextQueue) do bk.color=17 end
@@ -551,6 +551,7 @@ do-- Game data tables
seed=1046101471, -- Game seed
curMode=false, -- Current gamemode object
initPlayerCount=0, -- Player count when init game
modUsed=false,
mod=TABLE.new(0,#MODOPT),-- List of loaded mods
modApplyAt='postInit', -- Apply mod when? (preInit, postInit, always)
modeEnv=false, -- Current gamemode environment

View File

@@ -1,6 +1,6 @@
Cách chơi:
Hệ thống sẽ cấp cho người chơi 7 loại tetromino (gạch 4 ô) bao gồm: Z, S, J, L, I, O, T;
và người chơi cần điều khiển chúng (di chuyển sang trái và phải; xoay 90 / 180 / 270 độ).
và người chơi cần điều khiển chúng (di chuyển sang trái và phải; xoay 90 / 180 / 270 độ).
Cứ mỗi hàng được lấp đầy trong bảng bởi các viên gạch, chúng sẽ bị xóa ra khỏi bảng.
Nếu có đối thủ, đối thủ sẽ bị tấn công mạnh hoặc nhẹ tùy theo số hàng bạn gửi.
Chơi hết hoặc đạt mục tiêu của cấp độ để thắng.
@@ -25,19 +25,19 @@ Cách phát hiện spin: bằng cách sử dụng hệ thống điểm.
Hệ thống tấn công:
Kiểu xóa nâng cao (Special clear):
Kiểu xóa nâng cao chỉ trường hợp bạn thực hiện Spin, Techrash, Techrash+ — xóa 5 hàng hoặc hơn, PC, HPC.
Kiểu xóa nâng cao có thể sạc đầy thanh B2B.
Kiểu xóa đặc biệt (Special clear):
Kiểu xóa đặc biệt chỉ trường hợp bạn thực hiện Spin, Techrash, Techrash+ — xóa 5 hàng hoặc hơn, PC, HPC.
Kiểu xóa đặc biệt có thể sạc đầy thanh B2B.
Kiểu xóa Siêu cấp (Super clear):
Là Kiểu xóa nâng cao nhưng được thực hiện với B2B hoặc B3B
Là Kiểu xóa đặc biệt nhưng được thực hiện với B2B hoặc B3B
Kiểu xóa nâng cao (spin): Gửi gấp đôi số hàng vừa xóa.
Kiểu xóa đặc biệt (spin): Gửi gấp đôi số hàng vừa xóa.
— B2B gửi thêm 1/1/2/4/8 cho Spin Đơn/Spin Đôi/Spin Tam/Techrash/Techrash+
— B2B2B gửi thêm (số hàng xóa × 0.5) trên B2B và +1 hàng để đánh chặn
— Mini sẽ bị cắt chỉ còn ¼ so với giá trị ban đầu
Kiểu xóa nâng cao (Techrash/Techrash+ nhưng không spin):
Kiểu xóa đặc biệt (Techrash/Techrash+ nhưng không spin):
— B2B gửi thêm 1 hàng
— B3B boost 50% tấn công và +1 hàng để đánh chặn
@@ -64,7 +64,7 @@ Thanh Back to Back (B2B):
Một người chơi đang ở trang thái B3B khi thanh có hơn 800 điểm.
Nếu có hàng được xóa:
Kiểu xóa nâng cao:
Kiểu xóa đặc biệt:
— Spin Đơn/Đôi/Tam/Techrash/Techrash+ lần lượt cộng thêm 50/100/180/800/1000 (×50% nếu là Mini)
— Techrash +150 điểm, nếu xóa hơn 4 hàng cùng lúc, mỗi hàng từ hàng thứ 5 trở đi cộng thêm 50 điểm.
— PC từ thứ 4 trở đi có giá trị 800 điểm
@@ -82,12 +82,13 @@ Hệ thống tính điểm:
Việc tính điểm cũng độc lập tùy vào từng chế độ.
Khoảng thời gian chờ trước khi tấn công:
Một đòn sát thương sẽ không có hiệu lực ngay lập tức để người chơi có chút thời gian phản ứng trước khi tràn vào bảng.
Thời gian chờ của các đòn tấn công như sau, sắp xếp từ nhanh nhất tới lâu nhất:
Khoảng thời gian chờ trước khi gây sát thương:
Một đòn sát thương sẽ không có hiệu lực ngay lập tức
để người chơi có chút thời gian phản ứng trước khi chúng có hiệu lực (rác tràn vào bảng).
Thời gian chờ của các đòn tấn công như sau, xếp từ ngắn nhất tới dài nhất:
— Double và Triple (Đôi và Tam) là nhanh nhất
— Theo sau là Techrash, Techrash+, spin; Mini, B2B và B3B có thêm thêm chút thời gian chờ nữa.
— Sát thương từ combo có thời gian chờ lâu nhất..
— Sát thương từ combo có thời gian chờ lâu nhất.
Phản công:

View File

@@ -205,7 +205,7 @@ local function _executeMod(P)
if applyStatus=='always' then
if M.funcOnce then
M.funcOnce(P,M.list and M.list[GAME.mod[i]])
elseif M.funcRepe then
elseif M.funcRepeat then
table.insert(GAME.modCodeList[P.id],function() M.funcInit(P,M.list and M.list[GAME.mod[i]]) end)
else
M.funcInit(P,M.list and M.list[GAME.mod[i]])

View File

@@ -379,11 +379,11 @@ local commands={} do
}
commands.viewlog={
code=goScene('viewLog'),
description="View crashes' log",
description="View crash logs",
details={
"Open crashes' log to view right at the spot",
"Open the crash logs menu",
"",
"Usage: viewLog"
"Usage: viewlog"
}
}
commands.scrinfo={
@@ -487,7 +487,9 @@ local commands={} do
commands.setbg={
code=function(name)
if name~="" then
if name~=BG.cur then
if SETTING.lockBG then
log{"Background ",C.R,"locked",C.Z,"! Please unlock background first."}
elseif name~=BG.cur then
if BG.set(name) then
log(("Background set to '%s'"):format(name))
else
@@ -511,7 +513,7 @@ local commands={} do
code=function(name)
if name~="" then
if SETTING.noTheme then
log{"Theme is ",C.R,"disabled",C.Z,"! Please re-enable it before trying this command again"}
log{"Theme is ",C.R,"disabled",C.Z,"! Please re-enable theme first."}
else
if THEME.set(name) then
log("Theme set to: "..name)

View File

@@ -108,9 +108,9 @@ function scene.draw()
GC.rotate(t)
local rad,side=45,5
if GAME.modApplyAt=='always' then
if M.funcRepe then side=nil
elseif M.funcOnce then side=8
else side=5 end
if M.funcRepeat then side=nil
elseif M.funcOnce then side=8
else side=5 end
end
local color=M.color
GC.setColor(color[1],color[2],color[3],5*t)