Session 10: Buy Max bulk-buy feature for buildings

This commit is contained in:
2026-08-22 16:04:56 +00:00
parent 2cee2c8b99
commit 478b9741a7
4 changed files with 127 additions and 2 deletions
+16
View File
@@ -69,6 +69,7 @@ const UI = {
<div class="building-cost">${Game.formatNumber(cost)} ✨</div>
<div class="building-count">${count}</div>
<button class="buy-btn" ${!canAfford || locked ? 'disabled' : ''}>Buy</button>
<button class="buy-max-btn" data-building="${id}" ${locked || count === 0 ? 'title="Buy as many as you can afford"' : 'disabled'}>${Game.formatNumber(Game.getMaxAffordable(id))}x Max</button>
</div>
`;
@@ -76,6 +77,12 @@ const UI = {
card.querySelector('.buy-btn').addEventListener('click', () => {
Game.buyBuilding(id);
});
const maxBtn = card.querySelector('.buy-max-btn');
if (maxBtn) {
maxBtn.addEventListener('click', () => {
Game.buyMaxBuilding(id);
});
}
}
container.appendChild(card);
@@ -103,6 +110,15 @@ const UI = {
btn.disabled = !canAfford || locked;
}
// Buy Max button - reflect how many can be bought at current stardust
const maxBtn = card.querySelector('.buy-max-btn');
if (maxBtn) {
const affordable = Game.getMaxAffordable(id);
maxBtn.textContent = `${Game.formatNumber(affordable)}x Max`;
maxBtn.disabled = locked || affordable === 0;
maxBtn.title = affordable > 0 ? `Buy up to ${affordable} ${building.name}(s)` : 'Not enough stardust';
}
card.classList.toggle('locked', locked);
}
},