下落调整

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;
}
if (shouldRefresh)
{
InvalidateRect(hWnd, nullptr, FALSE);
}
break;
}
if (currentMode == MODE_ROGUE && rogueStats.feverTicks > 0)
if (currentMode == MODE_ROGUE && !IsRogueSkillDemoMode() && rogueStats.feverTicks > 0)
{
rogueStats.feverTicks--;
currentFallInterval = GetRogueFallInterval();
@@ -839,6 +834,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
if (currentMode == MODE_ROGUE &&
!IsRogueSkillDemoMode() &&
rogueStats.timeDilationTicks > 0 &&
currentScreen == SCREEN_PLAYING &&
!suspendFlag &&
@@ -850,7 +846,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
shouldRefresh = true;
}
if (currentMode == MODE_ROGUE && rogueStats.extremeSlowTicks > 0)
if (currentMode == MODE_ROGUE && !IsRogueSkillDemoMode() && rogueStats.extremeSlowTicks > 0)
{
rogueStats.extremeSlowTicks--;
currentFallInterval = GetRogueFallInterval();
@@ -859,6 +855,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
if (currentMode == MODE_ROGUE &&
!IsRogueSkillDemoMode() &&
rogueStats.extremePlayerLevel > 0 &&
currentScreen == SCREEN_PLAYING &&
!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--;
currentFallInterval = GetRogueFallInterval();
@@ -896,7 +893,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
!suspendFlag &&
!gameOverFlag)
{
if (currentMode == MODE_ROGUE)
if (currentMode == MODE_ROGUE && !IsRogueSkillDemoMode())
{
int previousFallInterval = currentFallInterval;
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 playableHeight = GetRoguePlayableHeight();
+3 -1
View File
@@ -501,6 +501,7 @@ void Fixing()
rogueStats.screenBombCount--;
int clearedByTerminal = TriggerScreenBomb();
ApplyBoardGravity();
rogueStats.feverTicks = 10;
currentFallInterval = GetRogueFallInterval();
@@ -519,6 +520,7 @@ void Fixing()
{
DeleteOneLine(GetRoguePlayableHeight() - 1);
}
ApplyBoardGravity();
SetFeedbackMessage(
_T("最后一搏"),
@@ -743,7 +745,7 @@ int DeleteLines()
}
ApplyLineClearResult(clearedLines);
if (currentMode == MODE_CLASSIC && clearedLines > 0)
if (clearedLines > 0)
{
ApplyBoardGravity();
}
+8 -1
View File
@@ -272,7 +272,7 @@ static void ClearLockedRows()
*/
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;
}
@@ -303,6 +303,7 @@ void AdvanceRogueDifficulty(int elapsedMs)
{
rogueStats.lockedRows = nextLockedRows;
ClearLockedRows();
ApplyBoardGravity();
ComputeTarget();
}
@@ -2224,6 +2225,8 @@ void ApplyLineClearResult(int linesCleared)
if (clearedBySweeper > 0)
{
ApplyBoardGravity();
TCHAR sweeperDetail[128];
_stprintf_s(
sweeperDetail,
@@ -2322,6 +2325,10 @@ static void ResolvePendingUpgradeShockwave()
pendingEvolutionImpactShockwave = false;
int clearedRows = TriggerUpgradeShockwave(shockwaveRows);
if (clearedRows > 0)
{
ApplyBoardGravity();
}
int effectRows[4] = {};
int effectRowCount = clearedRows;
if (effectRowCount > 4)