Skip to content

Commit d43eb4c

Browse files
committed
slot and tower game fixes (upgrades and not enough $)
1 parent d8180aa commit d43eb4c

2 files changed

Lines changed: 66 additions & 39 deletions

File tree

navigation/Minigames/slot.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,17 +247,20 @@ Author: Ian
247247
let spinning = false;
248248

249249
function spin() {
250-
if (spinning) return; // Prevent spin if already spinning
250+
if (spinning) return; // Prevent spin if already spinning
251251

252252
const cost = upgrades.genetherapy ? SPIN_COST + 5 : SPIN_COST;
253253

254254
if (bloodCells < cost) {
255-
alert("❌ Not enough blood cells.");
255+
alert('Not enough blood cells! You received 50 more blood cells to keep playing.');
256+
bloodCells += 50; // Add 50 blood cells
257+
updateBalanceDisplay(); // Update the balance display
258+
spinBtn.disabled = bloodCells < cost; // Ensure button state is updated
256259
return;
257260
}
258261

259262
spinning = true;
260-
spinBtn.disabled = true; // Disable button immediately
263+
spinBtn.disabled = true; // Disable button immediately
261264

262265
bloodCells -= cost;
263266
updateBalanceDisplay();
@@ -327,6 +330,10 @@ let spinning = false;
327330
triggerConfetti();
328331
} else {
329332
resultText.innerText = `No win. Try again!`;
333+
if (bloodCells === 0) {
334+
alert('Not enough blood cells! You received 50 more blood cells to keep playing.');
335+
bloodCells += 50; // Add 50 blood cells
336+
}
330337
}
331338

332339
updateBalanceDisplay();

navigation/Minigames/tower.md

Lines changed: 56 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Author: Zach & Ian
6868
</style>
6969

7070
<div id="towerTitle">Tower Defense Game</div>
71-
<div id="towerDesc">Spend money to place monkeys down and protect the balloons from making it to the end!</div>
71+
<div id="towerDesc">Spend money to place monkeys down and protect the balloons from making it to the end! Click on troops to upgrade them and make them stronger!</div>
7272
<div id="statusBar">
7373
<span id="moneyDisplay">Money: $1000</span>
7474
<span id="healthDisplay">Health: 20</span>
@@ -79,8 +79,9 @@ Author: Zach & Ian
7979
<canvas id="gameCanvas" width="900" height="500"></canvas>
8080

8181
<div id="upgradePanel">
82-
<div><button id="upgradeRange">Upgrade Range (+$100)</button></div>
83-
<div><button id="upgradeDamage">Upgrade Damage (+$100)</button></div>
82+
<div><button id="upgradeRange">Upgrade Range (-$100)</button></div>
83+
<div><button id="upgradeDamage">Upgrade Damage (-$100)</button></div>
84+
<div><button id="upgradeFireRate">Upgrade Fire Rate (-$100)</button></div>
8485
<div><button id="sellMonkey">Sell Monkey</button></div>
8586
</div>
8687
</div>
@@ -102,6 +103,7 @@ Author: Zach & Ian
102103
const upgradePanel = document.getElementById("upgradePanel");
103104
const upgradeRangeBtn = document.getElementById("upgradeRange");
104105
const upgradeDamageBtn = document.getElementById("upgradeDamage");
106+
const upgradeFireRateBtn = document.getElementById("upgradeFireRate");
105107
const sellMonkeyBtn = document.getElementById("sellMonkey");
106108
const startWaveBtn = document.getElementById("startWaveBtn");
107109

@@ -145,11 +147,12 @@ Author: Zach & Ian
145147
this.y = y;
146148
this.range = 100;
147149
this.damage = 1;
148-
this.price = price;
149150
this.fireRate = 60; // frames between shots
150151
this.fireCooldown = 0;
152+
this.price = price;
151153
this.selected = false;
152154
this.type = "base";
155+
this.levels = { range: 0, damage: 0, fireRate: 0 }; // Levels for upgrades
153156
}
154157
draw() {
155158
ctx.save();
@@ -522,51 +525,78 @@ Author: Zach & Ian
522525
balloons.push(new Balloon(type));
523526
}
524527

