Open acatai opened 6 years ago
OK, to jest taki future, future feature, ale naprawdę wypasiony ;]. Wydaje mi się, że Krzysiek kiedyś wykazywał potrzebę na asymetrię pomiędzy częścią graczy (jeśli chodzi o samą strukturę LML'a).
Szkic propozycji jest taki, żeby można było dać inne opcje konkretnemu subsetowi graczy (uproszczenie - graczom AI-only), i dla nich generować trochę inaczej - np. AI miałoby większy obszar ze słabszymi potworami.
Jeśli handling wielu parametrów poprzez jakiś interfejs już by istniał, wystarczyłoby go rozszerzyć żeby oprócz nazwy komponentu brał też numer gracza (jakiś conflict resolution by się przydał dla buforów z różnymi typami graczy, ale to szczegóły).
OK, z tego co dzisiaj ustaliliśmy, o generowaniu dowolnego elementu decydują trzy zbiory ustawień:
config
,userParams
iconcreteParams
- nazwijmy je roboczo settings.Standardowe działanie programu polega na wczytaniu tych rzeczy (np. przez GUI) i wygenerowaniu mapy. Voila i do domu.
Natomiast chcielibyśmy umożliwić użytkownikom wczytanie istniejącego h3pgm'a i regernerowanie niektórych etapów. "Regenerowanie" nie tylko w postaci, zrób mi inne potwory na tych samych ustawieniach, ale także np. zrób mi inne potwory. Albo ustaw inne zamki.
Pomysł jest więc taki, że do h3pgm'a możemy dodać wiele settingów, każdy musi być związany z jakimś etapem. I teraz w momencie gdy chcemy jakąś wartość X na etapie powiedzmy "monsters", to wyszukujemy setting który został położony najpóźniej na liście etapów poprzedzających "monsters".
Krótko mówiąc trzeba dopisać interfejs który będzie to obsługiwał od strony kodu. Kawałek liba który na zawołanie w stylu
state.userParams("monsters")
odpowiednio przeszuka h3pgm i zwróci pożądaną wartość. (a równocześnie byłbym za tym, żeby w samym h3pgm wyglądało to jakoś przejrzyście. no i wymaga to żebyśmy też mieli gdzieś w kodzie zapisany ordering całości wraz z nazwami kodowymi poszczególnych faz).blocked by #37