# &killbots;i käsiraamat

Parker
Coates
parker.coates@gmail.com
Marek
Laane

    bald@smail.ee

Tõlge eesti keelde
2008–2009
Parker Coates
&FDLNotice;
2009-07-28
1.1.0

&killbots; on klassikalise BSD mängu `robots` &kde; port.

KDE
kdegames
mäng
Killbots
Strateegia
Üks mängija
Üksikmängija
robotid
robot
kiirrobot
rämpsukuhil
teleport
aurustamine
aurustaja
energia

## Sissejuhatus

### Mängu tüüp:

Strateegia

### Mängijate arv:

Üks

&killbots; on lihtne tapjarobotite vältimise mäng. Kes need robotid lõi ja miks nad on programmeeritud hävitama, ei tea enam keegi. Teada on ainult see, et roboteid on palju ja nende ainuke eesmärk on sinu hävitamine. Sinu õnneks koondas nende looja tähelepanu rohkem kvantiteedile kui kvaliteedile, mistõttu robotite intelligents on väga tilluke. Sinu suur mõistus ja lahe telepordiseade on ainukesed relvad lõpmatu robotitemassi vastu.

### Märkus:

Käsiraamatus esineb sageli selliseid mõisteid, nagu robotid, rämpsukuhilad jne., kuid &killbots;i välimus on igati muudetav. See tähendab, et mängimisel tegelikult nähtavad asjad ei pruugi tingimata kattuda siinkirjeldatuga. Mängimine ise ja strateegia jääb sellest hoolimata samaks isegi siis, kui sinu kangelane on porgand, keda ajavad aias taga röövellikud jänkud.

### Märkus:

&killbots; toetab mitmeid mängutüüpe, mis määravad kindlaks mängu parameetrid ja selle, millised võimalused on mängus kasutada. Käsiraamat püüab olla võimalikult üldine ega kirjeldada konkreetseid mängutüüpe. Nende kirjeldust ja üksikasju saab lugeda &killbots;i seadistustedialoogist, kust leiab andmeid vastava tüübi alusvõrgu suuruse, voorude, energia, hindamise ja muu sellise kohta.

## Kuidas mängida

### Mängu põhitõed

#### Eesmärk:

Jääda vaenlastest hoolimata ellu ja koguda võimalikult palju punkte.

Mänguvälja pilt

&killbots; on käigupõhine mäng, mida mängitakse ristkülikujulisel võrgustikul. Iga rea ja veeru lahtrite arv sõltub konkreetsest mängutüübist. Iga lahter võib sisaldada järgmisi asju:

Kangelane

  Kangelane on see õnnetuke, kes on sattunud ühte ruumi hulga tapjarobotitega. Mängijana on sinu kohus tagada kangelase elus püsimine võimalikult kaua.

  Vooru algul võib kangelane ette võtta kolm tegevust: ta võib jääda oma kohale, liikuda vabasse lahtrisse või sooritada mõne eritoimingu. Täpsemalt kõnelevad sellest osad ja .

Robot

  Robotid on mehaanilised jõhkardid, kelle ainuke soov on lämmatada kangelane oma metalses haardes. Nad ei ole midagi kuulnud kolmest robootika seadusest ning tõenäoliselt lömastaksid kõik, kes püüaks seda neile selgitada.

  Iga robot astub ühe käiguga ühe sammu kangelase suunas. Kui robot asub kangelase kohal, astub ta sammu allapoole. Kui robot asub kangelasest vasakul, astub ta sammu paremale. Kui robot asub kangelasest allpool ja paremal, astub ta sammu diagonaalselt (üles ja vasakule). Kui robotil õnnestub jõuda kangelase lahtrisse, saab kangelane surma ja mäng lõpeb.

Kiirrobot

  Kiirrobotid on tavalise roboti märksa kiiremad versioonid. Iga kangelase käigu ajal suudavad nemad võtta kaks sammu. Õnneks ei ole nende suurem liikuvus sõltuvuses intelligentst, mistõttu tihtipeale neil õnnestub ennast lihtsalt tappa kaks korda kiiremini kui nende aeglasematel vendadel.

  Kõigis mängutüüpides kiirroboteid ei ole.

