# BW Crafting Tool by Arg — v0.15.2

Prywatna wersja narzędzia z interfejsem Awakening, lokalną bazą ekwipunku, craftingiem, planerem wieloetapowym i Encyklopedią Morii.


## Poprawka v0.15.2 — statystyki broni dystansowej

- parser rozpoznaje teraz dodatkowy podtyp w oficjalnym opisie kategorii: `(lekka)` albo `(ciężka)`;
- wpisy takie jak `Broń dystansowa dwuręczna (ciężka) (PŁEĆ: Dowolna)` nie są już odrzucane jako niepełne;
- nazwa, kategoria, obrażenia, cechy, wymagania, ceny, strefa i rzadkość są zapisywane w cache tak samo jak dla pozostałych kategorii;
- poprzednie nieudane próby nie wymagają czyszczenia cache — wynik nie był zapisywany, więc wystarczy ponownie kliknąć przedmiot po przebudowaniu EXE.


## Planer v0.15.0 — pełna wybrana głębokość i craft z półproduktów

- pole **Głębokość końcowa** naprawdę określa ostatnią przeszukiwaną warstwę;
- domyślnie zaznaczony tryb **Szukaj do końca** nie zatrzymuje planera tylko dlatego, że znalazł dużo planów na głębokości 1;
- po odznaczeniu tej opcji dostępny jest wcześniejszy, szybszy tryb zatrzymania po pierwszej skutecznej głębokości;
- planer zachowuje warianty z różnych warstw, zamiast pozwalać dziesiątkom płytkich planów wyprzeć wszystkie głębsze;
- możliwe są pełne plany ekwipunkowe z dwoma półproduktami, np. `A + C → X`, `B + D → Z`, następnie `X + Z → E`;
- plany pokazują osobno liczbę **warstw** i całkowitą liczbę **kroków**;
- plany z mniejszą liczbą brakujących przedmiotów są oceniane wyżej niż krótsze plany oparte głównie na brakach;
- strzałki rozwijania w polach wyboru mają teraz jasną, złotą grafikę.


## Poprawka v0.14.4 — błąd `bytes.casefold` przy pobieraniu grafik

- naprawiono błąd `'bytes' object has no attribute 'casefold'`;
- kontrola, czy pobrany plik jest stroną HTML, używa teraz poprawnego `bytes.lower()`;
- grafiki bazy, prefixu i suffixu mogą ponownie zostać zapisane w cache;
- tryb pojedynczego pobierania bez kolejki pozostaje bez zmian.


## Poprawka v0.14.3 — grafiki prefixu i suffixu

- parser odczytuje grafiki także z linków `<a href>` i znaczników `<img src>`, nie tylko z `style="background:url(...)"`;
- ścieżki `gfx/...` są poprawnie kierowane do głównego katalogu serwera BloodWars zamiast błędnego `/test_items.php/gfx/...`;
- brakujące URL-e grafik są uzupełniane z dołączonego rejestru oficjalnych grafik;
- karta przedmiotu rozpoznaje niepełny stary cache i pobiera brakujące grafiki po kliknięciu, nadal tylko dla jednego przedmiotu naraz i bez kolejki.

## Krytyczna poprawka v0.14.2

- wyniki z wątków roboczych są przekazywane do interfejsu wyłącznie przez kolejkę głównego wątku Qt;
- callbacki aktualizujące kartę przedmiotu nie są już funkcjami lokalnymi ani `lambda`;
- workery pozostają żywe do czasu dostarczenia wszystkich sygnałów i są zwalniane dopiero w wątku GUI;
- `crash.log` zapisuje teraz etapy pobierania, co pozwoli ustalić ostatnią wykonaną operację, gdyby natywny crash nadal wystąpił.

Ta poprawka dotyczy awarii `Windows fatal exception: access violation` występującej po pobraniu pierwszego przedmiotu i kliknięciu następnego.

## Zmiany w v0.14.1

### Filtry wielokrotnego wyboru

Filtry w zakładkach **Ekwipunek**, **Możliwe teraz** i **Encyklopedia** mają teraz listy z checkboxami. Można jednocześnie zaznaczyć kilka kategorii, prefixów, baz, suffixów, jakości, ulepszeń lub półek.

Brak zaznaczonej konkretnej wartości oznacza **Wszystkie**.

### Wiele wariantów celu w planerze

Kategoria, prefix, baza i suffix celu również używają list z checkboxami. Przykład:

- Prefix: `Niedźwiedzi`
- Baza: `Pierścień` oraz `Sygnet`
- Suffix: `Geniuszu`

Planer sprawdzi oba cele i pokaże wspólną listę najlepszych planów. Kolumna **Cel** wskazuje, którego wariantu dotyczy dany plan.

Dla bezpieczeństwa jednorazowo można przeszukiwać maksymalnie 64 warianty celu.

### Bezpieczne pobieranie statystyk

- grafiki prefixu i suffixu nie znikają po pobraniu oficjalnych statystyk;
- statystyki kart z Ekwipunku i Planera są pobierane dopiero po kliknięciu konkretnego przedmiotu;
- po imporcie nie uruchamia się już automatyczne uzupełnianie całego ekwipunku w tle;
- jednocześnie może działać tylko jedno zapytanie do oficjalnego testera;
- kolejne kliknięcie podczas aktywnego pobierania nie tworzy kolejki — trzeba kliknąć ponownie po zakończeniu;
- lokalne grafiki znalezione w zaimportowanym HTML nadal są kopiowane do cache bez połączenia z internetem.

### Encyklopedia

Przycisk **Pobierz / odśwież** pobiera tylko aktualnie wybrany wariant. Pobieranie seryjne widocznych pozycji zostało wyłączone dla stabilności.

### Nazwa aplikacji

Tytuł okna jest zawsze:

```text
BW Crafting Tool by Arg
```

## Pełny pakiet grafik — opcjonalnie

```text
prepare_full_asset_pack.bat
```

Uruchomienie programu i budowanie EXE **nie pobiera już tego pakietu automatycznie**. Kreator jest osobnym, ręcznym krokiem i pobiera grafiki wszystkich baz, prefixów i suffixów z oficjalnego testera oraz zapisuje raport:

```text
ASSET_FETCH_REPORT.txt
```

## Uruchomienie ze źródeł

```text
run_awakening_windows.bat
```

## Budowanie EXE

```text
build_exe_windows.bat
```

Wynik:

```text
dist\BW_Crafting_Tool_by_Arg_v0_15_2.exe
```

## Log awarii

Wersja okienkowa zapisuje informacje o nieobsłużonych błędach i twardych awariach tutaj:

```text
%APPDATA%\BW Crafting Planner\crash.log
```

Przy normalnym działaniu plik zawiera znacznik uruchomienia oraz krótkie wpisy diagnostyczne dotyczące pobierania przedmiotów.

## Prywatność

- aplikacja nie loguje się do BloodWars;
- nie wykonuje działań w grze;
- ekwipunek i plany są przechowywane lokalnie;
- statystyki i grafiki są pobierane wyłącznie z publicznego testera i zapisywane w cache.
