补全Rogue侧边HUD与局内结算反馈提示
This commit is contained in:
@@ -15,6 +15,7 @@ MenuState menuState = { 0, 2 };
|
||||
PlayerStats classicStats = { 0, 1, 0, 0, 0 };
|
||||
PlayerStats rogueStats = { 0, 1, 0, 30, 0, 100, 100, 0 };
|
||||
UpgradeUiState upgradeUiState = { 0, 0, 0, 0, {} };
|
||||
FeedbackState feedbackState = { 0, _T(""), _T("") };
|
||||
int currentScreen = SCREEN_MENU;
|
||||
int currentMode = MODE_CLASSIC;
|
||||
int currentFallInterval = 500;
|
||||
@@ -246,6 +247,13 @@ static bool IsUpgradeSelectable(const UpgradeEntry& entry)
|
||||
return GetUpgradeCurrentLevel(entry.id) < entry.maxLevel;
|
||||
}
|
||||
|
||||
static void SetFeedbackMessage(const TCHAR* title, const TCHAR* detail, int ticks)
|
||||
{
|
||||
feedbackState.visibleTicks = ticks;
|
||||
lstrcpyn(feedbackState.title, title, sizeof(feedbackState.title) / sizeof(TCHAR));
|
||||
lstrcpyn(feedbackState.detail, detail, sizeof(feedbackState.detail) / sizeof(TCHAR));
|
||||
}
|
||||
|
||||
static void ResetNextQueue()
|
||||
{
|
||||
for (int i = 0; i < 3; i++)
|
||||
@@ -410,9 +418,23 @@ static void ApplyLineClearResult(int linesCleared)
|
||||
rogueStats.totalLinesCleared += linesCleared;
|
||||
rogueStats.score += scoreGain;
|
||||
rogueStats.exp += expGain;
|
||||
upgradeUiState.pendingCount += ApplyLevelProgress(rogueStats);
|
||||
int levelUps = ApplyLevelProgress(rogueStats);
|
||||
upgradeUiState.pendingCount += levelUps;
|
||||
tScore = rogueStats.score;
|
||||
|
||||
TCHAR feedbackTitle[64];
|
||||
TCHAR feedbackDetail[128];
|
||||
_stprintf_s(feedbackTitle, _T("+%d Score +%d EXP"), scoreGain, expGain);
|
||||
if (levelUps > 0)
|
||||
{
|
||||
_stprintf_s(feedbackDetail, _T("Level Up x%d \u5f53\u524d Lv.%d"), levelUps, rogueStats.level);
|
||||
}
|
||||
else
|
||||
{
|
||||
_stprintf_s(feedbackDetail, _T("\u6d88\u884c %d \u8fde\u51fb %d"), linesCleared, rogueStats.comboChain);
|
||||
}
|
||||
SetFeedbackMessage(feedbackTitle, feedbackDetail, 10);
|
||||
|
||||
if (upgradeUiState.pendingCount > 0)
|
||||
{
|
||||
OpenUpgradeMenu();
|
||||
@@ -677,6 +699,11 @@ void Fixing()
|
||||
{
|
||||
DeleteOneLine(nGameHeight - 1);
|
||||
}
|
||||
|
||||
SetFeedbackMessage(
|
||||
_T("\u6700\u540e\u4e00\u640f\u89e6\u53d1"),
|
||||
_T("\u81ea\u52a8\u6e05\u9664\u5e95\u90e8 3 \u884c\uff0c\u672c\u5c40\u7ee7\u7eed\u3002"),
|
||||
14);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -810,6 +837,9 @@ void Restart()
|
||||
upgradeUiState.optionCount = 0;
|
||||
upgradeUiState.pendingCount = 0;
|
||||
upgradeUiState.totalChosenCount = 0;
|
||||
feedbackState.visibleTicks = 0;
|
||||
feedbackState.title[0] = _T('\0');
|
||||
feedbackState.detail[0] = _T('\0');
|
||||
tScore = 0;
|
||||
|
||||
ResetNextQueue();
|
||||
@@ -869,8 +899,14 @@ void ConfirmUpgradeSelection()
|
||||
return;
|
||||
}
|
||||
|
||||
ApplyUpgradeById(upgradeUiState.options[upgradeUiState.selectedIndex].id);
|
||||
UpgradeOption selectedOption = upgradeUiState.options[upgradeUiState.selectedIndex];
|
||||
ApplyUpgradeById(selectedOption.id);
|
||||
upgradeUiState.totalChosenCount++;
|
||||
TCHAR feedbackTitle[64];
|
||||
TCHAR feedbackDetail[128];
|
||||
_stprintf_s(feedbackTitle, _T("\u5df2\u83b7\u5f97\uff1a%s"), selectedOption.name);
|
||||
_stprintf_s(feedbackDetail, _T("%s"), selectedOption.description);
|
||||
SetFeedbackMessage(feedbackTitle, feedbackDetail, 12);
|
||||
|
||||
if (upgradeUiState.pendingCount > 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user