Skip to content

Commit b65c826

Browse files
committed
Add click, time and clicker bonus multipliers
1 parent 68d7c47 commit b65c826

File tree

1 file changed

+74
-3
lines changed

1 file changed

+74
-3
lines changed

src/App.js

Lines changed: 74 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,18 @@ function App() {
1515
const [clicks, setClicks] = useState(0); //set initial clicks pressed to 0
1616
const [clickMultiplier, setClickMultiplier] = useState(1); //set initial click multiplier to 1
1717
const [clickersMultiplier, setClickersMultiplier] = useState(1); //set initial clickers multiplier to 1
18+
const [timeMultiplierBonus, setTimeMultiplierBonus] = useState(0); //set initial time multiplier bonus to 0
19+
const [clickMultiplierBonus, setClickMultiplierBonus] = useState(0); //set initial click multiplier bonus to 0
20+
const [clickerBonus, setClickerBonus] = useState(0); //set initial clicker bonus to 0
1821
const [clickers, setClickers] = useState(1); //set initial clickers to 1
1922
const [seconds, setSeconds] = useState(0); //set initial seconds played to 0
2023
const updateClickers = useCallback(() => {
2124
//update click multiplier for clickers
22-
setClickMultiplier((prevMultiplier) => clickers * clickersMultiplier); //set click multiplier
23-
}, [clickersMultiplier, clickers]);
25+
setClickMultiplier(
26+
(prevMultiplier) =>
27+
clickers * clickersMultiplier + (pointsPerSecond * clickerBonus) / 100,
28+
); //set click multiplier
29+
}, [clickers, clickersMultiplier, pointsPerSecond, clickerBonus]);
2430
const updateAutoClickers = useCallback(() => {
2531
//update points per second for autoclickers
2632
setPointsPerSecond(
@@ -43,14 +49,20 @@ function App() {
4349
autoClickersLevelBonus * 3 +
4450
autoClickersBonus * 4 +
4551
autoClickersBonusMultiplier * 5)) /
46-
100),
52+
100) *
53+
(1 + (timeMultiplierBonus * seconds) / 10000) *
54+
(1 + (clickMultiplierBonus * clicks) / 10000),
4755
); //set points per second
4856
}, [
4957
autoClickers,
5058
autoClickersBonus,
5159
autoClickersBonusMultiplier,
5260
autoClickersLevelBonus,
5361
autoClickersMultiplier,
62+
clickMultiplierBonus,
63+
clicks,
64+
seconds,
65+
timeMultiplierBonus,
5466
]);
5567
useEffect(() => {
5668
const interval = setInterval(() => {
@@ -174,6 +186,42 @@ function App() {
174186
updateAutoClickers(); //update auto clickers value
175187
}
176188
}
189+
function upgradeTimeMultiplierBonus() {
190+
//upgrade time multiplier bonus based on number of seconds passed
191+
if (
192+
checkPointsForUpgrade(points, 2.5e3 * Math.pow(10, timeMultiplierBonus))
193+
) {
194+
setPoints(
195+
(prevPoints) => prevPoints - 2.5e3 * Math.pow(10, timeMultiplierBonus),
196+
);
197+
setTimeMultiplierBonus(
198+
(prevTimeMultiplierBonus) => prevTimeMultiplierBonus + 1,
199+
); //increase time multiplier bonus by 1
200+
updateAutoClickers(); //update auto clickers value
201+
}
202+
}
203+
function upgradeClickMultiplierBonus() {
204+
//upgrade click multiplier bonus based on number of seconds passed
205+
if (
206+
checkPointsForUpgrade(points, 5e3 * Math.pow(10, clickMultiplierBonus))
207+
) {
208+
setPoints(
209+
(prevPoints) => prevPoints - 5e3 * Math.pow(10, clickMultiplierBonus),
210+
);
211+
setClickMultiplierBonus(
212+
(prevClickMultiplierBonus) => prevClickMultiplierBonus + 1,
213+
); //increase click multiplier bonus by 1
214+
updateAutoClickers(); //update auto clickers value
215+
}
216+
}
217+
function upgradeClickerBonus() {
218+
//upgrade clicker bonus based on points per second
219+
if (checkPointsForUpgrade(points, 1e3 * Math.pow(10, clickerBonus))) {
220+
setPoints((prevPoints) => prevPoints - 1e3 * Math.pow(10, clickerBonus));
221+
setClickerBonus((prevClickerBonus) => prevClickerBonus + 1); //increase clicker bonus by 1
222+
updateAutoClickers(); //update auto clickers value
223+
}
224+
}
177225
return (
178226
//dynamic app HTML output
179227
<div className="App">
@@ -220,6 +268,29 @@ function App() {
220268
Upgrade Clicker Multiplier
221269
</button>
222270
<CostDisplay cost={100 * Math.pow(2, clickersMultiplier - 1)} />
271+
Time Multiplier Bonus:{" "}
272+
<NumericDisplay value={timeMultiplierBonus} shortForm={false} />
273+
<br />
274+
{/*upgrade time multiplier bonus*/}
275+
<button onClick={() => upgradeTimeMultiplierBonus()}>
276+
Upgrade Time Multiplier Bonus
277+
</button>
278+
<CostDisplay cost={2.5e3 * Math.pow(10, timeMultiplierBonus)} />
279+
Click Multiplier Bonus:{" "}
280+
<NumericDisplay value={clickMultiplierBonus} shortForm={false} />
281+
<br />
282+
{/*upgrade click multiplier bonus*/}
283+
<button onClick={() => upgradeClickMultiplierBonus()}>
284+
Upgrade Click Multiplier Bonus
285+
</button>
286+
<CostDisplay cost={5e3 * Math.pow(10, clickMultiplierBonus)} />
287+
Clicker Bonus: <NumericDisplay value={clickerBonus} shortForm={false} />
288+
<br />
289+
{/*upgrade clicker bonus*/}
290+
<button onClick={() => upgradeClickerBonus()}>
291+
Upgrade Clicker Bonus
292+
</button>
293+
<CostDisplay cost={1e3 * Math.pow(10, clickerBonus)} />
223294
Autoclicker Level:{" "}
224295
<NumericDisplay value={autoClickers} shortForm={false} />
225296
<br />

0 commit comments

Comments
 (0)