From cf808f916d0fd8619f6d7babd41e7117b19bacdd Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 6 Aug 2023 20:24:21 -0400 Subject: [PATCH] Polish manual fixes, basics done --- Manuals/{manual.bin => MANUAL_PL_A800.bin} | Bin 30217 -> 29588 bytes Manuals/{MANUAL_PL.md => MANUAL_PL_A800.md} | 177 +++++++++----------- Manuals/manual.asm | 22 ++- Manuals/manual.xex | Bin 35714 -> 0 bytes Manuals/manual_conv.py | 11 +- Manuals/manual_pl.xex | Bin 41875 -> 35085 bytes 6 files changed, 105 insertions(+), 105 deletions(-) rename Manuals/{manual.bin => MANUAL_PL_A800.bin} (66%) rename Manuals/{MANUAL_PL.md => MANUAL_PL_A800.md} (74%) delete mode 100644 Manuals/manual.xex diff --git a/Manuals/manual.bin b/Manuals/MANUAL_PL_A800.bin similarity index 66% rename from Manuals/manual.bin rename to Manuals/MANUAL_PL_A800.bin index a5c7b98fbeb0f639421a67bd6fdf786a63af22f7..4afa644ac1e0a9f0568ef65252098f1470df0f20 100644 GIT binary patch delta 2734 zcmZWrTWlOx89uY|ZN2MFNqoP=jopeijZ7%5+&C$%7RM6MCADM~x1yBs?D2YbX6J0@ zqS1_uvVB1bQKgiFR8^t^$939NxmaFPi}1i3NJt=o=tGfcv`My(Th~tQgy5&)JF~k) z3Hxw%=FETo+xPwde@?ASzg(3T_e;^m_0mpxYn!z2ho$zefUqf=%{f_0Y*{0^llIj( z$;ul4QT^ah5Hyqd()LZ#Lh?-UleWg(BvExXF-kJb9(Of0AeuaxrWrF2gFs!G|NvCS2k^EhzjlRZhR8PjuR!&7F6=@@Boq+7p7Vnnt8XlH|>?v?c;I zJ&VDHDw7rj2a)O-JS)T{mYk#6nkxzoqbinf-MaI|9q8vz)b&IIJY?yFuJYq`!XuV8 zm<^o>*f!;9l^!QeiqBFRl_+X5qtk#`w&_z{&L)LLh3Z(N!bfTlUm%671|;vKQ%*Li zi15Sn<1TQ@(^MD{9Ai`CS<7}A>?2yHnQ-ESobv?01ZOiWAUT#vl1SCwC<4lxRT?d4?MfV++*a6=|RBSsEwgCrRq(8)=Nkwqeaw;97fkczc zxQSfymHNW7E2Z^y!3-#lA7XNP~*DA#S3Hf|KZ-}JH+Tb?@`C&h&e3-inT zSZhE3dvxzGIlw%!XCM|JF;m3P09`LyBMFkGF&%spzBcU@v6>c&EzS53nx9n!zvIMJ z)Cpu=!d;2Bv_^V53#PN5QCR7WL@#Y*a6R2j`|EAv++GVjxe= z58e`gy5(Y(0HIU-g}BvI+d&9H@PrP!Sw2}>SpMzOrQ)aY_x=x?6M5#la#%vHaA_17 z)9i5*tqPUHOcX?xd6umznoOnyH7KA0TS4Vim8|#KI)CY-g{9&`i1Ovd<@1*>5huqc zbrpbQlR(y+0>-FOBkYFz$zGsr*<<;zJ)!eKFIr|$E7b(QyIXFkM(~q|?n=d%_7tV3 z1p@?;L`BLe4Xw!~I(1nb=R9K5NkEQzulWv0h#Te>f-11^iNL_rU+OLM5<~(K$>i&_kCYzN|TU{zYp~)n}e) zyVg+Az&~s~!oSr%bMMO#|6BWy`B2AVQ)S+u8~>~0%Hs)tzY%gx6GxN}w9@ z4`SZ?E}F@?&8_R=>`YfLnnoqB4u7+2sWBWV`10-U_BNDKWt?E9RVNR=$lX+u`JcMC z`PcRh@R-vTt3hL#ud!>u~Z112{VZ^WXT$qKfbc^9 zzWRmYJf7zI`=#IUD}95}`Q@bxu@4q5Eb`C$x{HyAFYIa%B7VR>8axAi-+kn(#|U=f z7|W;v?;dwW5mHl3IEprpWCq3bqw{rjtLVQxcHob7>zmu<;>QO*kY4)|&2p#kZlUsj zx^VIrX9_3w091(c;NZ<(@eY&W-|0eyK<|~WZ#;opM-L68Xx`+;Mx485MX zf2;V((1`TF9^ZdxC4RPaZKqJZQxtC;I@=&6_|Jw1Is!5z=Vd(?C!G(4MGrbtEx|7j zzX6Fu&wK}~^-Kxt#9<%nUk}e>{ocsevA#a?&H8Z6@v9?k{P!c>*!y_oNvw@Wu44V{ z$Wg2VM_-W=#o43RBh4!}*KU^!=hjQBJp0^ivHaX?b+yX-G~UsSYI0c`H5%~TXwM0P zJ5AP798A`OvW>=vE(J=a8Bu0jRac3nvEzy#mXD>51tfw%R9B9Wro2h9FYYE`6T_*z zY>C;8TD2X^2``D_@=z($D$fIw#we&Xmu&Q~82p*EhojKSaIu4lib+p2G2C;)ks|me W?kEBvalgT+dj42@@rTEj4*eHM6_ZE+ delta 3242 zcmai1U2G#)6+U*H#C9AfyU8ZI{%Pd6ZZ_HcH9y^-S&PMuQfVc(jTFQdbqm)s6Yuqm z=eqO5Fr%PsACN#o2=*fJNJWc;D#2Fu15`*npsFu@K;;1m!3&~@A}yjIq@_>8xz~0! zS@GkSnYs7ebI;FrzH|KDKgYiDAog}CwrWx}Y!GPLL=6K-o`rFkNdar#-dlA|OF0*?= z;}Eu~Zczd)T?>SuPc?MXLTftqt|rylfx~jV6$GAo2)!7L(Lw z%^Jk}nlb#szP(!(-Hk&oH85Hj*{XpXmrK>$pLin3fKn<6?#|b_f@gh+E8V z$1{L&7VZWeq8T24DOSFc&1S*ZHB*nk3oQ}HtjLy+QI+9MQgq;e)HNAoJq67@8<-aH z)W}`_ospS2NE!%+T|{F9I=)(7Di;C%(qJ)5=kJf)PWU$I@P*OuB^qA4!+$v%CK~K3 z0l$$X2|S>6f0%qJmQ%J$^VJL}o0a8Cd8>*DZ-8cdO&ami%oJZpPd^vI5)0t${FvMf zo0y^?CA>n^7|e2*NN33Dd|d+IFy-GzNjBghPm{jDM1z{(J-! zdRUEN0P9-Oirjt%9X$!w?NE6lT8LajJ|E#u5R`b6KN z=+Yoz8ZQjtm5T;RG$R3hh`X}4>)vJ6!%TRFp|R5zz__K zIKsOqB3+cfftYWJE09RgHN4>1w?Ta%;IKjjxV}0;lFA_VA5A=rb$@^6o!FEtO;K|Q z38XwyHwgd!)VXO)d_PVCv_6=+&-gF0b2s}Oj9yDh5CCl0Okzqy3|da$qm`n<+2AWP zuqHwZSTB{AN-~&yZ92#Aohy!n#PB*1H>UH)7V?Sl1>T+hdFDSH_}Xcyof)0KHFKXg zX5UpX`xtlR^?sY|cort#2i?-`CPfC33C7)CgAm<`SwIXo@Oh~@&7Jetj(Ysctf1dL z`bUhKi@vIN0#mdt!ORB%>cJYqHmDn@uyt}DiFTlfoK}RKf(=8)8v8`DO$u+ zrOJPjzmSzF#+@Gd@(=U5VP&z3ka&2#8#m^ ztZa(6TZM8;+1x5^Ae{rhTbLVG*2LTEh4N&7eQcnY|Eh3)SXmI;9~a7_N@cSw-m}Hh zuyR$rtryGVN_lHzxjLp?tSqlr`OC%J$e}EBPV$TVoB7#v&!Y)tvdZu0&nE@(i=Xgk zNV!nupXBEjmD%1RuKzbb)=S%1%=~&GKZ@nBS=p-cFBS67ANwLsx^~bIOx|Gq5FCmK zOr6k;#Y=S+;e$$AJ9{lYieq+1B-@Ec- zZeP95?_d2wH+}7o@v(U-$mJ=MGzour{jlp+Ur8hfMTex78)ZJza8Tr*em0+u0EgU` zqk38XL~RCVC&yqfsG*#D1;xkFH0qOh#Ot*SM@S09^&GGFFF=fqGEF#MN`gJEOC$t2 z88tPWWTXZr8%9rgkmSren*4$>Cl$m;&7c7Off DhOH~H diff --git a/Manuals/MANUAL_PL.md b/Manuals/MANUAL_PL_A800.md similarity index 74% rename from Manuals/MANUAL_PL.md rename to Manuals/MANUAL_PL_A800.md index 5f56233..c9ac707 100644 --- a/Manuals/MANUAL_PL.md +++ b/Manuals/MANUAL_PL_A800.md @@ -7,47 +7,47 @@ Grać można przy użyciu klawiatury (wszystkie funkcjonalności) lub joysticka ![Ekran wyboru opcji gry.](images/MainMenu.png) Na pierwszym ekranie możemy skonfigurować opcje rozgrywki: -* liczba graczy (2 - 6) obejmuje tak ludzi, jak graczy sterowanych przez komputer +* **Players** - liczba graczy (2 - 6) obejmuje tak ludzi, jak graczy sterowanych przez komputer -* początkową ilość gotówki każdego z graczy (8k to wybrana przez nas wartość optymalna, lecz przy krótkich rozgrywkach warto wybrać większą wartość) +* **Cash** - początkową ilość gotówki każdego z graczy (8k to wybrana przez nas wartość optymalna, lecz przy krótkich rozgrywkach warto wybrać większą wartość) -* grawitacja +* **Gravity** - siła grtawitacji -* maksymalna siła wiatru w skali Beauforta (wiatr jest losowany na początku każdej z rund lub w czasie rundy pomiędzy turami, tu możemy wybrać jak silny może być): +* **Wind** - maksymalna siła wiatru w skali Beauforta (wiatr jest losowany na początku każdej z rund lub w czasie rundy pomiędzy turami, tu możemy wybrać jak silny może być): * 1B - maksymalna siła wiatru: 5 * 3B - maksymalna siła wiatru: 20 * 5B - maksymalna siła wiatru: 40 * 7B - maksymalna siła wiatru: 70 * 9B - maksymalna siła wiatru: 99 -* liczba rozgrywanych rund +* **Rounds** - liczba rozgrywanych rund -* szybkość lotu pocisków (nie ma wpływu na tor lotu - zmienia jedynie widoczną prędkość rysowania - nie zmienia nic w samej rozgrywce) +* **Missiles** - szybkość lotu pocisków (nie ma wpływu na tor lotu - zmienia jedynie widoczną prędkość rysowania - nie zmienia nic w samej rozgrywce) -* częstotliwość samobójstw :) - jeśli przez ileś tur gra nie odnotowała trafień (czołgi ciągle strzelają niecelnie) jeden z takich pudłujących czołgów popełnia samobójstwo - tu określamy jak długo mogą "strzelać w próżnię" :) - jeśli grają tylko ludzie, optymalne ustawienie to "norm", a w przypadku graczy sterowanych przez komputer... wedle uznania. +* **Seppuku** - częstotliwość samobójstw :) - jeśli przez ileś tur gra nie odnotowała trafień (czołgi ciągle strzelają niecelnie) jeden z takich pudłujących czołgów popełnia samobójstwo - tu określamy jak długo mogą "strzelać w próżnię" :) - jeśli grają tylko ludzie, optymalne ustawienie to "norm", a w przypadku graczy sterowanych przez komputer... wedle uznania. -* wysokość (i pofałdowanie) gór od prawie płaskich (NL - Królestwo Niderlandów), do strzelistych i wysokich (NP - Federalna Demokratyczna Republika Nepalu) +* **Mountain** - wysokość (i pofałdowanie) gór od prawie płaskich (NL - Królestwo Niderlandów), do strzelistych i wysokich (NP - Federalna Demokratyczna Republika Nepalu) -* sposób działania ścian (krawędzi ekranu): - * none - pociski, które wyleciały poza ekran nie wracają (czarny kolor ramki ekranu) - * wrap - ekran "zawija się" i pociski, które wyleciały w prawo pojawiają się z lewej strony i odwrotnie (fioletowy kolor ramki ekranu) - * bump - prawa i lewa ściana odbijają pociski, które chcą przez nie przelecieć (granatowy kolor ramki ekranu) - * boxy - tak jak bump, tyle że "sufit" także odbija pociski (zielony kolor ramki ekranu) - * rand - na początku każdej rundy losowany jest jeden z 4 powyższych sposobów działania ścian +* **Walls** - sposób działania ścian (krawędzi ekranu): + * **none** - pociski, które wyleciały poza ekran nie wracają (czarny kolor ramki ekranu) + * **wrap** - ekran "zawija się" i pociski, które wyleciały w prawo pojawiają się z lewej strony i odwrotnie (fioletowy kolor ramki ekranu) + * **bump** - prawa i lewa ściana odbijają pociski, które chcą przez nie przelecieć (granatowy kolor ramki ekranu) + * **boxy** - tak jak bump, tyle że "sufit" także odbija pociski (zielony kolor ramki ekranu) + * **rand** - na początku każdej rundy losowany jest jeden z 4 powyższych sposobów działania ścian W trakcie rozgrywki aktualny sposób działania ścian reprezentowany jest przez kolor ramki ekranu: none - czarny, wrap - fioletowy, bump - granatowy, boxy - zielony. Wybór opcji klawiszami kursora lub joystickiem. -Klawisz [TAB], [SELECT] lub drugi przycisk joysticka (wspierany standard Joy 2B+ lub zgodny), a na konsoli Atari 5200 klawisz [5] kontrolera zmieniają kolor gór (3 wersje do wyboru). +Klawisz **TAB**, **SELECT** lub drugi przycisk joysticka (wspierany standard Joy 2B+ lub zgodny) zmieniają kolor gór (3 wersje do wyboru). -Jeśli kursor wskazuje opcję wyboru siły wiatru "Wind" zmienia sposób losowania siły wiatru z "co rundę" na "co turę" i odwrotnie. Losowanie co turę jest sygnalizowane znakiem "?" przy słowie "Wind". +Jeśli kursor wskazuje opcję wyboru siły wiatru **Wind**, wciśnięcie **TAB** zmienia sposób losowania siły wiatru z "co rundę" na "co turę" i odwrotnie. Losowanie co turę jest sygnalizowane znakiem "?" przy słowie **Wind**. -Jeśli kursor wskazuje opcję wyboru siły ciążenia "Gravity" zmienia procedurę opadania ziemi na mniej efektowną, ale szybszą i odwrotnie. Wybranie szybkiego opadania ziemi sygnalizowane jest literą "f" przy słowie "Gravity". +Jeśli kursor wskazuje opcję wyboru siły ciążenia **Gravity**, **TAB** zmienia procedurę opadania ziemi na mniej efektowną, ale szybszą i odwrotnie. Wybranie szybkiego opadania ziemi sygnalizowane jest literą "f" przy słowie **Gravity**. -Jeśli kursor wskazuje opcję wyboru wysokości gór "Mountain" przełącza opcję zmiennej co rundę wysokości gór. Losowanie co rundę jest sygnalizowane znakiem "?" przy słowie "Mountain". +Jeśli kursor wskazuje opcję wyboru wysokości gór **Mountain**, **TAB** przełącza opcję zmiennej co rundę wysokości gór. Losowanie co rundę jest sygnalizowane znakiem "?" przy słowie **Mountain**. -Klawisz [RETURN] lub przycisk joysticka przechodzi do następnego ekranu. +Klawisz **RETURN** lub przycisk joysticka przechodzi do następnego ekranu. ## 2. Gracze i poziom przeciwników @@ -56,98 +56,84 @@ Wprowadzanie nazw graczy i wybór poziomu graczy sterowanych przez komputer. Drugi ekran powtarza się dla każdego z graczy, można na nim klawiszami kursora lub joystickiem wybrać czy danym czołgiem będzie kierował człowiek (opcja HUMAN), czy też komputer (pozostałe opcje). -Klawisz [TAB], [SELECT] lub drugi przycisk joysticka, a na konsoli Atari 5200 klawisz [5] kontrolera pozwalają wybrać z którego portu joysticka będzie korzystał gracz. +Klawisz **TAB**, **SELECT** lub drugi przycisk joysticka pozwalają wybrać z którego portu joysticka będzie korzystał gracz. -Klawisz [INVERSE] lub [OPTION] umożliwiają wybór jednego z 3 dostępnych kształtów czołgów. Na konsoli Atari 5200 uzyskuje się to poprzez cykliczne wybieranie kolejnych portów joysticka klawiszem [5]. +Klawisz **INVERSE** lub **OPTION** umożliwiają wybór jednego z 3 dostępnych kształtów czołgów. Jednocześnie z klawiatury można wprowadzić nazwę wybranego gracza. -Po naciśnięciu klawisza [RETURN] lub krótkim naciśnięciu przycisku joysticka ekran przechodzi na następnego gracza aż zostaną wybrane poziomy trudności dla wszystkich. +Po naciśnięciu klawisza **RETURN** lub krótkim naciśnięciu przycisku joysticka ekran przechodzi na następnego gracza aż zostaną wybrane poziomy trudności dla wszystkich. Nazwę gracza można wprowadzać także przy pomocy joysticka. Po wciśnięciu i przytrzymaniu przycisku ponad 1s. za pomocą ruchów góra/dół można zmienić wprowadzaną literę, a lewo/prawo jej pozycję w nazwie. Puszczenie przycisku kończy wprowadzanie nazwy i wraca do wyboru poziomu. Jeśli nazwa nie zostanie wpisana, to zostanie uzupełniona nazwą domyślną. + ## 3. Ekran zakupów (przed każdą rundą) ![Ekran zakupów broni ofensywnych.](images/PurOffensive.png) ![Ekran zakupów broni defensywnych.](images/PurDefensive.png) -Na tym ekranie można dokonywać zakupów broni ofensywnych i defensywnych. Widoczne są tylko te bronie, na które gracza stać wraz z informacją o cenie i ilości jednostek danej broni, którą za tę cenę otrzymamy. Informacje na ekranie nie wymagają chyba więcej opisu. Po listach poruszamy się klawiszami kursora (góra i dół) lub joystickiem, klawisz [TAB] lub strzałka w lewo, czy też ruch joystickiem w lewo lub drugi przycisk joysticka zmieniają ekran na bronie defensywne lub ofensywne, klawisz [SPACJA] lub strzałka w prawo, a także joystick w prawo realizują zakup wskazanej broni. +Na tym ekranie można dokonywać zakupów broni ofensywnych i defensywnych. Widoczne są tylko te bronie, na które gracza stać wraz z informacją o cenie i ilości jednostek danej broni, którą za tę cenę otrzymamy. Informacje na ekranie nie wymagają chyba więcej opisu. Po listach poruszamy się klawiszami kursora (góra i dół) lub joystickiem, klawisz **TAB** lub strzałka w lewo, czy też ruch joystickiem w lewo lub drugi przycisk joysticka zmieniają ekran na bronie defensywne lub ofensywne, klawisz **SPACJA** lub strzałka w prawo, a także joystick w prawo realizują zakup wskazanej broni. -Klawisz [RETURN] lub przycisk joysticka przechodzi do ekranu aktywacji broni defensywnych. +Klawisz **RETURN** lub przycisk joysticka przechodzi do ekranu aktywacji broni defensywnych. ![Ekran aktywacji broni defensywnych.](images/ActDefensive.png) -Na ekranie tym można aktywować zakupione wcześniej bronie defensywne czy też ofensywne. Obsługiwany jest identycznie jak ekran zakupów, jednak [SPACJA] lub strzałka w prawo, a także joystick w prawo realizują aktywacje wskazanej broni. Umożliwia to aktywowanie osłon jeszcze przed rozpoczęciem rundy. +Na ekranie tym można aktywować zakupione wcześniej bronie defensywne czy też ofensywne. Obsługiwany jest identycznie jak ekran zakupów, jednak **SPACJA** lub strzałka w prawo, a także joystick w prawo realizują aktywacje wskazanej broni. Umożliwia to aktywowanie osłon jeszcze przed rozpoczęciem rundy. -Klawisz [RETURN] lub przycisk joysticka przechodzi do ekranu zakupów następnego gracza. +Klawisz **RETURN** lub przycisk joysticka przechodzi do ekranu zakupów następnego gracza. (oczywiście dla graczy komputerowych ten ekran się nie pojawia) + ## 4. Główny ekran gry ![Główny ekran gry.](images/StatusLine.png) W linii statusowej widoczna jest informacja o tym, który z graczy aktualnie może oddać strzał oraz zestaw innych informacji: -* nazwa czołgu gracza +* **Player** - nazwa czołgu gracza * numer aktywnego joysticka lub poziom gracza sterowanego przez komputer (1-**Moron** - 8-**Unknown**), * wybrana aktualnie broń ofensywna (symbol - ilość - nazwa), -* pozostała ilość punktów energii gracza i jeśli ma on aktywną broń defensywną posiadającą swój zasób energii - w nawiasie ten zasób +* **Energy** - pozostała ilość punktów energii gracza i jeśli ma on aktywną broń defensywną posiadającą swój zasób energii - w nawiasie ten zasób -* ustawiony przez gracza kąt nachylenia lufy i kierunek jej nachylenia +* **Angle** - ustawiony przez gracza kąt nachylenia lufy i kierunek jej nachylenia -* ustawiona przez gracza siła strzału (maksymalna siła strzału jest ograniczana przez energię gracza - nie może przekroczyć energii * 10 . Oznacza to, że mając małą ilość energii możemy oddać słabsze strzały +* **Force** - ustawiona przez gracza siła strzału (maksymalna siła strzału jest ograniczana przez energię gracza - nie może przekroczyć energii * 10 . Oznacza to, że mając małą ilość energii możemy oddać słabsze strzały -* numer aktualnej rundy rozgrywki +* **Round** - numer aktualnej rundy rozgrywki -* prędkość i kierunek wiatru +* **Wind** - prędkość i kierunek wiatru * symbol "komputera" jeśli aktywna jest **Auto Defense** -* w nawiasie nazwę aktywnej broni defensywnej - jeśli jest jakaś aktywowana przez gracza +* w nawiasie nazwa aktywnej broni defensywnej - jeśli jest jakaś aktywowana przez gracza Tutaj klawiszologia jest prosta, klawisze kursora lub joystick: lewo/prawo - zmiana kąta nachylenia lufy, góra/dół - zmiana ustawienia siły strzału. -| A800 | funkcja | -|------------------|------------------| -| [SPACJA]/[FIRE] | strzał (zob. ↓) | -| [TAB]/[SELECT] | zmiana broni (↓) | -| [I] | inwentarz (↓) | -| [A]/[OPTION] | defensywa (↓) | -| [M] | wł/wył muzyki | -| [S] | wł/wył dźwięków | -| [START] | tryb turbo (↓) | -| [O] | koniec gry (↓) | -| [START]+[OPTION] | bezw. koniec (↓) | -| [G] | inne kolory (↓) | -| [ESC] | powrót (↓) | -| [Y] | zatwierdzam (↓) | -| [CTRL]+[HELP] | vis. debug (↓) | - -| 5200 | funkcja | -|------------|------------------| -| [FIRE]/[0] | strzał (zob. ↓) | -| [5] | zmiana broni (↓) | -| [9] | inwentarz (↓) | -| [7] | defensywa (↓) | -| [PAUSE] | wł/wył muzyki | -| [RESET] | wł/wył dźwięków | -| [START] | tryb turbo (↓) | -| [3] | koniec gry (↓) | -| brak | bezw. koniec (↓) | -| brak | inne kolory (↓) | -| [*] | powrót (↓) | -| [1] | zatwierdzam (↓) | -| [#] długo | vis. debug (↓) | +| A800 | funkcja | +|--------------|------------------| +| **SPACJA**/**FIRE** | strzał (zob. ↓) | +| **TAB**/**SELECT** | zmiana broni (↓) | +| **I** | inwentarz (↓) | +| **A**/**OPTION** | defensywa (↓) | +| **M** | wł/wył muzyki | +| **S** | wł/wył dźwięków | +| **START** | tryb turbo (↓) | +| **O** | koniec gry (↓) | +| **START**+**OPTION** | bezw. koniec (↓) | +| **G** | inne kolory (↓) | +| **ESC** | powrót (↓) | +| **Y** | zatwierdzam (↓) | +| **CTRL**+**HELP** | vis. debug (↓) | * **strzał**, przycisk joysticka naciśnięte krótko - oddanie strzału * **zmiana broni**, drugi przycisk joysticka - wybór broni ofensywnej (ta opcja nie jest dostępna bezpośrednio standardowym joystickiem - trzeba wybrać Inventory). * **inwentarz**, dłuższe przytrzymanie przycisku joysticka - przejście do Inventory (aktywacji broni). Inventory to ekran (a w zasadzie dwa) bliźniaczo podobny do ekranu zakupów. Zasady poruszania się są identyczne - z tym, że tu nie kupujemy broni, ale wybieramy jedną z ofensywnych, którą będziemy strzelać lub aktywujemy broń defensywną. * **defensywa** - bezpośrednie przejście na ekran Inventory aktywacji broni defensywnych. * **tryb turbo** - przyspiesza/pomija niektóre animacje w grze -* **koniec gry** - wymuszenie zakończenia gry (Game Over). W podsumowaniu wyników nie jest brana pod uwagę przerwana właśnie runda rozgrywki, a wyłącznie rundy zakończone wcześniej. Odpowiada to wciśnięciu klawisza [ESC] z tą różnicą, że wyświetlane jest podsumowanie oraz creditsy. -* **bezw. koniec** - natychmiastowe wymuszenie zakończenia gry (Game Over), tak jak [O], ale bez potwierdzenia. +* **koniec gry** - wymuszenie zakończenia gry (Game Over). W podsumowaniu wyników nie jest brana pod uwagę przerwana właśnie runda rozgrywki, a wyłącznie rundy zakończone wcześniej. Odpowiada to wciśnięciu klawisza **ESC** z tą różnicą, że wyświetlane jest podsumowanie oraz creditsy. +* **bezw. koniec** - natychmiastowe wymuszenie zakończenia gry (Game Over), tak jak **O**, ale bez potwierdzenia. * **inne kolory** - zmienia wariant kolorystyczny gór (3 wersje do wyboru) -* **powrót** - w czasie całej gry w dowolnym momencie (chyba że akurat gra komputer, wtedy czasem trzeba chwilę poczekać) można nacisnąć klawisz [ESC], który umożliwia przerwanie gry i powrót na początek (oczywiście jest zabezpieczenie przed przypadkowym naciśnięciem). +* **powrót** - w czasie całej gry w dowolnym momencie (chyba że akurat gra komputer, wtedy czasem trzeba chwilę poczekać) można nacisnąć klawisz **ESC**, który umożliwia przerwanie gry i powrót na początek (oczywiście jest zabezpieczenie przed przypadkowym naciśnięciem). * **zatwierdzam** - w przypadku pytania o przerwanie lub zakończenie gry - potwierdzenie decyzji * **vis. debug** - przełącza tryb "visual debug". Wizualizuje mierzone odległości, celowanie lasera oraz technikę celowania komputera. Pozostawia bałagan na ekranie, co nie zmienia rozgrywki, tylko ją nieco utrudnia. @@ -167,34 +153,34 @@ Tutaj klawiszologia jest prosta, klawisze kursora lub joystick: lewo/prawo - zmi Jak działa odejmowanie energii i zarabianie kasy: Po każdej rundzie wyliczana jest ilość zdobytych/straconych pieniędzy, robione jest to na podstawie dwóch zmiennych gromadzonych przez każdy z czołgów w trakcie rundy. Te zmienne to: -`gain` - energia "przechwycona" od trafionych czołgów (także jeśli trafimy w samego siebie :) i tu haczyk, jeśli pozostało nam bardzo mało energii opłacalne może być trafienie w siebie mocną bronią! +**gain** - energia "przechwycona" od trafionych czołgów (także jeśli trafimy w samego siebie :) i tu haczyk, jeśli pozostało nam bardzo mało energii opłacalne może być trafienie w siebie mocną bronią! -`lose` - energia stracona w wyniku eksplozji/upadku (i tu ważne - liczona jest całkowita utrata energii nawet jeśli czołg ma w chwili trafienia mniej). +**lose** - energia stracona w wyniku eksplozji/upadku (i tu ważne - liczona jest całkowita utrata energii nawet jeśli czołg ma w chwili trafienia mniej). Dodatkowo czołg, który wygrał rundę, ma parametr gain (przechwyconej od trafionych czołgów energii) zwiększany o pozostałą mu na koniec rundy energię (bo nie zginął i powinien ją mieć - choć bywa też inaczej :) ) Konkretnie: ### Po każdej rundzie: -`money = money + (20 * (gain+energy))` +**money = money + (20 * (gain+energy))** -`money = money - (10 * lose)` +**money = money - (10 * lose)** -`jeśli money <0 to money=0` +**jeśli money < 0 to money = 0** -(na starcie każdej rundy `gain` i `lose` mają wartość 0) +(na starcie każdej rundy **gain** i **lose** mają wartość 0) W czasie rundy, jeśli w wyniku strzału oddanego przez czołg inny czołg zostanie trafiony, czołg oddający strzał "dostaje energię" zabraną czołgowi trafionemu. ### czołg oddający strzał: -`gain = gain + EnergyDecrease` +**gain = gain + EnergyDecrease** ### czołg trafiony: -`lose = lose + EnergyDecrease` +**lose = lose + EnergyDecrease** -gdzie `EnergyDecrease` to utrata energii w wyniku trafienia. +gdzie **EnergyDecrease** to utrata energii w wyniku trafienia. -Oczywiście jednocześnie trafiony czołg traci ilość energii zapisaną w `EnergyDecrease`, z tym że tutaj strata nie może przekroczyć posiadanej energii. +Oczywiście jednocześnie trafiony czołg traci ilość energii zapisaną w **EnergyDecrease**, z tym że tutaj strata nie może przekroczyć posiadanej energii. ## Jak działa trafienie. @@ -202,9 +188,9 @@ Każda broń, która skutkuje eksplozją, ma swój promień rażenia. Po eksplozji każdy czołg w jej zasięgu traci energię. -Działa to tak, że jeśli trafienie jest dokładnie w centralny punkt czołgu, `EnergyDecrease` otrzymuje maksymalną wartość dla danej broni, a z każdym pikselem odległości od centrum czołgu wartość ta jest zmniejszana o 8. +Działa to tak, że jeśli trafienie jest dokładnie w centralny punkt czołgu, **EnergyDecrease** otrzymuje maksymalną wartość dla danej broni, a z każdym pikselem odległości od centrum czołgu wartość ta jest zmniejszana o 8. -Przykładowo: jeśli strzał oddany za pomocą broni Baby Missile trafi idealnie w centrum czołgu, to straci on dokładnie 88 jednostek energii (plus to, co straci spadając po eksplozji). +Przykładowo: jeśli strzał oddany za pomocą broni **Baby Missile** trafi idealnie w centrum czołgu, to straci on dokładnie 88 jednostek energii (plus to, co straci spadając po eksplozji). W przypadku trafienia tą samą bronią w odległości 10-ciu pikseli od centrum czołgu strata ta będzie wynosiła już tyko 8 jednostek. A oto wartości maksymalnego ubytku energii dla poszczególnych broni. Jeśli broń eksploduje kilka razy, każda z eksplozji jest obliczana niezależnie (dodatkowe wartości w tabeli): @@ -242,35 +228,35 @@ A oto wartości maksymalnego ubytku energii dla poszczególnych broni. Jeśli br | Laser | 100 (zob. ↓) | Uwagi: -* **Napalm** - ta broń jest inna i nie jest wyznaczana odległość od centrum, po prostu każdy czołg znajdujący się w zasięgu płomieni traci 40 jednostek energii +* **Napalm** - ta broń jest inna i nie jest wyznaczana odległość od centrum, po prostu każdy czołg znajdujący się w zasięgu płomieni traci 40 jednostek energii. -* **Hot Napalm** - zasada taka jak w Napalm +* **Hot Napalm** - zasada taka jak w Napalm, 80 jednostek. -* **Riot Charge** - nie jest odejmowana energia, ale usuwana jest część gruntu w górę od punktu trafienia w promieniu 31 pikseli +* **Riot Charge** - nie jest odejmowana energia, ale usuwana jest część gruntu w górę od punktu trafienia w promieniu 31 pikseli. -* **Riot Blast** - jak w Riot Charge, tyle że w promieniu 61 pikseli +* **Riot Blast** - jak w Riot Charge, tyle że w promieniu 61 pikseli. -* **Riot Bomb** - nie jest odejmowana energia, ale niszczony jest grunt w promieniu 17 pikseli od punktu trafienia - tak jak w wypadku **Missile**. Broń przydatna do odkopywania się po zasypaniu, bądź podkopywania przeciwnika +* **Riot Bomb** - nie jest odejmowana energia, ale niszczony jest grunt w promieniu 17 pikseli od punktu trafienia - tak jak w wypadku **Missile**. Broń przydatna do odkopywania się po zasypaniu, bądź podkopywania przeciwnika. -* **Heavy Riot Bomb** - jak w Riot Bomb, ale promień eksplozji to 29 pikseli od punktu trafienia - tak jak w wypadku **Nuke** +* **Heavy Riot Bomb** - jak w Riot Bomb, ale promień eksplozji to 29 pikseli od punktu trafienia - tak jak w wypadku **Nuke**. -* **Baby Digger** - nie jest odejmowana energia, ale podkopywana jest część gruntu promieniu 60 pikseli od punktu trafienia +* **Baby Digger** - nie jest odejmowana energia, ale podkopywana jest część gruntu promieniu 60 pikseli od punktu trafienia. -* **Digger** - jak wyżej - większy podkop +* **Digger** - jak wyżej - większy podkop. -* **Heavy Digger** - jak wyżej - największy podkop +* **Heavy Digger** - jak wyżej - największy podkop. -* **Sandhog** - jak wyżej - inny sposób podkopywania +* **Sandhog** - jak wyżej - inny sposób podkopywania. -* **Heavy Sandhog** - jak wyżej - największy podkop +* **Heavy Sandhog** - jak wyżej - największy podkop. * **Dirt Clod** - nie jest odejmowana energia, ale tworzona jest kula gruntu o promieniu 12 pikseli od punktu trafienia. Broń przydatna do zakopywania przeciwnika. -* **Dirt Ball** - jak wyżej, ale promień kuli to 22 piksele +* **Dirt Ball** - jak wyżej, ale promień kuli to 22 piksele. -* **Ton of Dirt** - jak wyżej, ale promień kuli to 31 pikseli +* **Ton of Dirt** - jak wyżej, ale promień kuli to 31 pikseli. -* **Liquid Dirt** - zalewa grunt w punkcie trafienia płynną glebą, wypełniając zagłębienia +* **Liquid Dirt** - zalewa grunt w punkcie trafienia płynną glebą, wypełniając zagłębienia. * **Dirt Charge** - nie jest odejmowana energia, ale usypywany jest dodatkowy grunt w górę od punktu trafienia w promieniu 61 pikseli. Broń przydatna do zakopywania przeciwnika. @@ -279,17 +265,18 @@ Uwagi: * **Laser** - tu także jest inaczej - równo 100 tylko w przypadku bezpośredniego trafienia po prostu odejmujemy 100 jednostek energii - czyli czołg zawsze ginie. -Duże punkty otrzymane przez gracza to liczba czołgów, które zginęły wcześniej niż on. Jeśli któryś z innych czołgów skapitulował wcześniej (Biała Flaga) nie jest doliczany do tych, które zginęły, i nie daje punktów. +Duże punkty otrzymane przez gracza to liczba czołgów, które zginęły wcześniej niż on. Jeśli któryś z innych czołgów skapitulował wcześniej (**White Flag**) nie jest doliczany do tych, które zginęły, i nie daje punktów. Tylko te punkty decydują o kolejności w podsumowaniu. + ## 6. A teraz bronie defensywne: * **White Flag** - powoduje poddanie gracza (może czasem przydać się w sytuacji beznadziejnej). Zaletą jest to, że poddając się nie dajemy dużego punktu przeciwnikom i nie powodujemy, że któryś zyska na tym, że nas zgładzi, ograniczamy też stratę swojej energii, czyli także kasy. I tu także ważna uwaga - to jedyna broń defensywna, którą można dezaktywować. Wystarczy ponownie wejść do inventory i jeszcze raz wybrać jej aktywację. * **Battery** - w momencie aktywacji doładowuje energię czołgu do pełna (99 jednostek). Jest to jedna z trzech broni defensywnych, która nie dezaktywuje innych broni defensywnych w przypadku jej użycia. -* **Hovercraft** - broń umożliwiająca przemieszczanie się czołgu. Posiada własny zasób paliwa, a dodatkowo może być aktywowana wielokrotnie w czasie tej samej tury, a po jej użyciu możemy w tej samej turze aktywować inną broń defensywną i oddać strzał. W wyniku jej użycia czołg uniesie się ponad góry i za pomocą klawiszy kursora lub joysticka: lewo/prawo możemy przemieścić czołg na nową pozycję, a [SPACJA] lub przycisk joysticka powodują wylądowanie czołgu w nowym miejscu. Latać można do chwili skończenia się "paliwa" (prezentowanego na pasku statusu tak jak energia broni defensywnej), a gdy paliwo się skończy, czołg opadnie samodzielnie. Nie da się lądować na innych czołgach. +* **Hovercraft** - broń umożliwiająca przemieszczanie się czołgu. Posiada własny zasób paliwa, a dodatkowo może być aktywowana wielokrotnie w czasie tej samej tury, a po jej użyciu możemy w tej samej turze aktywować inną broń defensywną i oddać strzał. W wyniku jej użycia czołg uniesie się ponad góry i za pomocą klawiszy kursora lub joysticka: lewo/prawo możemy przemieścić czołg na nową pozycję, a **SPACJA** lub przycisk joysticka powodują wylądowanie czołgu w nowym miejscu. Latać można do chwili skończenia się "paliwa" (prezentowanego na pasku statusu tak jak energia broni defensywnej), a gdy paliwo się skończy, czołg opadnie samodzielnie. Nie da się lądować na innych czołgach. * **Parachute** - nie chroni przed ubytkiem energii z powodu sąsiedniej eksplozji, powoduje że nie ubywa energii w czasie JEDNEGO spadania. Po takim upadku dezaktywuje się i trzeba aktywować nowy spadochron. diff --git a/Manuals/manual.asm b/Manuals/manual.asm index 3997c58..62e4de3 100644 --- a/Manuals/manual.asm +++ b/Manuals/manual.asm @@ -1,6 +1,10 @@ icl '../Atari/lib/ATARISYS.ASM' icl '../Atari/lib/MACRO.ASM' +.IFNDEF LANG + .def LANG = "PL" +.ENDIF + screen_height = 26 screen_width = 40 screen = $1000 ; start - 40*screen_height @@ -38,7 +42,7 @@ start mwa #dl dlptrs mva #>WeaponFont chbas - mwa #man_text_en top_src + mwa #man_text top_src vmain VBLANK,7 @@ -107,7 +111,7 @@ scroll_down scc:inc top_src+1 ;adw top_src #screen_width - cpw end_address #man_text_en_end + cpw end_address #man_text_end scc:mwa start_address top_src jmp main_loop @@ -129,8 +133,8 @@ scroll_up sta top_src+1 ;sbw top_src #screen_width - cpw top_src #man_text_en - scs:mwa #man_text_en top_src + cpw top_src #man_text + scs:mwa #man_text top_src jmp main_loop @@ -287,9 +291,13 @@ ticksPerSecond .byte 0 fake_pokey :9 .byte 0 -man_text_en - ins 'manual.bin' ;icl 'man_cart_txt_EN.asm' -man_text_en_end +man_text + .if LANG = "PL" + ins 'MANUAL_PL_A800.bin' ; 'manual.bin' ;icl 'man_cart_txt_EN.asm' + .else + ins 'MANUAL_EN_A800.bin' + .endif +man_text_end .by $ff, $ff opt h- ;RMT module is standard Atari binary file already diff --git a/Manuals/manual.xex b/Manuals/manual.xex deleted file mode 100644 index b6186cb3689407b476740a16c0c31354d9d743f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35714 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

