Repository navigation
v0.21.53
In English
PlanBudowlany RogueLike now speaks English (GBA and Godot). Every enemy, boss, boon, event, text-message story,
tutorial bubble, How to Play page, phone tab, recap and tip has a natural English version – the Unmissable Deadline,
the Broken Concrete Mixer, Red Tape, the Builders' Merchant, Respect and Training are waiting. Pick the language on the
first boot of the GBA game (Polski / English; later: profile phone > Team > SELECT) or in the Godot settings (wrench >
Język / Language; default follows your system language). This release also adds screen filters – Noir, Retro LCD,
Night Neon and Acid to unlock – and colour-blind modes (Protanopia, Deuteranopia, Tritanopia, High Contrast) available
from the start, with patterns and letters so colour is never the only cue.
Najważniejsze
Filtry ekranu – cztery do odblokowania postępem i cztery tryby dla daltonistów dostępne od pierwszego uruchomienia –
oraz cała gra po angielsku (GBA i Godot, wspólne dane i rdzeń):
- Filtry zabawowe (#53) – Noir (czerń i biel, kontrast, ziarno, winieta; czerwień zagrożeń zostaje przygaszona,
nie szara), Retro LCD (4 odcienie zieleni, dithering i kratka pikseli), Neon nocy (róż i błękit, przesunięcie
kanałów, linie, poświata, drgnięcia taśmy), Kwas (tęcza w czasie, fale, rozlana barwa – z ostrzeżeniem o ruchu). - Tryby dla daltonistów (#54) – Protanopia, Deuteranopia, Tritanopia (daltonizacja: to, czego oko nie rozróżni,
przenoszone na widoczne kanały – nie sama symulacja) i Wysoki kontrast; zawsze dostępne, nigdy za postępem.
Przy tych trybach (i w Noir / Retro LCD) kolor nie jest jedyną wskazówką: pola ciosu i wybuchu w paski, litery
rzadkości premii Z / R / L. - Zablokowany filtr widać jako „???” z podpowiedzią, po odblokowaniu – baner „Nowy filtr ekranu!”.
- Język angielski (#40) – cała gra po polsku albo po angielsku (GBA i Godot, wspólne dane): wrogowie i bossowie,
premie, wydarzenia, wątki SMS, samouczek, Jak grać, telefon, podsumowanie, rady, tytuły, sekrety, filtry. Tłumaczenie
pisane, nie dosłowne (Nieprzekraczalny Termin → The Unmissable Deadline, Papierologia → Red Tape, Hurtownia →
Builders' Merchant); imiona (Anna, Marek, Zenek, Ewa, Kowal, Lis) bez zmian. Wybór języka: GBA – przy pierwszym
uruchomieniu (Polski / English), potem telefon profilu > Zespół > SELECT (od razu); Godot – Ustawienia (klucz) >
Język / Language, domyślnie z języka systemu (polski – Polski, inny – English).
Nowe
-
Odblokowanie (sekcja
screenFilterswgame.json, dowolny z warunków):Filtr Warunek Noir poziom inspektora 5 Retro LCD kolekcja Stan surowy (komplet problemów aktu I) Neon nocy wygrana Kamienica albo sekret Szybka ekipa Kwas poziom inspektora 20 albo sekret Mokra robota Protanopia, Deuteranopia, Tritanopia, Wysoki kontrast zawsze Warunki z danych (
unlock:inspector,collection,career,secret,wins), teksty interfejsu wscreenFilters.ui
(pod tłumaczenie). -
GBA: wybór zawodu > SELECT – strona Wygląd zawsze dostępna (podpowiedź „SELECT: wygląd”), wiersz Ekran (A – kolejny
odblokowany filtr, opis, „???” z podpowiedzią zablokowanego). Efekt własny palet Butano: każdy kolor tła i sprite'ów
po ściemnianiu przechodzi przezinclude/screen_filter.h(pamięć podręczna 1024 kolorów), Kwas – wbudowany obrót barwy
co 4 klatki. Jak grać str. 19 „Filtry ekranu”. Scenariusz 76 (każde uruchomienie z zapisem – kolejny filtr; plac
z polami wybuchu, elitami i stanami). -
Godot: shader
shaders/screen_filter.gdshader(jeden przebieg na teksturze ekranu, kilka próbek na piksel; klasyczny =
bez kopii ekranu). Ustawienia (klucz) > Filtr ekranu: lista z „???”, pastylka Dostępność, siła efektu (-/+),
filtr na telefonie (wył. – sam plac, HUD i plansze) i ograniczony ruch (bez fal, drgnięć i animowanego ziarna).
Wiersz filtra także w Wyglądzie na wyborze zawodu (Tab). Jak grać str. 12. Ustawienia wsettings.cfg. -
Baner „Nowy filtr ekranu!” na końcu budowy (Godot także na tytule po aktualizacji – filtry odblokowane wcześniej).
GBA – co inaczej niż w Godocie
Paleta nie wie, gdzie jest piksel, więc na GBA nie ma ziarna, winiety, ditheringu, kratki, linii, przesunięcia kanałów ani
fal – filtry to samo przekształcenie kolorów (Retro LCD: 4 odcienie bez ditheringu, Kwas: sam obrót barwy, bez opcji
ograniczonego ruchu – ostrzeżenie w opisie). Daltonizacja i Wysoki kontrast działają jak w Godocie (ta sama macierz).
Pola ciosu i wybuchu na GBA zawsze mają wzór (czerwona ramka z ukośnymi kreskami); rzadkość premii jest opisana słowem.
Sprawdzenie trybów dla daltonistów
Zrzut tej samej sceny w każdym trybie, potem symulacja wady innym modelem (Viénot, LMS) niż ten w filtrze (Machado 2009);
dE (CIELAB) między wskazówkami po symulacji, klasyczny -> tryb:
| Para | Protanopia | Deuteranopia | Tritanopia |
|---|---|---|---|
| Pole ciosu / podłoga | 9,2 -> 40,9 | 23,9 -> 43,7 | 25,1 -> 53,0 |
| Pasek HP / tor | 99 -> 110 | 104 -> 110 | 114 -> 76 |
| Elita (złoto) / podłoga | 74 -> 83 | 77 -> 84 | 68 -> 83 |
| Rzadkość: zwykła / rzadka / legendarna | 57 / 139 / 83 -> 51 / 134 / 85 | 62 / 150 / 90 -> 60 / 146 / 87 | 56 / 167 / 113 -> 75 / 70 / 20 |
Najsłabsza wskazówka bez filtra – czerwone pole ciosu przy protanopii (9,2) – staje się wyraźna; pozostałe zostają
rozróżnialne (dE ≥ 20), a rzadkość ma dodatkowo literę. Test rdzenia (GBA) sprawdza to samo na parach kolorów gry.
Język angielski (#40)
- Dane: polski zostaje bazą w
game.json, angielska warstwa wGBA/data/lang/en.json:fields(które pola są
tekstem dla gracza; „?” – odwołanie po nazwie, np. slot sprzętu w nagrodzie),data(polski tekst → angielski; ten sam
tekst tłumaczy się raz – 1356 tekstów),context(wyjątek dla pola: skrót kontraktu Bliźniak → Semi),ui(799
tekstów interfejsu GBA – wcześniej na sztywno wmain.cpp,core.h,meta.h, terazgame.json„ui” i w kodzie
UI(klucz)),uiGodot(661 tekstów skryptów Godota i rdzenia C#, w kodzieLoc.T/Loc.Fz {0}, {1}),
fit(własne limity szerokości). - GBA: teksty z danych są typu
core::ltext(wersja polska i angielska, wybór przy każdym użyciu – zmiana języka
działa od razu, także w telefonie).gen_data.pybuduje tablice dwa razy – z polskich i z angielskich danych – z tymi
samymi asercjami (długości, linie dymków, tytuły bez powtórzeń) i scala wynik. Tytuł i plansza końcowa mają angielskie
hasło (title_en,end_en). Profil v17: język w bajcie 378 (0 = jeszcze nie wybrano – ekran wyboru przy starcie,
1 polski, 2 angielski; migracja v16 → v17 zeruje). ROM 779 KB (było 672 KB). - Godot:
Loc(teksty interfejsu) iLangOverlay(dane po angielsku przy wczytaniu, 1:1 zgen_data.py); kopia
en.jsonprzy buildzie dores://data/lang_en.json. Zmiana języka w ustawieniach: interfejs od razu, nazwy i opisy
z danych – po powrocie na tytuł (przeładowanie).--lang pl|endo zrzutów i testów. Tytuł z hasłem po angielsku. - Sprawdzenia (
gen_data.py --check): każdy tekst ma tłumaczenie i nie ma zbędnych wpisów; font GBA (ASCII + polskie
litery) dla obu języków; szerokość w pikselach fontu GBA – linia angielska nie szersza niż najszersza polska w tym polu
(tekst interfejsu: do 25% / 16 px zapasu, wyjątki wfit– dymki SMS do 190 px, podpowiedzi przewijane); te same {0}, {1}
w obu językach; brak polskich napisów na sztywno wmain.cpp,core.h,meta.hi skryptach Godota (słownik polskich
słów z tekstów gry, bez identyfikatorów danych, logów i walidacji). Za szerokie po angielsku skrócone (np. Jack of
Trades → Odd Jobs, Safety Training → Safety Basics, Something dropped! → Loot dropped!). - Testy: core_tests i test złoty bez zmian (polski domyślny),
LanguageTests(kompletność danych i interfejsu, te same
{0}, dane po angielsku z tymi samymi liczbami i odwołaniami, tekst interfejsu w obu językach), test dymny Godota
po polsku i po angielsku (--lang en). Monkey test po angielsku: GBA 10 seedów zwykłej gry x 20000 klatek (szczyt kafli
122/256, sprite'ów 102/128, stosu ~7,6 KB), Godot 10 klawiatura + mysz i 10 pion + dotyk x 3000 akcji – bez błędów.
Scenariusze testowe GBA z-DPB_LANG=2(wyszukiwanie po polskich nazwach niezależnie od języka). - Karta sklepu (EN): bez zdania „gra jest na razie po polsku”.
Zmiany
- Profil v17 (PBRL017, 384 B bez zmian): wybrany filtr (bajt 363) i ogłoszone filtry (376–377) w dawnym wyrównaniu
v16. Migracja: filtr klasyczny, filtry odblokowane wcześniej czekają na baner. Zapis budowy bez zmian (PBRUN16).
Godot trzyma wybór filtra w ustawieniach urządzenia, pole w profilu tylko dla zgodności zapisu. - Test złoty z migawki v0.21.53 (74 przebiegi; zmieniła się tylko wersja profilu w zapisie).
- Testy: core_tests 54 (odblokowanie, wybór tylko odblokowanych, baner raz, migracja v16 -> v17) i 55 (tryb każdego
filtra, Retro 4 odcienie, Noir, pary mylonych kolorów w symulacji wady),ScreenFiltersTests; test dymny Godota –
każdy filtr nad i pod telefonem, lista w ustawieniach, Wygląd przed pierwszą wygraną. - Monkey test GBA: 20 seedów zwykłej gry + scenariusz 76 (5) x 20000 klatek – bez błędów (szczyt kafli sprite'ów
129/256, sprite'ów 105/128, stosu ~7,5 KB). Godot: 20 seedów klawiatura + mysz i 20 pion + dotyk x 3000 akcji,
z losowym filtrem, filtrem na telefonie i ograniczonym ruchem – bez błędów. - Balans bez zmian (filtry to sama oprawa).