Randoloot/documentation.txt
2026-10-10 14:13:56 +02:00

93 lines
5.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SYSTEM PRZEDMIOTÓW I LOOTU
Przedmioty: Weapon, Shield, Hull, Generator, Extension. Baza typów znajduje się
w resources/items, generator w scripts/items/item_generator.gd.
Poziom przedmiotu = GameState.system_level (1–1000; obecnie układ 1).
Cecha główna modułów i regeneracja generatora: baza * (1 + 0.05 * (L - 1)) * losowe 0.8–1.2.
Definicje bazowe pozostają wspólne i nie są zmieniane; wylosowane wartości zapisuje
ItemInstance. Każdy drop ma 1–5 różnych addonów z bazy zasobów affix_database.tres.
Liczba addonów zwykłego dropu: 1=50%, 2=25%, 3=14%, 4=8%, 5=3%.
Elite dostaje jeden addon więcej (maks. 5), Boss co najmniej 4.
Rzadkość wg liczby addonów: zwykły, niepospolity, rzadki, epicki, legendarny.
Zakresy addonów interpolują liniowo między poziomem 1 a 1000 wg concept_game.txt.
Cap dotyczy pojedynczego addonu; bonusy zamontowanych przedmiotów sumują się.
Po zniszczeniu wroga: Normal 65%, Elite 90%, Boss 100% szansy na jeden przedmiot.
Typ wroga ustawia eksportowane loot_tier; obecna mapa nadal tworzy zwykłych wrogów.
Drop pozostaje na mapie, przyciąga się z 150 px i zbiera do wolnego slotu z 48 px.
Pełna ładownia: drop czeka i pokazuje komunikat. Zniszczony gracz nie zbiera lootu.
Niezebrany loot znika przy restarcie poziomu. Zebrane przedmioty zachowują wszystkie
wylosowane wartości, addony, poziomy i rozmieszczenie po śmierci gracza.
Addony działają wyłącznie w zamontowanej broni/modułach. Procenty kadłuba, tarcz
i prędkości mnożą bazę powiększoną o bonusy płaskie. Bonus obrażeń działa na obie
bronie (także laser i rakiety). Regeneracja dodaje punkty na sekundę.
EXP i kredyty mają obliczone mnożniki statku; naliczanie nagród wymaga przyszłego
systemu postępu pilota i waluty, których gra obecnie nie posiada.
UI: kolor przedmiotu wskazuje rzadkość. Najechanie na slot pokazuje pełne parametry,
poziom, rzadkość, addony i parametry broni. Przenoszenie nadal odbywa się drag/drop.
Małe × w zajętym slocie magazynu usuwa przedmiot natychmiast, bez przesuwania
pozostałych slotów. Przedmioty zamontowane nie mają przycisku usuwania.
EDYCJA BAZY CECH (ADDONÓW)
Katalog bazy: resources/items/affix_database.tres.
Definicje poszczególnych cech: resources/items/affixes/*.tres.
Klasa pól i reguł: scripts/items/item_affix_definition.gd.
Losowanie ważone i kontrola zgodności: scripts/items/item_affix_database.gd.
W Godocie wybierz plik cechy .tres w FileSystem i edytuj go w Inspectorze:
- affix_id: unikalny identyfikator cechy.
- display_name, description, unit: nazwa, opis, jednostka.
- stat_key: identyfikator efektu obsługiwanego przez statek/bronie.
- enabled: włącza lub wyłącza przyszłe losowanie cechy.
- selection_weight: względna waga losowania (2 = dwa razy większa waga niż 1).
Waga 0 wyłącza losowanie; procent szansy zależy od pozostałej dozwolonej puli.
- category_mask: zaznacz dozwolone Weapon, Shield, Hull, Generator, Extension.
Obecnie zaznaczone są wszystkie kategorie, zgodnie z wcześniejszą pulą ogólną.
- allowed_item_ids: pusta lista dopuszcza wszystkie itemy dozwolonych kategorii;
wpisana lista dopuszcza tylko podane item_id z bazowych resources/items/*.tres.
- excluded_item_ids: zawsze wyklucza wskazane itemy.
- minimum_level / maximum_level: poziomy, na których cecha może się pojawić.
- minimum/maximum_value_level_1 i level_1000: zakresy dla poziomów krańcowych;
między nimi generator interpoluje liniowo. Dla stałej wartości ustaw wszystkie
cztery pola identycznie.
- exclusive_group: puste = bez ograniczenia. Cechy o tej samej niepustej grupie
nie mogą pojawić się razem na jednym przedmiocie.
- incompatible_affix_ids: lista cech wykluczonych na tym samym przedmiocie.
Wystarczy wpisać wykluczenie po jednej stronie. Ta sama cecha nie powtarza się.
Aby dodać cechę: utwórz zasób ItemAffixDefinition, zapisz w affixes i dodaj do
tablicy affixes w affix_database.tres. Sama obecność pliku w katalogu nie dodaje
go do losowania. Aktualne osiem cech ma wagę 1 i nie ma wzajemnych wykluczeń.
Nowy stat_key wymaga również implementacji efektu w kodzie; baza opisuje reguły
losowania i prezentację, nie tworzy automatycznie nowych mechanik statku.
Tooltip pobiera nazwę i jednostkę z definicji cechy. Wylosowana wartość pozostaje
w ItemStatModifier; zmiana zakresów w bazie nie przelicza zdobytych przedmiotów.
Przy zbyt małej puli zgodnych cech generator kończy losowanie wcześniej, bez
duplikatów i bez pętli nieskończonej. Rzadkość wynika z faktycznej liczby addonów.
Pusta dozwolona pula daje przedmiot bez addonów o rzadkości zwykłej.
ZAKRES OBRAŻEŃ BRONI
Każda nowa broń ma zapisane w ItemInstance damage_min / damage_max. Generator
losuje dolną granicę oraz szerokość zakresu. Obie granice skaluje przez
(1 + 0.05 * (L - 1)) i zaokrągla do całkowitych punktów obrażeń.
Wartości dla poziomu 1 edytuje się w zasobach poszczególnych broni .tres:
damage_lower_roll_min/max = zakres losowania dolnej granicy;
damage_spread_roll_min/max = zakres losowania szerokości (górna = dolna + szerokość).
Laser: dolna 1–4, szerokość 2–4 (możliwe m.in. 1–5 i 4–6).
Plazma: dolna 10–14, szerokość 2–4.
Działko maszynowe: dolna 2–4, szerokość 1–2.
Rakiety: dolna 45–58, szerokość 5–12.
Każdy wystrzelony pocisk i każdy trafiający impuls lasera losują obrażenia
równomiernie z zakresu swojej broni, włącznie z obiema granicami.
Po losowaniu naliczany jest mnożnik damage_percent z całego wyposażenia.
Jedna rakieta ma jeden wynik losowania, wspólny dla trafienia i jej eksplozji.
Tooltip i etykieta slotu pokazują bazowy zakres broni; bonus procentowy statku
jest naliczany w walce. Zakres dropu zachowuje się po restarcie poziomu.
Bronie startowe mają zakres z wartości środkowych ustawień w definicji.
Starszy item z primary_value_override i bez zakresu zachowuje stałe obrażenia.