下落调整

This commit is contained in:
2026-04-28 20:31:41 +08:00
parent 9341ac9a05
commit 971d8be0dc
3 changed files with 18 additions and 12 deletions
+7 -10
View File
@@ -823,14 +823,9 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{ {
shouldRefresh = true; shouldRefresh = true;
} }
if (shouldRefresh)
{
InvalidateRect(hWnd, nullptr, FALSE);
}
break;
} }
if (currentMode == MODE_ROGUE && rogueStats.feverTicks > 0) if (currentMode == MODE_ROGUE && !IsRogueSkillDemoMode() && rogueStats.feverTicks > 0)
{ {
rogueStats.feverTicks--; rogueStats.feverTicks--;
currentFallInterval = GetRogueFallInterval(); currentFallInterval = GetRogueFallInterval();
@@ -839,6 +834,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
} }
if (currentMode == MODE_ROGUE && if (currentMode == MODE_ROGUE &&
!IsRogueSkillDemoMode() &&
rogueStats.timeDilationTicks > 0 && rogueStats.timeDilationTicks > 0 &&
currentScreen == SCREEN_PLAYING && currentScreen == SCREEN_PLAYING &&
!suspendFlag && !suspendFlag &&
@@ -850,7 +846,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
shouldRefresh = true; shouldRefresh = true;
} }
if (currentMode == MODE_ROGUE && rogueStats.extremeSlowTicks > 0) if (currentMode == MODE_ROGUE && !IsRogueSkillDemoMode() && rogueStats.extremeSlowTicks > 0)
{ {
rogueStats.extremeSlowTicks--; rogueStats.extremeSlowTicks--;
currentFallInterval = GetRogueFallInterval(); currentFallInterval = GetRogueFallInterval();
@@ -859,6 +855,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
} }
if (currentMode == MODE_ROGUE && if (currentMode == MODE_ROGUE &&
!IsRogueSkillDemoMode() &&
rogueStats.extremePlayerLevel > 0 && rogueStats.extremePlayerLevel > 0 &&
currentScreen == SCREEN_PLAYING && currentScreen == SCREEN_PLAYING &&
!suspendFlag && !suspendFlag &&
@@ -884,7 +881,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
} }
} }
if (currentMode == MODE_ROGUE && rogueStats.holdSlowTicks > 0) if (currentMode == MODE_ROGUE && !IsRogueSkillDemoMode() && rogueStats.holdSlowTicks > 0)
{ {
rogueStats.holdSlowTicks--; rogueStats.holdSlowTicks--;
currentFallInterval = GetRogueFallInterval(); currentFallInterval = GetRogueFallInterval();
@@ -896,7 +893,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
!suspendFlag && !suspendFlag &&
!gameOverFlag) !gameOverFlag)
{ {
if (currentMode == MODE_ROGUE) if (currentMode == MODE_ROGUE && !IsRogueSkillDemoMode())
{ {
int previousFallInterval = currentFallInterval; int previousFallInterval = currentFallInterval;
AdvanceRogueDifficulty(currentFallInterval > 0 ? currentFallInterval : GAME_TIMER_INTERVAL); AdvanceRogueDifficulty(currentFallInterval > 0 ? currentFallInterval : GAME_TIMER_INTERVAL);
@@ -906,7 +903,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
} }
} }
if (currentMode == MODE_ROGUE && rogueStats.timeDilationLevel > 0 && rogueStats.timeDilationTicks <= 0) if (currentMode == MODE_ROGUE && !IsRogueSkillDemoMode() && rogueStats.timeDilationLevel > 0 && rogueStats.timeDilationTicks <= 0)
{ {
int occupiedHeight = 0; int occupiedHeight = 0;
int playableHeight = GetRoguePlayableHeight(); int playableHeight = GetRoguePlayableHeight();
+3 -1
View File
@@ -501,6 +501,7 @@ void Fixing()
rogueStats.screenBombCount--; rogueStats.screenBombCount--;
int clearedByTerminal = TriggerScreenBomb(); int clearedByTerminal = TriggerScreenBomb();
ApplyBoardGravity();
rogueStats.feverTicks = 10; rogueStats.feverTicks = 10;
currentFallInterval = GetRogueFallInterval(); currentFallInterval = GetRogueFallInterval();
@@ -519,6 +520,7 @@ void Fixing()
{ {
DeleteOneLine(GetRoguePlayableHeight() - 1); DeleteOneLine(GetRoguePlayableHeight() - 1);
} }
ApplyBoardGravity();
SetFeedbackMessage( SetFeedbackMessage(
_T("最后一搏"), _T("最后一搏"),
@@ -743,7 +745,7 @@ int DeleteLines()
} }
ApplyLineClearResult(clearedLines); ApplyLineClearResult(clearedLines);
if (currentMode == MODE_CLASSIC && clearedLines > 0) if (clearedLines > 0)
{ {
ApplyBoardGravity(); ApplyBoardGravity();
} }
+8 -1
View File
@@ -272,7 +272,7 @@ static void ClearLockedRows()
*/ */
void AdvanceRogueDifficulty(int elapsedMs) void AdvanceRogueDifficulty(int elapsedMs)
{ {
if (currentMode != MODE_ROGUE || currentScreen != SCREEN_PLAYING || suspendFlag || gameOverFlag || elapsedMs <= 0) if (currentMode != MODE_ROGUE || rogueDemoMode || currentScreen != SCREEN_PLAYING || suspendFlag || gameOverFlag || elapsedMs <= 0)
{ {
return; return;
} }
@@ -303,6 +303,7 @@ void AdvanceRogueDifficulty(int elapsedMs)
{ {
rogueStats.lockedRows = nextLockedRows; rogueStats.lockedRows = nextLockedRows;
ClearLockedRows(); ClearLockedRows();
ApplyBoardGravity();
ComputeTarget(); ComputeTarget();
} }
@@ -2224,6 +2225,8 @@ void ApplyLineClearResult(int linesCleared)
if (clearedBySweeper > 0) if (clearedBySweeper > 0)
{ {
ApplyBoardGravity();
TCHAR sweeperDetail[128]; TCHAR sweeperDetail[128];
_stprintf_s( _stprintf_s(
sweeperDetail, sweeperDetail,
@@ -2322,6 +2325,10 @@ static void ResolvePendingUpgradeShockwave()
pendingEvolutionImpactShockwave = false; pendingEvolutionImpactShockwave = false;
int clearedRows = TriggerUpgradeShockwave(shockwaveRows); int clearedRows = TriggerUpgradeShockwave(shockwaveRows);
if (clearedRows > 0)
{
ApplyBoardGravity();
}
int effectRows[4] = {}; int effectRows[4] = {};
int effectRowCount = clearedRows; int effectRowCount = clearedRows;
if (effectRowCount > 4) if (effectRowCount > 4)