Zakończyłem prace nad interfejsem w javascript do stron obiektów i inwentarza. Poszło całkiem sprawnie i nie powstrzymała mnie nieznajomość jQuery. Mam nadzieję, że efekt będzie zjadliwy.
Z tej okazji mogę przedstawić krótki opis jak to będzie działać i o jakich skrótach warto wiedzieć.
Nowy interfejs obsługiwał będzie następujące akcje dla przedmiotów:
- podnoszenie
- upuszczanie
- podawanie
- przeciąganie
- chowanie w pojemniku
- używanie surowców do projektu
- naprawa
Kliknięcie na któryś z przycisków zamiast przenosić na nową stronę spowoduje natychmiastowe wykonanie akcji (w przypadku podnoszenia i upuszczania przedmiotów) lub wysunięcie belki z informacjami na temat akcji.
Umożliwia to wybranie odpowiednich parametrów i wykonanie akcji bez opuszczania strony obiektów/inwentarza.
Należy pamiętać, że to co przedstawiane jest w wyniku działań na tej stronie nie determinuje tego co jest w rzeczywistości (na serwerze). Jeśli ktoś podniesie część surowca w czasie gdy my przyglądamy się stronie obiektów, to te zmiany nie zostaną automatycznie wyświetlone w naszej przeglądarce. Strona modyfikuje swój wygląd jedynie w efekcie naszych działań. W razie gdy nie ma pewności co się stało, bo np. gra wyrzuca błąd "tego obiektu tu nie ma" to warto zajrzeć na stronę zdarzeń - ktoś mógł podnieść go tuż przed nami.
Na szczęście błędy wyświetlane w prawym górnym rogu są w chwili wyświetlenia aktualne, więc na pewno nie jest gorzej niż było. ;]
Warto zauważyć, że we wszystkich akcjach w chwili kliknięcia na przycisk pojawia i aktywuje się pole tekstowe do wpisania ilości. W celu potwierdzenia akcji dla domyślnej wartości wystarczy wtedy wcisnąć ENTER.
Kolejną ważną sprawą jest fakt, że w przypadku bardziej zaawansowanych akcji (np. chowanie do pojemnika), pole tekstowe do wpisywania ilości jest widoczne także dla zwykłych przedmiotów. To nie bug, to feature
Dzięki temu, że pole tekstowe jest automatycznie zaznaczane, można potwierdzić działanie natychmiast wciskając ENTER. Wartość wpisana do pola nie ma wpływu na nic.[/i]
1. podnoszenie i upuszczanieDwie bliźniacze akcje. Kliknięcie na przycik "upuść" powoduje natychmiastowe upuszczenie przedmiotu. W przypadku surowca wysunie się menu w którym trzeba wpisać ilość.
Wciśnięcie "upuść" lub "podnieś" z wciśniętym klawiszem CTRL spowoduje upuszczenie lub podniesienie maksymalnej możliwej ilości surowca bez zbędnych pytań.
Uwaga - udźwig postaci nie jest synchronizowany z serwerem, tylko wyceniany na podstawie wykonywanych akcji. Jeśli w międzyczasie inny człowiek poda nam coś ciężkiego to strona obiektów tego nie zauważy i będize mówić, że mamy przy sobie mniej niż mamy.
2. podawanie i przeciąganiePodobie jak para w punkcie 1. mają ze sobą wiele wspólnego.
Kliknięcie na przycisk powoduje wyświetlenie listy pobliskich lokacji lub osób. Jeśli planujemy przekazać komuś wiele przedmiotów lub przeciągnąć dużo surowców to gra nieco w tym pomoże, domyślnie zaznaczając na liście ostatnio wybrany cel podawania/przeciągania.
W przypadku podawania może być jeszcze szybciej. Po przekazaniu danej osobie pierwszego przedmiotu, przy kliknięciu na przycisk "podaj" z wciśniętym CTRL podana zostanie maksymalna możliwa ilość do ostatniego odbiorcy. Trik z CTRLem nie działa przy przeciąganiu.
Zapamiętany odbiorca/lokacja docelowa jest przechowywana do opuszczenia/odświeżenia strony.
3. chowanie w pojemnikuDziała zarówno w inwentarzu i na stronie obiektów. Wyświetla się lista z podziałem na pojemniki w inwentarzu i na ziemi. Widoczne jest mniej więcej to co na starej stronie chowania w pojemniku. Widać ilośc wolnego miejsca i czy pojemnik jest zamknięty na klucz, a także (nowość) opis pojemnika. Pojemniki z opisem oznaczone są gwiazdką. Po najechaniu na jego nazwę wyświetla się opis. Nie każda przeglądarka wspiera dymki do menusów (u mnie działa, he, he). Jak będzie trzeba to poszukam czegoś co jest bardziej uniwersalne. W chwili obecnej ta akcja nie posiada żadnych sprytnych skrótów klawiszowych i innych przyspieszaczy.
Przykład:
4. używanie surowców na projektachDziała zarówno w inwentarzu i na stronie obiektów. Wyświetla listę projektów do których można włożyć dany surowiec wraz z potrzebną ilością. Póki co działa tylko dla surowców, ale w przyszłości planuję rozszerzenie o zwykłe obiekty.
Nie ma żadnych skrótów klawiszowych ani dodatkowych usprawnień.
5. naprawaPrzedmioty w inwentarzu można szybko naprawiać. Teraz nikt nie powie, że od czasu jakiejś tam zmiany naprawianie przedmiotów to dużo roboty ;p
Kliknięcie na przycisk naprawy wysunie belkę z pytaniem o czas naprawy, a wciśnięcie tego przycisku trzymając CTRL spowoduje rozpoczęcie projektu naprawy o maksymalnej możliwej długości.
To tyle. Dodam jeszcze, (żeby było wiadomo, czemu prawie nie gram w Cantr) że system pogodowy, którym obecnie się zajmuję przewiduje: cztery pory roku, taką samą pogodę dla blisko leżących osad i istnienie wiatru, zmianę pogody w miarę rzadko (pewnie raz dziennie). Nie jest to jeszcze taki w pełni uzgodniony projekt, ale myślę, że te zasady w ogólności niewiele się zmienią. Nie przewiduję wpływu pogody na grę w pierwszym etapie wprowadzania. Na początek najważniejsze będzie, żeby to wszystko w miarę sensownie działało.
W dalszej przyszłości przewiduję wpływ wiatru na podróż ożaglowanymi okrętami oraz pogody i pór roku na uprawy. (ale to z gatunku moich oczekiwań i marzeń ;]) Jak ktoś ma jakieś ciekawe pomysły to można mi podrzucić, może okażą się warte rozważenia