Większość plemion obecnie wymaga wysyłania obstaw w paczkach np 1 paczka = 50p/50m ALBO 50p/50ł ALBO 50p/10ck etc.
Przy obecnym kodzie skryptu jedyne co jesteśmy w stanie zapewnić to że w sumie wysłanych zostanie 100jednostek po jakimkolwiek tam chcemy przeliczniku, ale wybierane one będą zakładając minimalizację czasu rekrutacji/ilości dostępnych jednostek (w efekcie chcąc wysłać 200j często dostaniemy np 83piki, 67mieczy, 42łuczników, 2CK).
W większości przypadków więc chcąc wysłać np 2paczki (zakładając powyższe ograniczenia) jesteśmy w stanie zapewnić odpowiedni ich rozkład na 2 sposoby.
- Dość naiwny - mieć idealne ilości wyrekrutowanych jednostek. Czyli np dokładnie 5k pików i po 2,5k mieczy i łuków wtedy skrypt nam wybierze faktycznie 100p i po 50 ł/m
- bawić się modyfikatorami, najpierw wysłać 100j z przelicznikiem piki:1, pozostałe 0, a potem zmienić ustawienie na piki:0, pozostałe 1. Wtedy w najgorszym przypadku wyślemy 100p i np 30m i 70ł, co raczej będzie akceptowalne
Czy istniałaby opcja rozszerzenia skryptu o obsługę predefiniowanej paczki stałkowej i zamiast wysyłania konkretnej liczby jednostek(np 200j) to wysyłanie konkretnej liczby paczek (np 2)?
@hermitowski da radę coś pomyśleć o tym co powyżej napisane ?
Nadal jest potrzebna. Można dodać jako strategię wybierania.
Myślałem trochę nad tym i wątpię, abym moje pojęcie jak to powinno działać spełni wszystkie wasze oczekiwania.
> 1 paczka = 50p/50m ALBO 50p/50ł ALBO 50p/10ck
Najprościej to można rozumieć, że użytkownik definiuje paczkę jako jedna kombinacja wyboru jednostek, czyli na raz może podać np 50p/50m.
Co można obecnie rozwiązać bawiąc się modyfikatorami i wysłać wojsko na dwie tury.
Ale pewnie chodzi o bardziej skomplikowaną konfigurację; zdefniowiowanie paczki jako listę szablonów i następnie wybranie takiej kombinacji szablonów z każdej wioski, aby docelowo spełnić zadaną liczbę paczek.
> bawić się modyfikatorami, najpierw wysłać 100j z przelicznikiem piki:1, pozostałe 0, a potem zmienić ustawienie na piki:0, pozostałe 1. Wtedy w najgorszym przypadku wyślemy 100p i np 30m i 70ł, co raczej będzie akceptowalne
To jest praktycznie to samo co byśmy zyskali przy mechanizmie paczek, tylko skrypt wybrałby niecałkowitą paczkę (przy zachowaniu proporcji danej paczki); np. 0.6 *
50p50m + 1.4 *
50p50ł = 100p30m70ł = 2 paczki
Dodając obserwację, że wszystkie przykłady paczek podałeś raczej proste - tylko 2 typy jednostek oraz jedna jednostka jest wspólna dla wszystkich szablonów.
To wystarczy rozbić to na dwie wysyłki tak jak wspomniałeś. Zakładając, że chcesz wysłać 100 paczek to następujące wysyłki są potrzebne:
- 5000 jednostek; 1 pikinier = 1; reszta 0
- 5000 jednostek; 1 miecz = 1; 1 łuk = 1; 1 ck = 5; reszta 0
Zastanawiam się jak bardziej skomplikowane szablony paczek powinny śmigać, np,
1 p = 50p50m
1 p = 60p15ck
1 p = 40p10m40l
Póki co nic mi do głowy nie przychodzi, aby tak zdefiniowane paczki przekonwertować na przeliczniki - co by raczej w miarę łatwo dostosować nową funkcjonalność do istniejących bebechów, niż pisać drugi sposób wybierania jednostek. Pytanie czy tego typu przypadki użycia są potrzebne; jak nie to, może wystarczy trochę uprościć przełączanie przełączników; np posiadanie dwóch instancji skryptu w pasku, każdy z innym setupem przeliniczków; mechanizm podobny do tego co jest w skrypcie do fejków; czyli jakieś var HermitowskieObstawy = {...}; $.ajax(.....