Rämpsukuhilad

  Kui kaks või rohkem robotit kokku põrkavad, nad hävivad ning tekkinud riismetest kujunevadki rämpsukuhilad. Vaenlased eiravad täielikult nende teel seisvaid rämpsukuhilaid ning saavad surma, kui neile otsa tormavad. Rämpsukuhilad võivad aga osutuda äärmiselt väärtuslikuks, sest neist saab kujundada barrikaadi kangelase ja tema ründajate vahel.

  Mõnes mängutüübis on kangelasel võimalik rämpsukuhilaid lükata. Kangelane võib niisiis neist luua "punkreid", mis pakuvad kaitset mitmest küljest. Mõnes mängutüübis võib rämpsukuhilaid kasutada isegi ründerelvana: selle lükkamine vaenlase peale hävitab roboti ja annab lausa boonust.

### Voorud, hindamine ja energia

Mängu oleku indikaatorid

#### Voorud

&killbots;i mängimine on jagatud voorudeks. Iga vooru algul seisab kangelane keset võrgustikku ning vaenlased paiknevad juhuslikult tema ümber. Voor lõpeb siis, kui kõik vaenlased on hävitatud. Igas uues voorus vaenlaste arv kasvab. Vaenlaste arv ja tüüp sõltub mängutüübist.

Võrgustik täitub vaenlastega, kuni juhtub üks kahest: vaenlased hõivavad üle 50 protsenti lahtritest või proovib kangelane võtta ette turvalise telepordi, aga võrgustikus ei ole turvalisi lahtreid. Kui üks kahest võiimalusest saab teoks, lõpetatakse käimasolev voor ning vaenlaste arv lähtestatakse esimese vooru arvule.

#### Hindamine

&killbots;is ei ole õieti võit võimalik: kangelane püüab lihtsalt võimalikult kaua ellu jääda, kuid paraku saab tema õnn lõpuks ikka otsa. Seepärast on &killbots;i eesmärk koguda enne vältimatut lõppu võimalikult suur tulemus. Kümme parimat tulemust (koos vooruga, milles tulemus saavutati) pannakse kirja edetabelisse.

Punkte saab vaenlase hävitamise eest. Kiirrobot annab tavaliselt rohkem punkte kui tavaline. Boonuseid võib teenida näiteks vaenlase hävitamise eest rämpsukuhilat lükates või vooru äraootamise eest.

#### Energia

Lisaks punktidele võib kangelane koguda ka energiat. Energia võimaldab kangelasele turvalist teleporti ja/või aurustaja kasutamist. Sõltuvalt mängutüübist võidakse energiat mitmel põhjusel juurde anda, sealjuures vooru lõpetamise, rämpsukuhila lükkamise või vaenlaste hävitamise eest vooru ootamisel.

Energiakogus, mida kangelane võib korraga omada, on kirja pandud mängutüübiga määratud maksimumina. Mõnes mängutüübis maksimum tõuseb koos voorude lõpetamisega. Energiaolek on nähtav ainult siis, kui aktiivne mäng sisaldab nii energiat kui ka turvalist teleporti.

### Eritoimingud

Lisaks lihtsale liikumisele lahtrist lahtrisse on kangelase käsutuses kuni neli eritoimingut.

#### Teleport

Kangelane on suutnud kuidagi hankida isikliku telepordiaparaadi. Paraku ei ole see kuigi töökindel, kui seda kasutada ilma energiaallikata. Telepordiaparaadi aktiveerimisel liigutatakse kangelane mõnesse suvaliselt valitud lahtrisse. Kangelane võib teleporti ette võtta nii palju kui süda lustib.

Sihtlahter on kindlasti hõivamata, aga valitseb päris tõsine oht, et naaberlahtris paikneb raevukas robot. Telepordi ohtude tõttu tuleks seda üldiselt pidada viimseks hädaabinõuks, kui muidu ei ole enam kuidagi võimalik kuhugi turvaliselt liikuda.

#### Turvaline teleport

Telepordiaparaadil on ka selline režiim, mis liigutab kangelase samuti juhuslikku, aga turvalisse lahtrisse. Turvaline teleport nõuab aga energiat ja seda enamasti napib. Samas on selge, et võimalus otsustaval hetkel turvaliselt teleporteeruda suurendab tunduvalt kangelase eluiga.

Kõigis mängutüüpides ei ole turvaline teleport lubatud ning mängutüübiti erineb tunduvalt ka energia, mida selleks on vaja.

