下落调整
This commit is contained in:
+7
-10
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user