Tag: Idle

  • Progress Bar Idle Simulator v1.6

    LIsta zmian

    Rozszerzenie obliczeń prędkości i mnożnika o logarytm

    Dodane:

    getEffectiveUpgradeLimit(key) w script.js funkcja wyliczająca efektywny limit poziomu ulepszenia na podstawie liczby prestiżu: Math.floor(baseLimit (1 + Math.log10(1 + prestigeCount))), z minimum 1.
    speed korzysta z MAX_UPGRADE_LEVEL,
    multiplier korzysta z MAX_MULTIPLIER_LEVEL,

    Zmienione:

    Limity poziomów prędkości i mnożnika rosną teraz logarytmicznie wraz z liczbą prestiży, zamiast być stałymi.
    clampUpgradeLevels() ogranicza poziomy speed i multiplier przez getEffectiveUpgradeLimit().
    purchaseUpgrade() blokuje zakup ulepszenia po osiągnięciu efektywnego limitu.
    updateShopButtons() wyświetla status „max level” na podstawie efektywnego limitu.

    Poprawka naliczania postępu po powrocie do gry

    Zmienione:

    catchUpAfterResume() w script.js zachowuje teraz częściowy postęp paska: zamiast odrzucać resztę, dodaje effSpeed (delta / tickInterval) do istniejącego progress.
    Ukończone paski są naliczane w pętli według standardowej logiki ticka, z zabezpieczeniem MAX_CATCHUP_BARS (po przekroczeniu limitu progress jest zerowane).
    Każdy ukończony pasek zwiększa barsCompleted i przyznaje punkty z tymi samymi mnożnikami co aktywna gra.

    Dlaczego?

    Wcześniej reszta postępu poniżej pełnego paska była tracona po powrocie do gry, a paski naliczano zbiorczo zamiast pojedynczo.

    Poprawka prędkości paska po odświeżeniu i odświeżania ulepszenia prędkości

    Zmienione:

    loadGameState() w script.js ogranicza wczytywane poziomy speed i multiplier przez getEffectiveUpgradeLimit() zamiast starych stałych (MAX_UPGRADE_LEVEL / MAX_MULTIPLIER_LEVEL). Dzięki temu po odświeżeniu strony poziomy ulepszeń nie są błędnie przycinane do stałego limitu, a przycisk ulepszenia prędkości odświeża się poprawnie.

    Poprawiono favicon

    Zmienione:

    Dostosowano favicon strony, aby był czytelniejszy i lepiej widoczny,

  • Progress Bar Idle Simulator v1.5

    Lista zmian

    Doprecyzowanie opisów i poprawki stylu

    Zmienione:

    Opis ulepszenia płynności doprecyzowany w języku polskim i angielskim: skraca czas animacji przejścia paska o 100 ms.
    Nieaktywne przyciski korzystają teraz z kolorów motywu zamiast niebieskoszarego koloru na sztywno.
    Adres arkusza stylów otrzymał parametr wersji (`style.css?v=20260925-1`), aby przeglądarki pobierały zaktualizowany CSS po wdrożeniu nowej wersji strony.
  • Progress Bar Idle Simulator v1.4

    Lista zmian

    Cienki panel nawigacji i menu w nagłówku

    Dodane:

    Cienki dolny panel nawigacji, pigułka, która powoduje automatyczne przewijanie do poszczególnych paneli Postęp, Sklep, Osiągnięcia, Prestiż. Każdy przycisk ma ikonę, etykietę i data-nav-target wskazujący sekcję; aktywna sekcja oznaczana jest przez aria-current="true".
    Menu nagłówka – jeden przycisk #menu-toggle (☰ Menu) z aria-expanded i aria-controls, rozwijający panel #header-menu z dotychczasowymi akcjami: motyw, język, bonusy, przełącznik offline, zapis, wczytanie, reset, ustawienia.
    Nowe klucze tłumaczeń: menuBtn, navProgress, navShop, navAchievements, navPrestige, ariaNav.

    Zmienione:

    Nagłówek na wąskich ekranach nie łamie się już w kolumnę – tytuł i akcje pozostają w jednym rzędzie (flex-direction: row), tytuł wyrównany do lewej.
    Toast przeniesiony wyżej (bottom: 88px), aby nie nachodził na tackę nawigacji; body otrzymuje padding-bottom: 72px.
    Sekcje `main .panel` dostały `scroll-margin-top` (`–anchor-offset`), żeby nagłówki nie chowały się pod przyklejonym headerem.
    Na ekranach ≤ 560 px tacka rozciąga się na całą szerokość, a etykiety tekstowe są ukrywane (zostają same ikony).
    Animacja rozwijania menu (menu-pop) jest wyłączana przy włączonym ograniczeniu animacji (html.reduce-motion).

    Favicon

    Dodane:

    ikonę dla strony w karcie, tzw. favicon

    Rozbudowana personalizacja

    Dodane:

    Modal ustawień (#settings-section) z przyciskiem ⚙️ Ustawienia w nagłówku, zamykany przyciskiem, kliknięciem w tło oraz klawiszem Escape.
    Wybór motywu – siatka #theme-grid z czterema motywami: ciemny (domyślny), jasny, sepia (ciepły) i midnight (głęboki granat). Motywy zdefiniowane jako zmienne CSS w [data-theme="..."].
    Przełącznik „Ogranicz animacje” (#reduce-motion-toggle) – niezależny od preferencji systemowych; klasa html.reduce-motion wyłącza animacje i przejścia, w tym animację paska postępu.
    Nowe zmienne CSS --bg-elev-3 i --header-bg, dzięki którym tło nagłówka i paneli reaguje na motyw (usunięto wcześniejszy wyjątek [data-theme="light"] .app-header).

    Zmienione:

    trapFocusInModal obsługuje teraz także modal ustawień (pułapka fokusa działa dla trzech okien: podsumowanie offline, ustawienia, bonusy).
    Escape zamyka kolejno: bonusy, podsumowanie offline i ustawienia.
    Stan ograniczenia animacji jest wczytywany przy starcie (`loadReduceMotion()`).

    Postęp offline

    Dodane:

    System postępu offline – gra nalicza zyski za czas nieobecności, z limitem zależnym od poziomu ulepszenia.
    9 poziomów limitu (OFFLINE_LEVELS): od 15 min (poziom 1) do 24 h (poziom 8), z kosztami od 100 do 72 900 punktów; poziom 4 wymaga wykonania pierwszego prestiżu.
    Wydajność offline: 50 % (OFFLINE_EFFICIENCY), minimalny naliczany czas: 60 s.
    Naliczanie uwzględnia prędkość bazową, ulepszenia prędkości, mnożnik punktów, prestiż i efekty osiągnięć.
    Nowe osiągnięcie „Pierwsza przerwa” (firstBreak, ☕) – 100 punktów; odblokowuje postęp offline.
    Modal „Witaj z powrotem!” (#offline-summary) z podsumowaniem: czas nieobecności, czas objęty limitem, czas ponad limit, wydajność, produkcja (pasków/h × punkty za pasek), przyznana nagroda, poziom limitu i następny poziom.
    Ulepszenie „Postęp offline” w sklepie (#offline-upgrade) z opisem stanu: zablokowane / dostępne / brak punktów / wymaga prestiżu / maksimum.
    Przełącznik offline w nagłówku (#offline-toggle) – włącza i wyłącza naliczanie postępu offline.
    Nowe klucze tłumaczeń (PL i EN) dla całego systemu offline oraz toasty toastOfflineGain i toastOfflineLevelBought.

    Zmienione:

    SAVE_VERSION podniesione z 2 → 3; dodana migracja migrateSaveV2toV3 (stare zapisy: funkcja zablokowana, poziom 0, włączona, bez rozliczenia).
    Zapis i odczyt stanu offline (offlineUnlocked, offlineLevel, offlineEnabled, offlineLastClaimTs); reset gry czyści te wartości i zamyka modal podsumowania.
    trapFocusInModal i obsługa Escape obejmują modal podsumowania offline.
    Prestiż ustawia offlineLastClaimTs, aby czas nieobecności liczyć od momentu resetu.
    updateUI() wywołuje updateOfflineToggleUI().

    Skrócony zapis liczb i bezpieczniejsze zapisy

    Dodane:

    Kompaktowy format liczb – formatTruncated używa sufiksów K, M, B, T, Qa, Qi, Sx, Sp, Oc, No, Dc (powyżej zakresu – notacja wykładnicza), z obcinaniem (nie zaokrąglaniem) części dziesiętnej.
    Autozapis z ograniczeniem częstotliwości – requestAutoSave() (min. 2 s między zapisami) oraz flushPendingSave() wywoływany przy beforeunload, pagehide i ukryciu karty (visibilitychange).
    Migracja zapisu v1 → v2 (migrateSave) – rozdzielenie liczników prestigeCount, totalEarned, runEarned, barsCompleted; totalEarned szacowany zachowawczo na podstawie progu zdobytych osiągnięć, aby nie cofnąć postępu.
    Funkcje walidacji safeNum / safeInt – wszystkie wartości wczytywane z zapisu są sprawdzane i ograniczane do dozwolonego zakresu.
    Kopia zapasowa uszkodzonego zapisu – przy błędzie wczytywania dane trafiają do IdleGameProgressBackup zamiast być usuwane.
    Zabezpieczenie pętli gry – TICK_BAR_GUARD (10 000) chroni przed zapętleniem przy skokach czasu; niefinitywne wartości prędkości i postępu są korygowane.

    Zmienione:

    Zapis obejmuje teraz saveVersion, prestigeCount, totalEarned, runEarned, barsCompleted.
    Warunek „stan czysty” przy autozapisie uwzględnia więcej liczników (m.in. totalEarned, barsCompleted, odblokowane style).
    Wczytywanie filtruje nieznane identyfikatory osiągnięć, waliduje indeksy stylów wyglądu i znaczniki czasu osiągnięć.
    Koszty ulepszeń i wartości prestiżu wyświetlane przez formatTruncated; przyciski pokazują „maks. poziom” po osiągnięciu limitu.
    prestigeCount zwiększany przy każdym prestiżu; runEarned zerowany przy prestiżu.

    Poprawki interfejsu

    Zmienione:

    Korekty w skryptach dotyczące aktualizacji interfejsu i obsługi stanu gry
    Drobne poprawki w kodzie gry

    Kompaktowe formatowanie liczb

    Dodane:

    Funkcje pomocnicze truncTo(value, decimals) i formatTruncated(value, decimals, { fixed }) – obcinają część dziesiętną zamiast zaokrąglać, a od wartości 1000 rezygnują z części ułamkowej.

    Zmienione:

    Formatowanie objęło wyświetlanie punktów, prędkości, mnożnika i mnożnika prestiżu – liczby w dłuższej fazie gry nie rozjeżdżają już interfejsu.
    Wygląd liczb we wczesnej fazie gry pozostał bez zmian.
  • Progress Bar Idle Simulator v1.3

    Lista zmian

    Ulepszono wydajność, Poprawiono responsywność na urządzeniach mobilnych, Dodano więcej funkcji wizualnych.

  • Progress Bar Idle Simulator v1.2

    Lista zmian

    modal „Bonusy” z animacjami i a11y,
    tajemnicza premia ❓ z losowymi efektami i osobnym zegarem gotowości,
    pełnoekranowy ruch bonusów sterowany rAF + odbicia + particles z pozycji kliknięcia,
    Dodano: zapisywanie/odtwarzanie aktywnych premii, harmonogram spawnu zależny od nextMysteryReadyAt,
    Dodano: cross‑fade paska przy zmianie płynności,
    Ulepszono: wczytywanie stanu, migracje, odporność na błędne dane,
    Ulepszono: spójność i synchronizację poziomu appearance,
    Naprawiono: duplikaty/literówki w CSS animacji burst,
    Potencjalna regresja: brak dynamicznych title przycisków sklepu,
  • Najnowszy changelog:

    Progress Bar Idle Simulator 1.1

    UI/UX

    Kompletny redesign interfejsu (nagłówek z paskiem narzędzi, panele, statystyki, gridy, stopka),
    Motyw jasny/ciemny z przełącznikiem i zapisem preferencji,
    Toasty zamiast alertów, podwójne kliknięcia do potwierdzania resetu/prestiżu, etykiety i podpowiedzi w przyciskach,
    Widoczne statystyki (Prędkość, Mnożnik, Płynność, Postęp) i wskaźnik ostatniego zapisu,

    Pętla gry i wydajność

    Przejście z setInterval na requestAnimationFrame z delta time (clamp do 200 ms),
    Cache ostatnio wyrenderowanych wartości, ograniczenie reflow, will-change, płynniejsze animacje,
    Precyzyjniejsze obliczenia postępu i punktów z uwzględnieniem wszystkich mnożników w czasie rzeczywistym,

    Ekonomia / Sklep

    Nowy system ulepszeń (UPGRADE_SYSTEM_VERSION=2): poziomy, piecewise growth z softcapami, dynamiczne koszty,
    Softcapy m.in. dla prędkości i płynności (płynność ma twardy max level wyliczony z base/min/step),
    Zniżka kosztów z prestiżu (do 50%), tytuły z informacją o poziomach i premiach,
    Spójna funkcja purchaseUpgrade; blokowanie przycisków przy braku środków lub osiągnięciu limitów,

    Systemy meta

    Osiągnięcia (definicje, warunki, nagrody procentowe: prędkość/punkty), render w siatce, powiadomienia,
    Prestiż: formuła ⌊√(punkty/100)⌋, stały mnożnik punktów +10%/pkt, zniżki w sklepie; miękki reset z zachowaniem wyglądów,
    Tymczasowe premie (bonusy-klikalne): +50% prędkości 15s lub x2 punkty 15s, losowe pojawianie się, animacje/cząsteczki,

    Wygląd paska

    System stylów (lista gradientów, flagi premium, koszty odblokowania), siatka wyboru, trwałe odblokowania.
    Efekty „premium” (pasy, blik), label 0–100% na pasku, ARIA role/value,
    Cross-fade overlay przy zmianie płynności (transitionDuration) dla uniknięcia szarpnięć,
    Zmiana domyślnej płynności z 0.5s → 1.0s; min 0.1s,

    Mnożniki i kalkulacje punktów

    Efekty łączone: bazowy mnożnik (x2^poziom), prestiż, osiągnięcia (procentowe), tymczasowe bonusy (klikane),
    Mnożnik prezentowany w statystykach jako efektywny (zaokrąglony),

    Zapisy i migracja

    Migracja z cookies → localStorage (pełny stan: statystyki, levele, wyglądy, osiągnięcia, prestiż, motyw),
    Autozapis co 30s, przycisk Zapisz/Wczytaj; label czasu ostatniego zapisu,
    Heurystyki migracji: gdy brak nowych danych – estymacja leveli z istniejących statów; zsynchronizowanie „appearance” z faktycznie odblokowanymi stylami,

    Dostępność i responsywność

    ARIA dla paska postępu i toasta, aria-live w punktach, focus-visible opisy w tytułach,
    Responsywny layout (gridy, lepsza typografia, motyw jasny z kontrastami),

    Naprawy i porządki

    Usunięto duplikaty inicjalizacji (loadGameState, auto-save) obecne w wersji bazowej,
    Rezygnacja z losowego Proxy dla kolorów na rzecz deterministycznych stylów z predefinicją i selektorem,
    Stabilniejsze parsowanie danych, clampy wartości, bezpieczne fallbacki, lepsza obsługa błędów,

    Uwagi dot. kompatybilności

    Stary zapis w cookies nie jest już używany – nowy system korzysta z localStorage. Pierwsze uruchomienie bez wcześniejszego zapisu w nowym formacie rozpocznie nową grę (z próbą estymacji poziomów na bazie statów, jeśli dane istnieją).

  • Rozpoczęcie działalności

    Dnia 12 sierpnia udostępniłem swoją grę, która uczy cierpliwości, ale także zapewnia sporo satysfakcji z rosnących liczb i wielu ulepszeń.

    Gra jest w pełni darmowa, w którą można się zanurzyć z poziomu przeglądarki bez pobierania dodatkowego oprogramowania.