#### Aurustaja kasutamine

Telepordiaparaadi kolmas režiim ei ole üldse seotud kangelase teleportatsiooniga. See mõnevõrra ebaharilik telepordiviis telepordib kõik kangelase naaberlahtrites paiknevad robotid. Keegi ei tea täpselt, kuhu robotid saadetakse, aga tundub, et igal juhul piisavalt kaugele, nii et nad ei valmista kangelasele rohkem peavalu. Et robotid sõna otseses mõttes haihtuvad ega jäta endast maha rämpsukuhilat, nimetatakse seda aurustajaks ning hindamise seisukohalt käsitatakse aurustatud vaenlasi tapetutena.

Nagu turvaline teleport, nõuab aurustamine energiat. Kõigis mängutüüpides ei ole aurustamine lubatud ning mängutüübiti erineb tunduvalt ka energia, mida selleks on vaja.

#### Vooru lõpu ootamine

Võib tekkida hetk, kus kõik robotid on võimalik hävitada, ilma et kangelane peaks ise üldse liikuma. Sel juhul on võimalik vooru lõpp lihtsalt ära oodata.

##### Vooru lõpu ootamise võimalus

Vooru lõpu ootamine külmutab kangelase paigale, samal ajal kui vaenlased liiguvad edasi. See kestab seni, kuni juhtub üks kahest: vaenlased hävitavad ennast ja voor lõpeb või vaenlasel õnnestub jõuda kangelaseni ja mäng lõpeb. Kui vooru lõpu ootamise käsk on antud, ei saa seda tagasi võtta, nii et enne selle käsu andmist tuleb kindlasti veenduda, et kangelase olukord on tõepoolest turvaline.

Miks peaks siis kasutama toimingut, mis ei võimalda enam ümbermõtlemist? See lisab kindlasti dramaatilisust, aga vahest olulisem on see, et iga vooru lõpu ootamise ajal hävitatud vaenlase eest saab voonust. Boonuse suurus ja tüüp (punktid või energia) sõltuvad mängutüübist.

## Liidese tutvustus

### Liikumise juhtimine

Mängija võib kangelase juhtimiseks kasutada klaviatuuri, hiirt või mõlemat.

#### Liikumise juhtimine klaviatuurilt

Eri liikumistoiminguid on üheksa: vasakule, paremale, üles, alla, neljas suunas diagonaalis ja paigalseis. Igale toimingule saab omistada kaks erinevat klahvi. Vaikimisi on üheksa toimingut seotud numbriklahvistiku üheksa numbriklahviga ning QWERTY klaviatuuri vasakus servas asuvad 3x3 tähtedeplokiga. Kasutajatel võivad muidugi olla erinevad klaviatuurid ning numbriklahvistikku ei pruugi üldse olla, mistõttu toimingute omistamist klahvidele saab vastavalt vajadusele kohandada kiirklahvide seadistamise dialoogis.

Klaviatuurilt võib anda ka kõigi eritoimingute (näiteks telepordi) käske. Neid tutvustab alalõik .

#### Liikumise juhtimine hiirega

Hiire või mõne muu osutusseadmega saab liikumist juhtida omajagu loomulikumalt. Kui kursor liigub üle mänguala, muutub see noolekujuliseks vastavalt sellele, millises suunas kangelasest see asub. Kui näiteks viia kursor kangelasest kõrgemale, võtab see üles osutava noole kuju. Kui kursor viia otse kangelase peale, võtab see paigalseisu näitava kuju.

Klõps hiire vasaku nupuga paneb kangelase astuma osutatud suunas, kui selline liikumine on üldse lubatud. Soovi korral võib hiire vasakule ja paremale nupule omistada ka muid toiminguid &killbots;i seadistustedialoogis. Neiks võivad olla nii toimingud, mida sisaldab kui ka lisavõimalus "sammu kordus". Viimane tähendab, et kangelane liigub osutatud suunas mitu sammu, kuni tema ette kerkib takistus või liikumise jätkamine pole enam turvaline. Sammu korduse saab välja lülitada, kui liikumise ajal uuesti klõpsata.

### Menüü Mäng

&Ctrl;N Mäng Uus

  Alustab uut mängu ja tühistab kõik parasjagu käimas olevad mängud.

