Skip to content

Commit 1ef7401

Browse files
committed
Add seconds and clicks multiplier
1 parent b05d912 commit 1ef7401

File tree

1 file changed

+53
-3
lines changed

1 file changed

+53
-3
lines changed

src/App.js

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ function App() {
2626
const [clickMultiplierBonus, setClickMultiplierBonus] = useState(0); //set initial click multiplier bonus to 0
2727
const [clickerBonus, setClickerBonus] = useState(0); //set initial clicker bonus to 0
2828
const [clickers, setClickers] = useState(1); //set initial clickers to 1
29+
const [clicksMultiplier, setClicksMultiplier] = useState(1); //set clicks multiplier to 1
2930
const [seconds, setSeconds] = useState(0); //set initial seconds played to 0
31+
const [secondsMultiplier, setSecondsMultiplier] = useState(1); //set clicks multiplier to 1
3032
const updateClickers = useCallback(() => {
3133
//update click multiplier for clickers
3234
setClickMultiplier(
@@ -83,14 +85,14 @@ function App() {
8385
const interval = setInterval(() => {
8486
//increase points every second
8587
setPoints((prevPoints) => prevPoints + pointsPerSecond); //increase points by points per second
86-
setSeconds((prevSeconds) => prevSeconds + 1); //add 1 second
88+
setSeconds((prevSeconds) => prevSeconds + secondsMultiplier); //add seconds by seconds multiplier
8789
updateClickers(); //update clickers value
8890
updateAutoClickers(); //update auto clickers value
8991
}, 1000);
9092
return () => {
9193
clearInterval(interval); //clear interval when component unmounts
9294
};
93-
}, [pointsPerSecond, updateAutoClickers, updateClickers]);
95+
}, [pointsPerSecond, secondsMultiplier, updateAutoClickers, updateClickers]);
9496

9597
function checkPointsForUpgrade(points, pointsRequired) {
9698
//check if user has enough points to upgrade
@@ -106,7 +108,7 @@ function App() {
106108
function addPointsFromClick() {
107109
//add points from clicking a button
108110
setPoints((prevPoints) => prevPoints + clickMultiplier); //increase points by 1 when button clicked
109-
setClicks((prevClicks) => prevClicks + 1); //increase clicks made by 1
111+
setClicks((prevClicks) => prevClicks + clicksMultiplier); //increase clicks made by clicks multiplier
110112
updateClickers(); //update clickers value
111113
updateAutoClickers(); //update auto clickers value
112114
}
@@ -340,6 +342,30 @@ function App() {
340342
setMaxLevel((prevMaxLevel) => prevMaxLevel + 1); //increase max level by 1
341343
}
342344
}
345+
function upgradeSecondsMultiplier() {
346+
//upgrade seconds multiplier
347+
if (
348+
checkPointsForUpgrade(points, 1e5 * Math.pow(10, secondsMultiplier - 1))
349+
) {
350+
setPoints(
351+
(prevPoints) => prevPoints - 1e5 * Math.pow(10, secondsMultiplier - 1),
352+
);
353+
setSecondsMultiplier(
354+
(prevSecondsMultiplier) => prevSecondsMultiplier + 1,
355+
); //increase seconds multiplier by 1
356+
}
357+
}
358+
function upgradeClicksMultiplier() {
359+
//upgrade clicks multiplier
360+
if (
361+
checkPointsForUpgrade(points, 1e6 * Math.pow(10, clicksMultiplier - 1))
362+
) {
363+
setPoints(
364+
(prevPoints) => prevPoints - 1e6 * Math.pow(10, clicksMultiplier - 1),
365+
);
366+
setClicksMultiplier((prevClicksMultiplier) => prevClicksMultiplier + 1); //increase clicks multiplier by 1
367+
}
368+
}
343369
return (
344370
//dynamic app HTML output
345371
<div className="App">
@@ -409,6 +435,30 @@ function App() {
409435
<CostDisplay cost={1e3 * Math.pow(10, clickerBonus)} />
410436
</td>
411437
</tr>
438+
<tr>
439+
<td>
440+
Seconds Multiplier:{' '}
441+
<NumericDisplay value={secondsMultiplier} shortForm={false} />
442+
<br />
443+
{/*upgrade clicker bonus*/}
444+
<button onClick={() => upgradeSecondsMultiplier()}>
445+
Upgrade Seconds Multiplier
446+
</button>
447+
<CostDisplay cost={1e5 * Math.pow(10, secondsMultiplier - 1)} />
448+
</td>
449+
</tr>
450+
<tr>
451+
<td>
452+
Clicks Multiplier:{' '}
453+
<NumericDisplay value={clicksMultiplier} shortForm={false} />
454+
<br />
455+
{/*upgrade clicker bonus*/}
456+
<button onClick={() => upgradeClicksMultiplier()}>
457+
Upgrade Clicks Multiplier
458+
</button>
459+
<CostDisplay cost={1e6 * Math.pow(10, clicksMultiplier - 1)} />
460+
</td>
461+
</tr>
412462
<table>
413463
<thead>
414464
<tr>

0 commit comments

Comments
 (0)