-boIA9zyPvJw50kZ#<_qoOVO$VKjm^?6(>X) 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 diff --git a/Manuals/manual_conv.py b/Manuals/manual_conv.py index ad210af..6407583 100644 --- a/Manuals/manual_conv.py +++ b/Manuals/manual_conv.py @@ -28,7 +28,6 @@ def break_long_string(long_string): long_string = ' ' * (spaces - 1) + long_string[brk:] else: result.append(long_string) - print(result) return result @@ -276,6 +275,7 @@ utf_to_internal = { chr(ord('|')+128): 128+124, 'ǂ': 128+77, # ł 'ˠ': 128+81, # ó + 'Ǜ': 128+84, # ś # chr(ord('Ą')+128): 128+65, # chr(ord('ą')+128): 128+66, # chr(ord('Ć')+128): 128+67, @@ -299,12 +299,17 @@ utf_to_internal = { # convert to SCREENCODES bin_out = bytearray() for line in out2.split('\n'): + # print(line) for i, c in enumerate(line): # print(c, ord(c), utf_to_internal[c]) - bin_out.append(utf_to_internal[c]) + try: + bin_out.append(utf_to_internal[c]) + except KeyError: + print('-'*100, 'ERROR:', c) + bin_out.append(0) if len(line) < 40: # bin_out += bytes(40-len(line)) bin_out.append(255) # save to a file -with open('manual.bin', 'wb') as f: +with open(sys.argv[1].split('.')[0]+'.bin', 'wb') as f: f.write(bin_out) diff --git a/Manuals/manual_pl.xex b/Manuals/manual_pl.xex index e62edeb356440ebb43071ad5c8c843609d78a025..07b808c86d52f6ecb20550c24909edd9b1cec46b 100644 GIT binary patch delta 16433 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%0DOx2ZWR)Af#60R}`VU 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 literal 41875 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