添加新的skip暂存模式,可在自定义使用

This commit is contained in:
MrZ_26
2023-12-21 00:51:09 +08:00
parent 1501ebd92a
commit 5728194085
3 changed files with 38 additions and 2 deletions

View File

@@ -503,7 +503,14 @@ local function _drawNext(P,repMode)
gc_setColor(1,1,1,.626)
gc_draw(seqGenBanner[ENV.sequence],0,-11)
gc_setColor(.97,.97,.97)
if ENV.holdMode=='swap' then gc_rectangle('fill',1,72*ENV.holdCount+4,50,4) end
if ENV.holdMode=='swap' then
gc_rectangle('fill',100,72*ENV.holdCount+2,-50,4)
elseif ENV.holdMode=='skip' then
gc_setColor(.97,.97,.97,.26)
gc_rectangle('fill',100,72*P.holdTime+2,-50,4)
gc_setColor(.97,.97,.97)
gc_rectangle('fill',100,72*ENV.holdCount+2,-50,4)
end
gc_rectangle('line',0,0,100,h+8,5)
gc_push('transform')
gc_translate(50,40)

View File

@@ -1399,12 +1399,41 @@ function Player:hold_swap(ifpre)
self.stat.hold=self.stat.hold+1
end
function Player:hold_skip(ifpre)
local ENV=self.gameEnv
local C=self.cur
if C then
if self:willDieWith(self.nextQueue[1]) then
self.ghoY=self:getSpawnY(self.nextQueue[1])
self.cur=nil
self.waiting=ENV.hang
self.holdIXSFromNext={ifpre}
return
end
else
self.holdIXSFromNext=nil
end
self:_popNext(true)
self.freshTime=floor(min(self.freshTime+ENV.freshLimit*.25,ENV.freshLimit*((self.holdTime+1)/ENV.holdCount),ENV.freshLimit))
if not ENV.infHold then
self.holdTime=self.holdTime-1
end
if self.sound then
SFX.play(ifpre and 'prehold' or 'hold')
end
self.stat.hold=self.stat.hold+1
end
function Player:hold(ifpre,force)
if self.holdTime>0 and (self.cur or ifpre or force) then
if self.gameEnv.holdMode=='hold' then
self:hold_norm(ifpre)
elseif self.gameEnv.holdMode=='swap' then
self:hold_swap(ifpre)
elseif self.gameEnv.holdMode=='skip' then
self:hold_skip(ifpre)
end
return true
end

View File

@@ -83,7 +83,7 @@ local sList={
hang={0,1,2,3,4,5,6,7,8,9,10,15,20,30,60},
hurry={0,1,2,3,4,5,6,7,8,9,10,1e99},
eventSet=EVENTSETS,
holdMode={'hold','swap'},
holdMode={'hold','swap','skip'},
}
local modUsed