收尾强化TODO并补齐狂热缓流赌命四消与极限玩家
This commit is contained in:
+72
-5
@@ -158,11 +158,19 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
if (currentMode == MODE_ROGUE && rogueStats.feverTicks > 0)
|
||||
{
|
||||
rogueStats.feverTicks--;
|
||||
currentFallInterval = 500 + rogueStats.slowFallStacks * 80;
|
||||
if (rogueStats.feverTicks > 0)
|
||||
{
|
||||
currentFallInterval += 120;
|
||||
}
|
||||
currentFallInterval = GetRogueFallInterval();
|
||||
ResetGameTimer(hWnd);
|
||||
shouldRefresh = true;
|
||||
}
|
||||
|
||||
if (currentMode == MODE_ROGUE &&
|
||||
rogueStats.timeDilationTicks > 0 &&
|
||||
currentScreen == SCREEN_PLAYING &&
|
||||
!suspendFlag &&
|
||||
!gameOverFlag)
|
||||
{
|
||||
rogueStats.timeDilationTicks--;
|
||||
currentFallInterval = GetRogueFallInterval();
|
||||
ResetGameTimer(hWnd);
|
||||
shouldRefresh = true;
|
||||
}
|
||||
@@ -175,6 +183,32 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
shouldRefresh = true;
|
||||
}
|
||||
|
||||
if (currentMode == MODE_ROGUE &&
|
||||
rogueStats.extremePlayerLevel > 0 &&
|
||||
currentScreen == SCREEN_PLAYING &&
|
||||
!suspendFlag &&
|
||||
!gameOverFlag)
|
||||
{
|
||||
if (rogueStats.extremeDangerTicks > 0)
|
||||
{
|
||||
rogueStats.extremeDangerTicks--;
|
||||
}
|
||||
else
|
||||
{
|
||||
rogueStats.extremeDangerTicks = 30;
|
||||
if (rogueStats.extremeDangerLevel < 5)
|
||||
{
|
||||
rogueStats.extremeDangerLevel++;
|
||||
}
|
||||
currentFallInterval = GetRogueFallInterval();
|
||||
ResetGameTimer(hWnd);
|
||||
feedbackState.visibleTicks = 10;
|
||||
lstrcpyn(feedbackState.title, _T("\u6781\u9650\u5371\u9669\u5347\u7ea7"), sizeof(feedbackState.title) / sizeof(TCHAR));
|
||||
lstrcpyn(feedbackState.detail, _T("30 \u79d2\u5185\u672a\u5b8c\u6210\u56db\u6d88\uff0c\u5371\u9669\u7b49\u7ea7\u63d0\u5347\uff0c\u4e0b\u843d\u901f\u5ea6\u8fdb\u4e00\u6b65\u52a0\u5feb\u3002"), sizeof(feedbackState.detail) / sizeof(TCHAR));
|
||||
shouldRefresh = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (currentMode == MODE_ROGUE && rogueStats.holdSlowTicks > 0)
|
||||
{
|
||||
rogueStats.holdSlowTicks--;
|
||||
@@ -187,6 +221,39 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
!suspendFlag &&
|
||||
!gameOverFlag)
|
||||
{
|
||||
if (currentMode == MODE_ROGUE && rogueStats.timeDilationLevel > 0 && rogueStats.timeDilationTicks <= 0)
|
||||
{
|
||||
int occupiedHeight = 0;
|
||||
for (int y = 0; y < nGameHeight; y++)
|
||||
{
|
||||
bool hasCell = false;
|
||||
for (int x = 0; x < nGameWidth; x++)
|
||||
{
|
||||
if (workRegion[y][x] != 0)
|
||||
{
|
||||
hasCell = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (hasCell)
|
||||
{
|
||||
occupiedHeight = nGameHeight - y;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (occupiedHeight > 15)
|
||||
{
|
||||
rogueStats.timeDilationTicks = 8;
|
||||
currentFallInterval = GetRogueFallInterval();
|
||||
ResetGameTimer(hWnd);
|
||||
feedbackState.visibleTicks = 10;
|
||||
lstrcpyn(feedbackState.title, _T("\u65f6\u95f4\u7f13\u6d41"), sizeof(feedbackState.title) / sizeof(TCHAR));
|
||||
lstrcpyn(feedbackState.detail, _T("\u68cb\u76d8\u9ad8\u5ea6\u8d85\u8fc7 15 \u884c\uff0c\u63a5\u4e0b\u6765 8 \u79d2\u4e0b\u843d\u51cf\u901f 30%\u3002"), sizeof(feedbackState.detail) / sizeof(TCHAR));
|
||||
shouldRefresh = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (CanMoveDown())
|
||||
{
|
||||
MoveDown();
|
||||
|
||||
Reference in New Issue
Block a user