&Ctrl;H Mäng Näita rekordeid

  Avab rekordeid näitava dialoogi.

&Ctrl;Q Mäng Välju

  Lõpetab &killbots;i töö.

### Menüü Käik

R Käik Teleport

  Telepordib kangelase võrgustiku juhuslikult valitud tühja lahtrisse. Vaata ka .

T Käik Turvaline teleport

  Telepordib kangelase juhuslikult valitud tühja lahtrisse, kus ta on kindlasti antud käigul kaitstud rünnaku eest. Vaata ka .

Tühikuklahv Käik Teleport (võimaluse korral turvaline)

  Puhtalt mugavuse pärast: telepordib kangelase turvaliselt, kui on piisavalt energiat, vastasel juhul lihtsalt telepordib.

F Käik Aurustaja

  Hävitab kõik kangelase naaberlahtrites olevad robotid. Vaata ka .

Y Käik Vooru lõpu ootamine

  Külmutab kangelase kuni vooru lõpuni paigale. Vaata ka .

### Menüü Seadistused

Seadistused Tööriistariba näitamine

  Näitab või peidab peamise tööriistariba.

Seadistused Kiirklahvide seadistamine...

  Avab &kde; tavapärase kiirklahvide seadistamise dialoogi. See võimaldab muuta kas või kõiki &killbots;is kasutatavaid kiirklahve, sealhulgas neid, millega saab juhtida liikumist.

Seadistused Tööriistaribade seadistamine...

  Avab &kde; tavapärase tööriistaribade seadistamise dialoogi. See võimaldab määrata, milliseid toiminguid näidatakse &killbots;i tööriistaribal.

Seadistused &killbots;i seadistamine...

  Avab &killbots;i seadistustedialoogi, kus saab määrata mängu parameetreid, valida teistsugused mängureeglid või muuta mängu teemat.

### Menüü Abi

&help.menu.documentation;

## &killbots;ist arendajatele

Aajahuvilised võivad &killbots;i kohandada peamiselt kahel viisil: teemad ja reeglid.

### Kohandatud &killbots;i teema loomine

Nagu teiste &kde; mängude puhul, koosneb ka &killbots;i teema kolmest failist.

#### Töölauafail

.desktop-fail järgib standardset `INI` süntaksit. Võtme ja väärtuse paaridesse salvestatakse teema teave ning viited teistele teemasse kaasatud failidele. Järgnev näide on pärit vaiketeemast.

##### Teema töölauafaili näide

    [KGameTheme]
    Name=Example Theme
    Description=An example theme used to demonstrate theme creation. This one features pirates.
    Author=Mr. Artist
    AuthorEmail=mrartist@example.com
    Type=SVG
    FileName=example.svg
    Preview=example.png

Esimesed neli parameetrit sisaldavad teema metaandmeid ja on enesestmõistetavad. &killbots;i teema korral peab parameeter `Type` alati olema `SVG`. Viimased kaks parameetrit sisaldavad kahe muu teemasse kuuluva faili nimesid. See, et kõik kolm faili lähtuks ühesugusest nimekujust, ei ole küll kohustuslik, aga on ühtluse huvides väga soovitatav.

#### Eelvaatlusefail

Eelvaatlusefail on lihtsalt `PNG`-fail, mis sisaldab teema eelvaatlust. Eelvaatlusepildi mõõtmed peaksid olema 240x140 pikslit ning selle kujundus vastama võimalikult täpselt vaiketeema eelvaatlusele, et teemasid oleks võimalik teemavalijas mõistlikult võrrelda.

#### SVG-fail

SVG-fail on skaleeritav vektorgraafikapilt, mis sisaldab teemas kasutatavaid tegelikke graafilisi elemente. Fail võib olla kas tihendamata `.svg` või tihendatud `.svgz` vormingus. Iga mängu elementi tuvastab SVG-failis unikaalne ID. Uue teema loomisel on kõige hõlpsam alustada olemasolevast teemast ning asendada selles elemente, kuni uus teema on saanud soovitava välimuse. SVG-fail peab sisaldama järgmisi elemente:

`background`

  Pilt, mida kuvatakse mänguala võrgustiku taustal.

`status`

  Kast, milles kuvatakse aktiivset vooru, tulemust, vaenlaste arvu ja energiat.

