From 7a0958ef9d4313342917a3154810e53438357336 Mon Sep 17 00:00:00 2001 From: misterkirill Date: Mon, 23 Jun 2025 17:44:53 +0500 Subject: [PATCH] feat: small improvements --- assets/css/global.css | 8 +++ assets/css/upgrades.css | 11 ++-- assets/img/upgrades/emojis3.png | Bin 0 -> 11027 bytes assets/img/upgrades/multiplier.png | Bin 0 -> 2493 bytes index.html | 17 ++--- js/game.js | 102 ++++++++++++++++++++--------- 6 files changed, 92 insertions(+), 46 deletions(-) create mode 100644 assets/img/upgrades/emojis3.png create mode 100644 assets/img/upgrades/multiplier.png diff --git a/assets/css/global.css b/assets/css/global.css index 6a2d874..04d9358 100644 --- a/assets/css/global.css +++ b/assets/css/global.css @@ -8,6 +8,7 @@ body { font-family: "Noto Sans", sans-serif; background-color: var(--color-dark); color: var(--color-light); + text-align: center; } a { @@ -42,6 +43,12 @@ a { text-shadow: 2px 2px 15px rgba(var(--color-light), 0.9); } +.small-text { + font-family: "Noto Sans", sans-serif; + font-weight: 400; + font-size: 0.25em; +} + .btn { display: flex; align-items: center; @@ -128,6 +135,7 @@ a { color: var(--color-dark); padding: 1rem; border-radius: 8px; + margin-bottom: 1rem; } .phone-only { diff --git a/assets/css/upgrades.css b/assets/css/upgrades.css index 7856ddf..733147c 100644 --- a/assets/css/upgrades.css +++ b/assets/css/upgrades.css @@ -30,7 +30,7 @@ opacity: 1; } 100% { - left: 90%; + left: 80%; opacity: 0; transform: rotate(360deg); } @@ -110,11 +110,10 @@ } } -.upg-credits-footer { - margin-top: 1rem; - text-align: center; -} - .upg-credits-play-again { margin-top: 2rem; } + +#upg-multiplier { + display: none; +} diff --git a/assets/img/upgrades/emojis3.png b/assets/img/upgrades/emojis3.png new file mode 100644 index 0000000000000000000000000000000000000000..dfea6f133de65c341a45c3ae84b215db673bb72c GIT binary patch literal 11027 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

