Session 10: Buy Max bulk-buy feature for buildings
This commit is contained in:
@@ -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);
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user