`text`

  Selle elemendi täitmiseks kasutatava värviga kuvatakse teksti olekukastides.

`cell`

  Võrgustiku üksiklahter.

`hero`

  Mängija juhitav tegelane.

`enemy`

  Põhivaenlane.

`fastenemy`

  Kiirem vaenlane.

`junkheap`

  Vaenlaste kokkupõrkel tekkinud rämps.

`cursor0`

  Liikumist paremale tähistav kursor.

`cursor1`

  Diagonaalset liikumist üles ja paremale tähistav kursor.

`cursor2`

  Liikumist üles tähistav kursor.

`cursor3`

  Diagonaalset liikumist üles ja vasakule tähistav kursor.

`cursor4`

  Liikumist vasakule tähistav kursor.

`cursor5`

  Diagonaalset liikumist alla ja vasakule tähistav kursor.

`cursor6`

  Liikumist alla tähistav kursor.

`cursor7`

  Diagonaalset liikumist alla ja paremale tähistav kursor.

`cursor8`

  Paigale jäämist tähistav kursor.

#### Kohandatud teema paigaldamine

Et &killbots; leiaks uue teema üles ja hakkaks seda kasutama, peavad failid paiknema kindlas kataloogis. Teema paigaldamiseks ainult aktiivsele kasutajale kopeeri töölaua-, eelvaatluse- ja SVG-fail kataloogi `$`KDEHOME`/share/apps/killbots/themes`. Teema muutmiseks kättesaadavaks kogu süsteemis paigalda failid kataloogi ```kde-config --prefix``/share/apps/killbots/themes`. Pane tähele, et see nõuab tõenäoliselt administraatori õigusi.

### Kohandatud mängutüübi loomine

#### Reeglite töölauafail

Uue mängutüübi loomine &killbots;ile on imelihtne, eriti kui võtta eeskujuks juba olemasolev reeglistik. Reeglid on salvestatud lihtsa töölauafailina, milles parameetrid ja metaandmed on antud võtme ja väärtuse paaridena.

##### &killbots;i vaikimisi mängutüüp

    [KillbotsRuleset]
    Name=Killbots
    Name[gl]=Robots asasinos
    Author=Parker Coates
    AuthorContact=parker.coates@gmail.com
    Description=<qt><p>The default Killbots game type.</p><p>Includes a medium size grid, safe teleports, fast enemies and pushable junkheaps.</p></qt>
    Description[gl]=<qt><p>O xogo tipo Killbots por omisión.</p><p>Inclúe unha grella mediana, teleportacións seguras, enemigos rápidos e chatarra que se pode empurrar.</p></qt>
    Rows=16
    Columns=16
    EnemiesAtGameStart=8.0
    EnemiesAddedEachRound=4.0
    FastEnemiesAtGameStart=-2.0
    FastEnemiesAddedEachRound=2.0
    EnergyEnabled=true
    EnergyAtGameStart=0
    EnergyAddedEachRound=0
    MaxEnergyAtGameStart=12.0
    MaxEnergyAddedEachRound=0.0
    SafeTeleportEnabled=true
    CostOfSafeTeleport=1
    VaporizerEnabled=false
    CostOfVaporizer=0
    PushableJunkheaps=Many
    SquaskKillsEnabled=true
    JunkheapsAtGameStart=0.0
    JunkheapsAddedEachRound=0.0
    PointsPerEnemyKilled=5
    PointsPerFastEnemyKilled=10
    WaitKillPointBonus=0
    WaitKillEnergyBonus=1
    SquashKillPointBonus=0
    SquashKillEnergyBonus=1

Pane tähele, et kõik tekstiparameetrid peavad olema kirja pandud Ameerika inglise keeles. Nagu näitestki näha, saab töölauafailile lisada tõlkeid, kui korrata võtit ja lisata nurksulgudesse vastava keele kood. Pane tähele ka seda, et kirjelduse väljal `Description` saab kasutada vormindatud teksti, pannes väärtuse siltide <qt> vahele.

Reeglistik peab sisaldama kõiki järgnevaid parameetreid:

`Name`

  Reeglistiku nimi, nagu seda näeb reeglistiku valijas ja edetabelis.

`Author`

  Reeglistiku looja.

`AuthorContact`

  Looja kontaktandmed, tavaliselt e-posti aadress.

