完成第一批6个Rogue强化与随机强化池接入

This commit is contained in:
2026-04-24 19:07:15 +08:00
parent 9664a2e623
commit bbaa89e21d
4 changed files with 293 additions and 71 deletions
+93 -40
View File
@@ -578,9 +578,21 @@ void TDrawScreen(HDC hdc, HWND hWnd)
_stprintf_s(fallText, _T("\u4e0b\u843d\u95f4\u9694 %dms"), currentFallInterval);
TextOut(hdc, panelRect.left + SS(24), panelRect.top + SS(356), fallText, lstrlen(fallText));
TCHAR comboText[64];
_stprintf_s(comboText, _T("\u8fde\u51fb\u94fe %d \u5956\u52b1\u5c42\u6570 %d"), rogueStats.comboChain, rogueStats.comboBonusStacks);
TextOut(hdc, panelRect.left + SS(24), panelRect.top + SS(392), comboText, lstrlen(comboText));
TCHAR summaryText[64];
_stprintf_s(
summaryText,
_T("\u9884\u89c8 %d \u4fdd\u547d %d"),
rogueStats.previewCount,
rogueStats.lastChanceCount);
TextOut(hdc, panelRect.left + SS(24), panelRect.top + SS(428), summaryText, lstrlen(summaryText));
SelectObject(hdc, smallFont);
SetTextColor(hdc, RGB(128, 104, 118));
TextOut(hdc, panelRect.left + SS(24), panelRect.top + SS(392), _T("\u5f53\u524d\u5df2\u9009\u5f3a\u5316\u6570\u91cf\u4ec5\u7528\u4e8e\u6d4b\u8bd5\u7248"), lstrlen(_T("\u5f53\u524d\u5df2\u9009\u5f3a\u5316\u6570\u91cf\u4ec5\u7528\u4e8e\u6d4b\u8bd5\u7248")));
TextOut(hdc, panelRect.left + SS(24), panelRect.top + SS(464), _T("\u53f3\u4fa7 HUD \u5df2\u5f00\u59cb\u663e\u793a Rogue \u5f53\u524d\u6210\u957f\u72b6\u6001"), lstrlen(_T("\u53f3\u4fa7 HUD \u5df2\u5f00\u59cb\u663e\u793a Rogue \u5f53\u524d\u6210\u957f\u72b6\u6001")));
SelectObject(hdc, sectionFont);
SetTextColor(hdc, textColor);
}
@@ -596,47 +608,66 @@ void TDrawScreen(HDC hdc, HWND hWnd)
TextOut(hdc, panelRect.left + SS(24), panelRect.top + SS(430), _T("\u4e0b\u4e00\u4e2a\u65b9\u5757"), lstrlen(_T("\u4e0b\u4e00\u4e2a\u65b9\u5757")));
RECT nextCard =
int previewCount = 1;
if (currentMode == MODE_ROGUE)
{
panelRect.left + SS(24),
panelRect.top + SS(472),
panelRect.left + SS(24) + grid * 4 + SS(32),
panelRect.top + SS(472) + grid * 4 + SS(32)
};
HBRUSH nextCardBrush = CreateSolidBrush(RGB(255, 238, 244));
HPEN nextCardPen = CreatePen(PS_SOLID, 1, RGB(233, 191, 208));
oldPen = (HPEN)SelectObject(hdc, nextCardPen);
oldBrush = (HBRUSH)SelectObject(hdc, nextCardBrush);
RoundRect(hdc, nextCard.left, nextCard.top, nextCard.right, nextCard.bottom, SS(22), SS(22));
SelectObject(hdc, oldBrush);
SelectObject(hdc, oldPen);
DeleteObject(nextCardBrush);
DeleteObject(nextCardPen);
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
previewCount = rogueStats.previewCount;
if (previewCount < 1)
{
if (bricks[nType][0][i][j] != 0)
{
RECT brickRect =
{
nextCard.left + SS(16) + j * grid,
nextCard.top + SS(16) + i * grid,
nextCard.left + SS(16) + (j + 1) * grid - SS(2),
nextCard.top + SS(16) + (i + 1) * grid - SS(2)
};
previewCount = 1;
}
if (previewCount > 3)
{
previewCount = 3;
}
}
HBRUSH brickBrush = CreateSolidBrush(BrickColor[nType]);
HPEN brickPen = CreatePen(PS_SOLID, 1, RGB(255, 248, 250));
oldPen = (HPEN)SelectObject(hdc, brickPen);
oldBrush = (HBRUSH)SelectObject(hdc, brickBrush);
RoundRect(hdc, brickRect.left, brickRect.top, brickRect.right, brickRect.bottom, SS(10), SS(10));
SelectObject(hdc, oldBrush);
SelectObject(hdc, oldPen);
DeleteObject(brickBrush);
DeleteObject(brickPen);
for (int previewIndex = 0; previewIndex < previewCount; previewIndex++)
{
RECT nextCard =
{
panelRect.left + SS(24) + previewIndex * SS(94),
panelRect.top + SS(472),
panelRect.left + SS(24) + previewIndex * SS(94) + grid * 2 + SS(40),
panelRect.top + SS(472) + grid * 2 + SS(40)
};
HBRUSH nextCardBrush = CreateSolidBrush(RGB(255, 238, 244));
HPEN nextCardPen = CreatePen(PS_SOLID, 1, RGB(233, 191, 208));
oldPen = (HPEN)SelectObject(hdc, nextCardPen);
oldBrush = (HBRUSH)SelectObject(hdc, nextCardBrush);
RoundRect(hdc, nextCard.left, nextCard.top, nextCard.right, nextCard.bottom, SS(22), SS(22));
SelectObject(hdc, oldBrush);
SelectObject(hdc, oldPen);
DeleteObject(nextCardBrush);
DeleteObject(nextCardPen);
int previewType = nextTypes[previewIndex];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (bricks[previewType][0][i][j] != 0)
{
RECT brickRect =
{
nextCard.left + SS(14) + j * (grid / 2),
nextCard.top + SS(14) + i * (grid / 2),
nextCard.left + SS(14) + (j + 1) * (grid / 2) - SS(1),
nextCard.top + SS(14) + (i + 1) * (grid / 2) - SS(1)
};
HBRUSH brickBrush = CreateSolidBrush(BrickColor[previewType]);
HPEN brickPen = CreatePen(PS_SOLID, 1, RGB(255, 248, 250));
oldPen = (HPEN)SelectObject(hdc, brickPen);
oldBrush = (HBRUSH)SelectObject(hdc, brickBrush);
RoundRect(hdc, brickRect.left, brickRect.top, brickRect.right, brickRect.bottom, SS(8), SS(8));
SelectObject(hdc, oldBrush);
SelectObject(hdc, oldPen);
DeleteObject(brickBrush);
DeleteObject(brickPen);
}
}
}
}
@@ -811,6 +842,17 @@ void TDrawScreen(HDC hdc, HWND hWnd)
};
DrawText(hdc, upgradeUiState.options[i].category, -1, &categoryRect, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
TCHAR levelText[32];
_stprintf_s(levelText, _T("Lv.%d"), upgradeUiState.options[i].currentLevel + 1);
RECT levelRect =
{
cardRect.right - SS(88),
cardRect.top + SS(24),
cardRect.right - SS(20),
cardRect.top + SS(54)
};
DrawText(hdc, levelText, -1, &levelRect, DT_RIGHT | DT_VCENTER | DT_SINGLELINE);
SelectObject(hdc, sectionFont);
SetTextColor(hdc, isSelected ? titleColor : textColor);
RECT nameRect =
@@ -829,9 +871,20 @@ void TDrawScreen(HDC hdc, HWND hWnd)
cardRect.left + SS(20),
cardRect.top + SS(182),
cardRect.right - SS(20),
cardRect.bottom - SS(30)
cardRect.bottom - SS(64)
};
DrawText(hdc, upgradeUiState.options[i].description, -1, &descRect, DT_LEFT | DT_WORDBREAK);
SelectObject(hdc, smallFont);
RECT footerRect =
{
cardRect.left + SS(20),
cardRect.bottom - SS(52),
cardRect.right - SS(20),
cardRect.bottom - SS(22)
};
SetTextColor(hdc, RGB(128, 104, 118));
DrawText(hdc, _T("\u5360\u4f4d\u56fe\u6807 / \u5360\u4f4d\u7a00\u6709\u5ea6"), -1, &footerRect, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
}
SelectObject(hdc, smallFont);