525-
// Upgrade selected monkey range or damage
528+
// Update the upgrade panel to show sell price and levels
529+
function showUpgradePanel(monkey) {
530+
selectedMonkey = monkey;
531+
const sellPrice = Math.floor(monkey.price / 2);
532+
sellMonkeyBtn.textContent = `Sell Monkey (+$${sellPrice})`;
533+
534+
// Update levels next to each upgrade button
535+
upgradeRangeBtn.innerHTML = `Upgrade Range (-$100) <span style="${monkey.levels.range === 10 ? 'font-weight:bold;' : ''}">[Lvl ${monkey.levels.range}]</span>`;
536+
upgradeDamageBtn.innerHTML = `Upgrade Damage (-$100) <span style="${monkey.levels.damage === 10 ? 'font-weight:bold;' : ''}">[Lvl ${monkey.levels.damage}]</span>`;
537+
upgradeFireRateBtn.innerHTML = `Upgrade Fire Rate (-$100) <span style="${monkey.levels.fireRate === 10 ? 'font-weight:bold;' : ''}">[Lvl ${monkey.levels.fireRate}]</span>`;
538+
539+
// Position upgrade panel near monkey
540+
const rect = canvas.getBoundingClientRect();
541+
const containerRect = document.getElementById("gameContainer").getBoundingClientRect();
542+
upgradePanel.style.left = (monkey.x + rect.left - containerRect.left + 20) + "px";
543+
upgradePanel.style.top = (monkey.y + rect.top - containerRect.top - 40) + "px";
544+
upgradePanel.style.display = "block";
545+
}
546+
547+
// Upgrade selected monkey's range, damage, or fire rate
526548
function upgradeSelectedMonkey(type) {
527549
if (!selectedMonkey) return;
528550

529-
if (money < 100) {
530-
alert("Not enough money to upgrade!");
531-
return;
532-
}
533-
if (type === "range") {
534-
selectedMonkey.range += 20;
551+
if (type === "range" && selectedMonkey.levels.range < 10 && money >= 100) {
552+
selectedMonkey.range *= 1.10; // Increase range by 10%
553+
selectedMonkey.levels.range++;
535554
money -= 100;
536-
} else if (type === "damage") {
537-
selectedMonkey.damage += 1;
555+
} else if (type === "damage" && selectedMonkey.levels.damage < 10 && money >= 100) {
556+
selectedMonkey.damage *= 1.10; // Increase damage by 10%
557+
selectedMonkey.levels.damage++;
558+
money -= 100;
559+
} else if (type === "fireRate" && selectedMonkey.levels.fireRate < 10 && money >= 100) {
560+
selectedMonkey.fireRate = Math.floor(selectedMonkey.fireRate * 0.9); // Increase fire rate by 10%
561+
selectedMonkey.levels.fireRate++;
538562
money -= 100;
539563
}
564+
565+
// Update levels in the upgrade panel
566+
showUpgradePanel(selectedMonkey);
540567
updateMoneyDisplay();
541568
}
542569

543570
// Sell selected monkey
544571
function sellSelectedMonkey() {
545572
if (!selectedMonkey) return;
546-
money += Math.floor(selectedMonkey.price / 2);
573+
const sellPrice = Math.floor(selectedMonkey.price / 2);
574+
money += sellPrice;
547575
monkeys = monkeys.filter(m => m !== selectedMonkey);
548576
selectedMonkey = null;
549577
hideUpgradePanel();
550578
updateMoneyDisplay();
551579
}
552580

553-
// Show upgrade panel near monkey
554-
function showUpgradePanel(monkey) {
555-
selectedMonkey = monkey;
556-
// Position upgrade panel near monkey but keep it inside canvas container
557-
const rect = canvas.getBoundingClientRect();
558-
const containerRect = document.getElementById("gameContainer").getBoundingClientRect();
559-
560-
upgradePanel.style.left = (monkey.x + rect.left - containerRect.left + 20) + "px";
561-
upgradePanel.style.top = (monkey.y + rect.top - containerRect.top - 40) + "px";
562-
upgradePanel.style.display = "block";
563-
}
564-
565581
function hideUpgradePanel() {
566582
upgradePanel.style.display = "none";
567583
selectedMonkey = null;
568584
}
569585

586+
// Button handlers for upgrades
587+
upgradeRangeBtn.onclick = () => {
588+
upgradeSelectedMonkey("range");
589+
};
590+
upgradeDamageBtn.onclick = () => {
591+
upgradeSelectedMonkey("damage");
592+
};
593+
upgradeFireRateBtn.onclick = () => {
594+
upgradeSelectedMonkey("fireRate");
595+
};
596+
sellMonkeyBtn.onclick = () => {
597+
sellSelectedMonkey();
598+
};
599+
570600
// Main update function
571601
function update() {
572602
if (gameOver) return;
@@ -652,16 +682,6 @@ Author: Zach & Ian
652682
hideUpgradePanel();
653683
};
654684

655-
upgradeRangeBtn.onclick = () => {
656-
upgradeSelectedMonkey("range");
657-
};
658-
upgradeDamageBtn.onclick = () => {
659-
upgradeSelectedMonkey("damage");
660-
};
661-
sellMonkeyBtn.onclick = () => {
662-
sellSelectedMonkey();
663-
};
664-
665685
// Canvas click handler for placing or selecting monkeys
666686
canvas.addEventListener("click", (e) => {
667687
if (gameOver) return;

0 commit comments

Comments
 (0)