`Description`

  Reeglistiku kirjeldus. See peaks andma korraliku ülevaate mängutüübist, aga siin ei ole mõtet kirjeldada iga parameetri väärtust, sest selleks on mõeldud üksikasjade dialoog.

`Rows`

  Mängu võrgustiku ridade arv.

`Columns`

  Mängu võrgustiku veergude arv.

`EnemiesAtGameStart`

  Tavaliste vaenlaste arv võrgustikus esimese vooru algul.

`EnemiesAddedEachRound`

  Iga vooru algul lisanduvate tavaliste vaenlaste arv.

`FastEnemiesAtGameStart`

  Kiirete vaenlaste arv võrgustikus esimese vooru algul.

`FastEnemiesAddedEachRound`

  Iga vooru algul lisanduvate kiirete vaenlaste arv.

`EnergyEnabled`

  Kui selle väärtus on `false` (väär), saab kangelane teenida või kulutada energiat.

`EnergyAtGameStart`

  Kangelasele esimese vooru algul antava energia kogus.

`EnergyAddedEachRound`

  Kangelasele iga vooru algul antava lisaenergia kogus.

`MaxEnergyAtGameStart`

  Maksimumenergia, mis võib kangelasel olla esimese vooru algul.

`MaxEnergyAddedEachRound`

  Maksimumenergia muutumise võimalus iga vooru algul.

`SafeTeleportEnabled`

  Kui selle väärtuseks on määratud `false` (väär), on turvaline teleport keelatud.

`CostOfSafeTeleport`

  Energiakogus, mida nõuab turvaline teleport.

`VaporizerEnabled`

  Kui selle väärtuseks on määratud `false` (väär), on aurustamine keelatud.

`CostOfVaporizer`

  Energiakogus, mida nõuab aurustaja kasutamine.

`PushableJunkheaps`

  Rämpsukuhilate arv, mida võib liigutada ühe tõukega. Võimalikud väärtused on `None` (puudub), `One` (üks) ja `Many` (palju).

`SquaskKillsEnabled`

  Kui selle väärtus on tõene, võib kangelane vaenlasi hävitada neile rämpsukuhilaid peale lükates.

`JunkheapsAtGameStart`

  Võrgustikku seatud rämpsukuhilate arv esimese vooru algul.

`JunkheapsAddedEachRound`

  Võrgustikku lisatavate rämpsukuhilate arv iga vooru algul.

`PointsPerEnemyKilled`

  Punktide arv, mida saab tavalise vaenlase hävitamise eest.

`PointsPerFastEnemyKilled`

  Punktide arv, mida saab kiire vaenlase hävitamise eest.

`WaitKillPointBonus`

  Punktide arv, mida saab vaenlase hävitamise eest vooru lõpu ootamise ajal.

`WaitKillEnergyBonus`

  Boonusenergiaühikute arv, mida saab vaenlase hävitamise eest vooru lõpu ootamise ajal.

`SquashKillPointBonus`

  Boonuspunktide arv, mida saab vaenlase hävitamise eest rämpsukuhilaga.

`SquashKillEnergyBonus`

  Boonusenergiaühikute arv, mida saab vaenlase hävitamise eest rämpsukuhilaga.

#### Kohandatud mängutüübi paigaldamine

Et &killbots; leiaks uue mängutüübi üles ja hakkaks seda kasutama, peavad failid paiknema kindlas kataloogis. Mängutüübi paigaldamiseks ainult aktiivsele kasutajale kopeeri fail kataloogi `$`KDEHOME`/share/apps/killbots/rulesets`. Mängutüübi muutmiseks kättesaadavaks kogu süsteemis paigalda failid kataloogi ```kde-config --prefix``/share/apps/killbots/rulesets`. Pane tähele, et see nõuab tõenäoliselt administraatori õigusi.

## Autorid ja litsents

&killbots;

Rakenduse autoriõigus 2007–2009: Parker Coates parker.coates@gmail.com

Dokumentatsiooni autoriõigus 2008–2009: Parker Coates parker.coates@gmail.com

Tõlge eesti keelde: Marek Laane bald@smail.ee

&underFDL; &underGPL;

## Paigaldamine

### &killbots;i hankimine

&install.intro.documentation;

### Kompileerimine ja paigaldamine

&install.compile.documentation;

&documentation.index;