n5E9>}wR-q+l$IFQGdE{{8WLvyEu=R1D)J4$O; zKWH?vO`TIrp3p%dTdbLxUiL_%9Xn5wS|AckmUU9lj#vY+7dlBM3&fM5DF#V}boL_S z(4j$M;k8!%R-@0Ri9AtgjXOZpmUn+ihbYQ!d0%sf#U-~-qQ$pOBD;fKI}{x1ZOCoN zty_Nf0$Z^V2_D!g4)k{q8S3bXJ3!Q3ix)ATC#*tt+1=;UH*b2Iw6J<@xOBy?A`#tU z)$mdi)Iz~h^p=$HuZM#;5O<_XW-9qRy zzlrt+Beh4>%b;C7$%+V~qHG+^ze;;DwX(XNpLxd}+iG|n6>}R`K2j@m#>ujuo^MPH zGMv#9cgW$E7qw}ZUOFHa9ACu=JwagWv-DryriMm+%_3%9G?I&L){G)5nQUIyMWd!- zjV;cmhadPVPmsC-5r~>PD>Wckj|>s=zaq4`19qoy_th&BIdI{y$RHLR{Y8=y*JAdZ zh=e07#>SdPL&n8H>}yv|iyT#U1tJIx=q!5T2{H;;6BJ;gd!VOxxzH9tsAh#oMD*}g z%GfdCn!h}@5EJEQASgMFOvHFJ7|^L6|A)mtoJbWcS0u+3hybLx!|2(GNXYV}YVaer z?fZKY3F@?vGZ>D*YCQ7bSEzW*;G+?4kS>7yXP-4?uqaMd^1Ko{G2$T*9ISFeenTX% z8VJOzpPms{9KaQbP7rs%y)pw{;@|&oh0+&=XNw5LDM>&Pz-qko$BPHKRI#`M(E%z3 zj0nn;F>nSZn?k!YqYJrv9m_vtbmDWh7RJ1K{6{?NsUM_E7da8C3Y>2=X?I`<224srln2R9-fo zoJs}zzi=A1+OIc$@gf6{DY~ehZ9LLV z`)gB=Trdihx4@0Uwyl~VJQc1$RA5zLt`@W{J$6^=viN*{DO$HXNGmiZW z+{|u&-=I+1jpU*oS0D<=ep}o5Z7Yd1_46@TE8`a|+B}0?)Z+>y1;~4tRg7pDOdO%~ zB^2^r9Q8C}6&|m!M59Z5+!!PU8T?=6n>9@E9Zpv?9vc`W|_^GY0)Ey)KPCvMKFYn(&$~C*!(UDM)judnI+e zm%zCd)R3i`IE^1wp4ay6YFV z)=n$1BVp6P literal 0 HcmV?d00001 diff --git a/assets/img/upgrades/multiplier.png b/assets/img/upgrades/multiplier.png new file mode 100644 index 0000000000000000000000000000000000000000..54226133dfecce1466f61a4e4510b135df37e847 GIT binary patch literal 2493 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 794d069..a8bdd07 100644 --- a/index.html +++ b/index.html @@ -26,7 +26,7 @@

-

Mood Clicker

+

Mood Clicker (alpha?)

Current Mood: 0 diff --git a/js/game.js b/js/game.js index 8a64f7a..6263512 100644 --- a/js/game.js +++ b/js/game.js @@ -1,6 +1,7 @@ let mood = 0; -let moodPerClick = 1; // FOR TESTING PURPOSES, SHOULD BE 1 IN PRODUCTION +let moodPerClick = 1; let purchasedUpgrades = []; +let multiplier = 1; const upgradesContainer = document.getElementById('upgrades'); const moodCounter = document.getElementById('mood-counter'); @@ -17,24 +18,26 @@ const musicRange = document.getElementById('music-range'); const audioMusic = new Audio('./assets/audio/mood_not_found.mp3'); const audioRain = new Audio('./assets/audio/rain.mp3'); +const upgMultiplier = document.getElementById('upg-multiplier'); + function updateMoodCounter() { - moodCounter.innerText = mood; + moodCounter.innerText = Math.floor(mood); updateUpgrades(); - if (mood < 100) { + if (mood < 50) { favicon.setAttribute('href', './assets/favicons/1.ico'); - } else if (mood < 1e3) { + } else if (mood < 500) { favicon.setAttribute('href', './assets/favicons/2.ico'); - } else if (mood < 1e5) { + } else if (mood < 1500) { favicon.setAttribute('href', './assets/favicons/3.ico'); - } else if (mood < 1e9) { + } else if (mood < 4000) { favicon.setAttribute('href', './assets/favicons/4.ico'); - } else if (mood < 1e16) { + } else if (mood < 80000) { favicon.setAttribute('href', './assets/favicons/5.ico'); - } else if (mood < 1e19) { + } else if (mood < 300000) { favicon.setAttribute('href', './assets/favicons/6.ico'); - } else if (mood < 1e22) { + } else if (mood < 2000000) { favicon.setAttribute('href', './assets/favicons/7.ico'); } } @@ -77,7 +80,7 @@ function updateUpgrades() { } function onLiftMoodClick() { - mood += moodPerClick; + mood += moodPerClick * multiplier; updateMoodCounter(); } @@ -113,6 +116,9 @@ function enableSaves() { const save = { mood, purchasedUpgrades, + multiplier: +multiplier, + musicVolume: audioMusic.volume, + rainVolume: audioRain.volume, }; localStorage.setItem('save', JSON.stringify(save)); @@ -133,6 +139,11 @@ function loadSave() { if (save) { const decodedSave = JSON.parse(save); mood = decodedSave.mood; + audioMusic.volume = decodedSave.musicVolume; + audioRain.volume = decodedSave.rainVolume; + + multiplier = decodedSave.multiplier; + upgMultiplier.innerText = 'Multiplier: x' + multiplier.toFixed(1); const needUpgrades = upgrades.filter((upgrade) => decodedSave.purchasedUpgrades.includes(upgrade.id)); needUpgrades.forEach((nUpgrade) => { @@ -165,23 +176,29 @@ function getRandomEmoji() { return emojis[Math.floor(Math.random() * emojis.length)]; } -function addEmoji() { +function addEmoji(count = 1) { const upgEmojis = document.getElementById('upg-emojis'); upgEmojis.style.display = 'block'; - - const emoji = document.createElement('span'); - emoji.innerText = getRandomEmoji(); - emoji.className = 'upg-emojis'; - setTimeout(() => { - upgEmojis.append(emoji); - }, Math.random() * 1000); + for (let i = 0; i < count; i++) { + setTimeout(() => { + const emoji = document.createElement('span'); + emoji.innerText = getRandomEmoji(); + emoji.className = 'upg-emojis'; + upgEmojis.append(emoji); - setInterval(() => { - mood += Math.floor(Math.random() * 1000); - emoji.innerText = getRandomEmoji(); - updateMoodCounter(); - }, 5000); + setInterval(() => { + mood += Math.floor(Math.random() * 1000) * multiplier; + emoji.innerText = getRandomEmoji(); + updateMoodCounter(); + + if (purchasedUpgrades.includes('multiplier')) { + multiplier += 0.1; + upgMultiplier.innerText = 'Multiplier: x' + multiplier.toFixed(1); + } + }, 5000); + }, Math.floor(Math.random() * 4000) + 1000); + } } // rain @@ -233,6 +250,7 @@ function showCuteface() { const cuteface = document.getElementById('upg-cuteface'); cuteface.style.visibility = 'visible'; document.body.style.backgroundColor = '#93560e'; + moodPerClick += 600; } // credits @@ -245,12 +263,20 @@ function showCredits() { // cursor function enableCursor() { + moodPerClick += 800; var allElements = document.querySelectorAll('body, .btn, .click-btn'); for (var i = 0; i < allElements.length; i++) { allElements[i].style.cursor = 'url("./assets/img/cursors/cursor.png"), auto'; } } +// multiplier + +function enableMultiplier() { + const upgMultiplier = document.getElementById('upg-multiplier'); + upgMultiplier.style.display = 'block'; +} + let upgrades = [ { @@ -291,7 +317,7 @@ let upgrades = [ description: 'Let the emojis flyyyyyyy-- and get some more mood', image: '../assets/img/upgrades/emojis2.png', cost: 1500, - onPurchase: addEmoji, + onPurchase: () => addEmoji(5), }, { id: 'calm_music', @@ -304,7 +330,7 @@ let upgrades = [ { id: 'cursor', name: 'Cursor', - description: 'Click Clack. +400 mood/click', + description: 'Click Clack. +800 mood/click', image: '../assets/img/upgrades/cursor.png', cost: 4000, onPurchase: enableCursor, @@ -314,7 +340,7 @@ let upgrades = [ name: 'Mixer', description: 'Control the sounds', image: '../assets/img/upgrades/mixer.png', - cost: 4500, + cost: 50000, onPurchase: enableMixer, }, { @@ -322,15 +348,31 @@ let upgrades = [ name: 'Cuteface', description: 'A little bit... unusual background... no?..', image: '../assets/img/upgrades/cuteface.png', - cost: 8000, + cost: 80000, onPurchase: showCuteface, }, + { + id: 'emojis3', + name: 'Even More Emoji Thrusters', + description: 'mayhem but more mood', + image: '../assets/img/upgrades/emojis3.png', + cost: 100000, + onPurchase: () => addEmoji(20), + }, + { + id: 'multiplier', + name: 'Mood Multiplier', + description: 'Even more mood with time', + image: '../assets/img/upgrades/multiplier.png', + cost: 300000, + onPurchase: enableMultiplier, + }, { id: 'credits', - name: 'Credits', - description: 'Congratulations!', + name: 'The End', + description: 'it\'s alpha', image: '../assets/img/upgrades/credits.png', - cost: 1, + cost: 15000000, onPurchase: showCredits, }, ];