<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Portuguese "INCLUDE">
]>

<book id="killbots" lang="&language;">

<bookinfo>
  <title
>O Manual do &killbots;</title>

  <authorgroup>
    <author
><personname
> <firstname
>Parker</firstname
> <surname
>Coates</surname
> </personname
> <email
>parker.coates@kdemail.net</email
> </author>

    <othercredit role="translator"
><firstname
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>zepires@gmail.com</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 
  </authorgroup>

  <copyright>
    <year
>2008&ndash;2009</year>
    <holder
>Parker Coates</holder>
  </copyright>

  <legalnotice
>&FDLNotice;</legalnotice>

  <date
>2016-05-09</date>
  <releaseinfo
>1.2.0 (Aplicações 16.04)</releaseinfo>

  <abstract>
    <para
>O &killbots; é uma versão para o &kde; do jogo de consola clássico do BSD que é o <command
>robots</command
>.</para>
  </abstract>

  <keywordset>
    <keyword
>KDE</keyword>
    <keyword
>kdegames</keyword>
    <keyword
>jogo</keyword>
    <keyword
>Killbots</keyword>
    <keyword
>Estratégia</keyword>
    <keyword
>Um jogador</keyword>
    <keyword
>Um jogador</keyword>
    <keyword
>robots</keyword>
    <keyword
>robot</keyword>
    <keyword
>robot rápido</keyword>
    <keyword
>monte de lixo</keyword>
    <keyword
>tele-transporte</keyword>
    <keyword
>vaporizar</keyword>
    <keyword
>vaporizador</keyword>
    <keyword
>energia</keyword>
  </keywordset>

</bookinfo>

<chapter id="introduction">
  <title
>Introdução</title>

  <note>
    <title
>Tipo de jogo:</title>
    <para
>Estratégia</para>
  </note>

  <note>
    <title
>Número de jogadores:</title>
    <para
>Um</para>
  </note>

  <para
>O &killbots; é um jogo simples onde poderá fugir de robots assassinos. Quem criou os robots e porque foram programados para destruir, ninguém o sabe. Tudo o que se sabe é que eles são numerosos e o objectivo deles é destruí-lo a si. Felizmente para o jogador, o seu criador focou-se na quantidade em vez da qualidade e, em função disso, os robots têm uma séria falta de inteligência. A sua disposição superior e um dispositivo de tele-transporte útil são as suas únicas armas contra a corrente interminável de autómatos sem mente.</para>

  <note>
    <title
>Nota:</title>
    <para
>Esta documentação refere-se com frequência aos <quote
>robots</quote
>, <quote
>montes de lixo</quote
>, etc., mas o &killbots; pode ser altamente configurável a nível visual. Isto significa que as imagens do jogo que pode ver durante o jogo poderão não corresponder às futuristas que aqui se encontram. O tipo de jogo e as estratégias, contudo, manter-se-ão, mesmo que o seu herói seja uma cenoura a ser perseguida num jardim por coelhos esfomeados.</para>
  </note>

  <note>
    <title
>Nota:</title>
    <para
>O &killbots; suporta diversos conjuntos de regras que controlam os parâmetros do jogo e que determinam as funcionalidades do jogo incluídas. Esta documentação tenta ser genérica e não específica para um determinado conjunto de regras. Veja a descrição do seu conjunto de regras actual, na janela para Configurar o &killbots;, para informações mais detalhadas, nomeadamente sobre a mecânica do jogo, o tamanho da grelha, as jogadas, a pontuação, a energia, etc.</para>
  </note>

</chapter>

<chapter id="howto">
  <title id="howto-title"
>Como Jogar</title>

  <sect1 id="gameplay-basics">
    <title
>Regras Básicas do Jogo</title>

    <note>
      <title
>Objectivo:</title>
      <para
>Sobreviva a diversas sequências de inimigos, acumulando ao mesmo tempo um recorde.</para>
    </note>

    <para
><screenshot
><mediaobject>
      <imageobject
><imagedata fileref="grid.png" format="PNG"/></imageobject>
      <textobject
><phrase
>Imagem da grelha do jogo</phrase
></textobject>
    </mediaobject
></screenshot
></para>

    <para
>O &killbots; é um jogo por turnos, jogado numa <firstterm
>grelha</firstterm
> rectangular de <firstterm
>células</firstterm
>. O número de linhas e colunas da grelha é baseado no conjunto de regras em uso. Cada célula poderá conter um dos seguintes itens: <variablelist>
        <varlistentry>
          <term
><firstterm
>Herói</firstterm
> <inlinemediaobject
><imageobject
><imagedata fileref="hero.png" format="PNG"/></imageobject
></inlinemediaobject
></term>
          <listitem>
            <para
>O herói é a alma errante que se encontra presa num quarto com vários robots assassinos. Como jogador, o seu objectivo é garantir que permanece vivo durante o máximo de tempo possível.</para>
            <para
>No início de cada <firstterm
>turno</firstterm
>, o herói poderá efectuar entre um de três tipos de acções: poderá ficar onde está, poderá ir para uma célula adjacente ou poderá ainda efectuar uma acção especial. Veja em <link linkend="movement-controls" endterm="movement-controls-title"
></link
> ou <link linkend="special-actions" endterm="special-actions-title"
></link
>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
><firstterm
>Robot</firstterm
> <inlinemediaobject
><imageobject
><imagedata fileref="enemy.png" format="PNG"/></imageobject
></inlinemediaobject
></term>
          <listitem>
            <para
>Os robots são homens mecânicos que apenas desejam esmagá-lo com a sua fúria metálica. Nunca ouviram falar das "Três Leis da Robótica" e, como tal, poderão provavelmente esmagar toda a gente que lhas tente explicar.</para>
            <para
>Cada 'robot' irá fazer um movimento único em direcção ao herói em cada turno. Se o 'robot' estiver por cima do herói, irá começar a descer. Se estiver à esquerda, deslocar-se-á para a direita. Se estiver em baixo e à direita, deslocar-se-á na diagonal para cima e para a esquerda. Se o 'robot' vier a ocupar a mesma célula que o herói, este será esmagado e o jogo irá terminar.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
><firstterm
>Robot Rápido</firstterm
> <inlinemediaobject
><imageobject
><imagedata fileref="fastenemy.png" format="PNG"/></imageobject
></inlinemediaobject
></term>
          <listitem>
            <para
>Os 'robots' rápidos são uma versão muito mais acelerada do 'robot' básico. Por cada jogada que o herói faça, eles avançam dois passos. Felizmente, a sua mobilidade aumentada não foi associada a uma inteligência aumentada; muitas das vezes acabam por se destruir uns aos outros.</para>
            <para
>Nem todos os tipos de jogos incluem 'robots' rápidos.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
><firstterm
>Monte de Lixo</firstterm
> <inlinemediaobject
><imageobject
><imagedata fileref="junkheap.png" format="PNG"/></imageobject
></inlinemediaobject
></term>
          <listitem>
            <para
>Quando dois ou mais inimigos colidem, eles são destruídos e os detritos resultantes produzem um monte de lixo. Os inimigos ignoram de forma cega os montes do lixo no seu caminho e são destruídos se chocarem com eles. Poderá achar os montes de lixo bastante úteis, dado que poderão servir de barreiras entre si e os seus atacantes.</para>
            <para id="pushing-junkheaps"
>Alguns conjuntos de regras permitem que o herói <firstterm
>empurre</firstterm
>  os montes de lixo na grelha. O herói poderá então usar os montes de lixo para construir <quote
>bunkers</quote
> ou abrigos que ofereçam protecção de vários lados. Os montes de lixo poderão inclusive ser usados de forma ofensiva, em alguns conjuntos de regras. Se empurrar um monte de lixo sobre um inimigo, irá esmagá-lo e isso poderá até resultar num bónus.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </para>
  </sect1>

  <sect1 id="rounds-scoring-energy">
    <title
>Jogadas, Pontuação e Energia</title>

    <para
><screenshot
><mediaobject>
      <imageobject
><imagedata fileref="status.png" format="PNG"/></imageobject>
      <textobject
><phrase
>Os indicadores de estado do jogo</phrase
></textobject>
    </mediaobject
></screenshot
></para>

    <sect2>
      <title
>Jogadas</title>
      <para
>A actuação em jogo no &killbots; está dividida por <firstterm
>rondas</firstterm
>. Cada ronda começa com o herói no meio e com inimigos dispostos de forma aleatória em torno dele. A ronda termina quando todos os inimigos tiverem sido destruídos. À medida que cada ronda vai terminando, o número de inimigos aumenta. O número e tipo de inimigos adicionados são dependentes do conjunto de regras.</para>
      <para
>A grelha irá continuar a preencher-se com inimigos, até que uma de duas coisas aconteça: os inimigos ocuparem mais de 50 por cento das células ou for tentado um tele-transporte seguro e já não existam células seguras na grelha. Nessa altura, a ronda actual é abandonada e o número de inimigos é reposto com a quantidade da ronda 1.</para>
    </sect2>

    <sect2>
      <title
>Pontuação</title>
      <para
>Não existe propriamente o conceito de ganhar no &killbots;; o herói tenta sobreviver o máximo possível, mas a realidade depressiva é que, no fim, a sua sorte esgotar-se-á. Como tal, o objectivo do &killbots; é acumular a <firstterm
>pontuação</firstterm
> máxima possível, antes de acontecer o inevitável. As dez melhores pontuações (em conjunto com a ronda atingida) são registadas na tabela de recordes.</para>
      <para
>Irá ganhar pontos no caso de destruir os inimigos. Os 'robots' rápidos normalmente valem mais que os 'robots' normais. Também pode ganhar pontos de bónus pelos inimigos destruídos enquanto <link linkend="wait-out-round"
>espera na ronda</link
> ou <link linkend="pushing-junkheaps"
>empurra um monte de lixo</link
>.</para>
    </sect2>

    <sect2 id="energy">
      <title
>Energia</title>
      <para
>Para além dos pontos, o herói também poderá recolher <firstterm
>energia</firstterm
> à medida que o jogo evolui. A energia permite ao herói efectuar <link linkend="teleport-safely"
>tele-transportes seguros</link
> e/ou usar o <link linkend="vaporizer"
>vaporizador</link
>. Dependendo do conjunto de regras, a energia poderá ser ganha por uma variedade de razões, inclusive a finalização de uma ronda, <link linkend="pushing-junkheaps"
>por empurrar um monte de lixo</link
> ou por destruir os inimigos enquanto <link linkend="wait-out-round"
>espera</link
>.</para>
      <para
>A quantidade de energia máxima que o herói poderá armazenar é determinada por um valor do conjunto de regras. Em alguns tipos de jogos, o valor máximo vai aumentando à medida que vai avançando nos níveis. O estado da energia só é apresentado se o conjunto de regras incluir a energia e os tele-transportes seguros.</para>
    </sect2>
  </sect1>

  <sect1 id="special-actions">
    <title id="special-actions-title"
>Acções Especiais</title>
    <para
>Para além dos simples movimentos de células para células, o herói tem quatro acções especiais à sua disposição.</para>

    <sect2 id="teleport">
      <title
>Tele-Transporte</title>
      <para
>O herói conseguiu de alguma forma atingir um tele-transporte pessoal. Infelizmente, não é muito fiável. Se activar o tele-transporte, fará com que o herói seja transportado para uma célula qualquer, escolhida aleatoriamente na grelha. Não existe limite para o número de tele-transporte que o herói poderá efectuar.</para>
      <para
>A célula de destino está garantida como estando desocupada, mas existe uma boa hipótese que esta esteja adjacente a um herói enfurecido. Devido ao risco inerente do tele-transporte, este deverá ser usado como manobra de último recurso, quando já não existirem mais jogadas seguras possíveis.</para>
    </sect2>

    <sect2 id="teleport-safely">
      <title
>Tele-Transporte Seguro</title>
      <para
>O tele-transporte tem de facto um segundo modo de operação, no qual irá transportar o herói para uma célula escolhida de forma aleatória mas segura. O tele-transporte seguro necessita de alguma <link linkend="energy"
>energia</link
>, sendo que esta normalmente tem pouca disponível. Obviamente, a capacidade do tele-transporte seguro poderá, em momentos-chave, aumentar o tempo de vida do herói.</para>
      <para
>Nem todos os conjuntos de regras permitem o tele-transporte seguro e os detalhes de como a energia é adquirida variam entre tipos de jogos.</para>
    </sect2>

    <sect2 id="vaporizer">
      <title
>Usar o Vaporizador</title>
      <para
>A terceira utilização para o dispositivo de tele-transporte não transporta de facto o herói, de todo. Este modo pouco comum de operação transporta todos os 'robots' nas células adjacentes ao herói. Ninguém irá saber de facto para onde os 'robots' serão transportados, mas supõe-se suficientemente longe, de modo a não incomodar o herói tão cedo. Dado que os 'robots' desaparecem no éter, sem deixarem um monte de lixo, este modo é chamado de <quote
>vaporizador</quote
> e os inimigos despachados pela vaporização contam como mortos, para fins de pontuação.</para>
      <para
>Como o tele-transporte seguro, a utilização do vaporizador irá necessitar de <link linkend="energy"
>energia</link
>. Nem todos os tipos de jogos incluem o vaporizador, assim como a quantidade de energia necessária para o usar poderá variar entre tipos de jogos.</para>
    </sect2>

    <sect2 id="wait-out-round">
      <title
>Jogada de Espera</title>
      <para
>Poderá haver uma altura em que a grelha está disposta de tal forma que todos os 'robots' poderão ser destruídos sem que o herói se tenha de mover sequer. Nessa situação, terá a opção de esperar nessa ronda.</para>
      <example>
        <title
>Uma Oportunidade de Espera no Jogo</title>
        <para
><screenshot
><mediaobject>
          <imageobject
><imagedata fileref="waitoutround.png" format="PNG"/></imageobject>
        </mediaobject
></screenshot
></para>
      </example>
      <para
>A espera na jogada fará com que o herói fique quieto no lugar, enquanto os inimigos continuam o seu movimento normal. Isto continua até que uma de duas situações aconteça: os inimigos se destruam entre si e a ronda termine, ou então se um inimigo conseguir atingir o herói e o jogo termine, nesse caso. Logo que um comando de espera seja emitido, não poderá ser cancelado, pelo que deverá estar certo que o herói esteja, de facto, seguro.</para>
      <para
>Então porque é que iria tomar uma acção que elimina a oportunidade de mudar de ideias? Bom, adiciona algum floreado e drama ao fim de uma ronda; porém, mais importante, existe um bónus que é ganho por cada inimigo destruído enquanto se espera na ronda. O tamanho e tipo (pontos ou energia) do bónus são determinados pelo tipo de jogo.</para>
    </sect2>
  </sect1>

</chapter>

<chapter id="interface-overview">
  <title
>Apresentação à Interface</title>

  <sect1 id="movement-controls">
    <title id="movement-controls-title"
>Controlos de Movimento</title>
    <para
>O jogador tem a opção de usar o teclado, o rato ou ambos para controlar o herói.</para>
    <sect2 id="keyboard-movement">
      <title id="keyboard-movement-title"
>Controlos de Movimento pelo Teclado</title>
      <para
>Existem nove acções de movimento: esquerda, direita, cima, baixo, as quatro diagonais e parar. Cada uma destas acções poderá ter duas teclas diferentes atribuídas. Por omissão, estas nove acções estão atribuídas às nove teclas do teclado numérico e a um bloco de 3 por 3 letras no extremo esquerdo de um teclado QWERTY. Obviamente, os utilizadores que usem um teclado diferente ou que não tenham um teclado numérico poderão modificar estas combinações de teclas com a janela para Configurar os Atalhos.</para>
      <para
>Cada um dos comandos de movimentos especiais (como o tele-transporte) também poderão ser invocados a partir do teclado. Veja como em <link linkend="move-menu"
>Mover</link
>.</para>
    </sect2>
    <sect2 id="mouse-movement">
      <title id="mouse-movement-title"
>Controlos de Movimento com o Rato</title>
      <para
>O rato (ou qualquer dispositivo semelhante) pode ser usado para navegar de forma mais natural e intuitiva. À medida que o cursor percorre a área de jogo, o mesmo cursor irá mudar para indicar a direcção relativa desde o cursor até ao herói. Por exemplo, se mover o cursor para o espaço por cima do herói, irá mudar o cursor para uma seta para cima. Se o cursor estiver colocado exactamente em cima do herói, o cursor muda para indicar que não haverá movimento.</para>
      <para
>Ao carregar uma única vez com o rato, fará com que o herói avance na direcção indicada (desde que seja permitido um passo nesse sentido). Por conveniência, poderá associar acções adicionais aos botões do meio e direito do rato na <link linkend="configure-killbots"
>janela para Configurar o &killbots;</link
>. Estas acções incluem as apresentadas em <link linkend="move-menu"
>Mover</link
>, assim como opções adicionais: Passo Repetido. Se efectuar um passos repetido, fará com que o herói se desloque na direcção indicada durante várias jogadas consecutivas, até que atinja um obstáculo ou até que o movimento contínuo se torne inseguro. Poderá também interromper um passo repetido em curso se carregar de novo no rato enquanto a jogada estiver em curso.</para>
      <para
></para>
    </sect2>
  </sect1>

  <sect1 id="game-menu">
    <title
>Opções do Menu</title>

    <variablelist>
      <varlistentry>
        <term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;<keycap
>N</keycap
></keycombo
></shortcut
> <guimenu
>Jogo</guimenu
> <guimenuitem
>Novo</guimenuitem
> </menuchoice
></term>
        <listitem
><para
><action
>Inicia um jogo novo, esquecendo a evolução actual do jogo.</action
></para
></listitem>
      </varlistentry>
      <varlistentry>
        <term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;<keycap
>H</keycap
></keycombo
></shortcut
> <guimenu
>Jogo</guimenu
> <guimenuitem
>Mostrar os Recordes</guimenuitem
> </menuchoice
></term>
        <listitem
><para
><action
>Mostra a janela de recordes, contendo as pontuações anteriores.</action
></para
></listitem>
      </varlistentry>
      <varlistentry>
        <term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;<keycap
>Q</keycap
></keycombo
></shortcut
> <guimenu
>Jogo</guimenu
> <guimenuitem
>Sair</guimenuitem
> </menuchoice
></term>
        <listitem
><para
><action
>Sai do &killbots;.</action
></para
></listitem>
      </varlistentry>

      <varlistentry id="move-menu">
        <term
><menuchoice
><shortcut
><keycap
>R</keycap
></shortcut
> <guimenu
>Mover</guimenu
> <guimenuitem
>Tele-transporte</guimenuitem
> </menuchoice
></term>
        <listitem
><para
><action
>Tele-transporta o herói para uma célula aleatória e vazia do campo de jogo.</action
> Veja como em <link linkend="teleport" endterm="special-actions-title"
></link
>.</para
></listitem>
      </varlistentry>
      <varlistentry>
        <term
><menuchoice
><shortcut
><keycap
>T</keycap
></shortcut
> <guimenu
>Mover</guimenu
> <guimenuitem
>Tele-transportar em Segurança</guimenuitem
> </menuchoice
></term>
        <listitem
><para
><action
>Tele-transporta o herói para uma célula vazia e aleatória que se garanta como sendo segura de ataques nessa jogada.</action
> Veja em <link linkend="teleport-safely" endterm="special-actions-title"
></link
>.</para
></listitem>
      </varlistentry>
      <varlistentry>
        <term
><menuchoice
><shortcut
><keycap
>Espaço</keycap
></shortcut
> <guimenu
>Mover</guimenu
> <guimenuitem
>Tele-transportar em Segurança se Possível</guimenuitem
> </menuchoice
></term>
        <listitem
><para
>Uma acção de conveniência. <action
>Tele-transporta o herói em segurança, se isso for possível, caso contrário apenas o tele-transporta de forma aleatória.</action
></para
></listitem>
      </varlistentry>
      <varlistentry>
        <term
><menuchoice
><shortcut
><keycap
>F</keycap
></shortcut
> <guimenu
>Mover</guimenu
> <guimenuitem
>Vaporizador</guimenuitem
> </menuchoice
></term>
        <listitem
><para
><action
>Destrói todos os 'robots' nas células adjacentes ao herói</action
> Veja em <link linkend="vaporizer" endterm="special-actions-title"
></link
>.</para
></listitem>
      </varlistentry>
      <varlistentry>
        <term
><menuchoice
><shortcut
><keycap
>V</keycap
></shortcut
> <guimenu
>Mover</guimenu
> <guimenuitem
>Esperar a Jogada de Saída</guimenuitem
> </menuchoice
></term>
        <listitem
><para
><action
>Faz com que o herói fique fixo no lugar, até ao fim da jogada.</action
> Veja em <link linkend="wait-out-round" endterm="special-actions-title"
></link
>.</para
></listitem>
      </varlistentry>

      <varlistentry id="configure-killbots">
        <term
><menuchoice
><guimenu
>Configuração</guimenu
> <guimenuitem
>Configurar o &killbots;...</guimenuitem
> </menuchoice
></term>
        <listitem
><para
><action
>Mostra a janela de configuração do &killbots;</action
>, onde poderá ajustar os parâmetros do jogo, escolher um conjunto de regras diferente ou alterar o tema do jogo.</para
></listitem>
      </varlistentry>
    </variablelist>

<para
>Para além disso, o &killbots; tem os menus de <guimenu
>Configuração</guimenu
> e <guimenu
>Ajuda</guimenu
> normais do &kde;; para mais informações, leia as secções acerca dos menus de <ulink url="help:/fundamentals/ui.html#menus-settings"
>Configuração</ulink
> e <ulink url="help:/fundamentals/ui.html#menus-help"
>Ajuda</ulink
> dos Fundamentos do &kde;. </para>

  </sect1>

</chapter>


<chapter id="developers">
  <title
>Guia de Programação do &killbots;</title>
  <para
>Os indivíduos interessados poderão personalizar o &killbots; de duas formas importantes: temas e conjuntos de regras.</para>

  <sect1 id="creating-themes">
    <title
>Criar Temas Personalizados do &killbots;</title>
    <para
>Como na maioria dos outros jogos do &kde;, um tema do &killbots; consiste em três ficheiros.</para>

    <sect2>
      <title
>O Ficheiro 'Desktop'</title>
      <para
>O ficheiro 'desktop' segue a sintaxe-padrão do <filename
>INI</filename
> e é usado para guardar as informações sobre o tema e para apontar para os outros ficheiros. Segue-se um tema de exemplo.</para>
      <example>
        <title
>O Ficheiro 'Desktop' de um Tema de Exemplo</title>
        <programlisting
>[KGameTheme]
Name=Tema de Exemplo
Description=Um tema de exemplo para demonstrar a criação de temas. Este oferece piratas.
Author=Sr. Artista
AuthorEmail=senhor.artista@exemplo.com
Type=SVG
FileName=exemplo.svg
Preview=exemplo.png
        </programlisting>
      </example>
      <para
>Os primeiros quatro parâmetros contêm meta-dados sobre eles e são relativamente simples de entender. Para os temas do &killbots;, o parâmetro <varname
>Type</varname
> deverá ser igual a <literal
>SVG</literal
>. Os dois últimos parâmetros contêm os nomes dos outros dois ficheiros do tema. Embora não sejam estritamente necessários, por razões de consistência, todos os três ficheiros partilham o mesmo nome de base.</para>
    </sect2>

    <sect2>
      <title
>O Ficheiro de Antevisão</title>
      <para
>O ficheiro de antevisão é apenas um ficheiro <filename
>PNG</filename
> que contém uma antevisão do tema. A imagem de antevisão deverá ter um tamanho de 240 por 1140 pixels e corresponder à disposição da antevisão do tema predefinido o mais possível, dado que isto facilita a comparação dos temas no selector.</para>
    </sect2>

    <sect2>
      <title
>O Ficheiro <acronym
>SVG</acronym
></title>
      <para
>O ficheiro <acronym
>SVG</acronym
> é um ficheiro de gráficos vectoriais escaláveis que contém os elementos gráficos que são usados para compor o tema. O ficheiro tanto poderá estar no formato não-comprimido <filename
>.svg</filename
> ou n formato comprimido <filename
>.svgz</filename
>. Cada elemento do jogo é identificado por um ID único no ficheiro <acronym
>SVG</acronym
>. Ao criar um tema novo, normalmente é mais fácil começar com um tema existente e substituir os elementos um-a-um, até que o tema esteja completo. O ficheiro <acronym
>SVG</acronym
> <emphasis
>deverá</emphasis
> conter os seguintes elementos.</para>
      <variablelist>
        <varlistentry>
          <term
><varname
>background</varname
></term>
          <listitem
><para
>A imagem apresentada atrás da grelha na área de jogo principal.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>status</varname
></term>
          <listitem
><para
>A área usada para mostrar a ronda actual, a pontuação, o número de inimigos e a energia.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>textcolor</varname
></term>
          <listitem
><para
>Este elemento deverá ser um rectângulo com uma cor única. A sua cor é usada para o texto das áreas de estado.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cell</varname
></term>
          <listitem
><para
>Uma célula individual da grelha.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>hero</varname
></term>
          <listitem
><para
>A personagem controlada pelo jogador.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>enemy</varname
></term>
          <listitem
><para
>O inimigo básico.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>fastenemy</varname
></term>
          <listitem
><para
>O inimigo mais rápido.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>junkheap</varname
></term>
          <listitem
><para
>O que resta de uma colisão entre inimigos.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cursor0</varname
></term>
          <listitem
><para
>Um cursor que indica um movimento para a direita.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cursor1</varname
></term>
          <listitem
><para
>Um cursor que indica um movimento para cima e para a direita.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cursor2</varname
></term>
          <listitem
><para
>Um cursor que indica um movimento para cima.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cursor3</varname
></term>
          <listitem
><para
>Um cursor que indica um movimento para cima e para a esquerda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cursor4</varname
></term>
          <listitem
><para
>Um cursor que indica um movimento para a esquerda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cursor5</varname
></term>
          <listitem
><para
>Um cursor que indica um movimento para baixo e para a esquerda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cursor6</varname
></term>
          <listitem
><para
>Um cursor que indica um movimento para baixo.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cursor7</varname
></term>
          <listitem
><para
>Um cursor que indica um movimento para baixo e para a direita.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>cursor8</varname
></term>
          <listitem
><para
>Um cursor que indica a permanência no mesmo sítio.</para
></listitem>
        </varlistentry>
      </variablelist>
    </sect2>

    <sect2>
      <title
>Instalar os Temas Personalizados</title>
      <para
>Para que o &killbots; detecte e use um tema novo, os ficheiros deverão ser movidos para uma pasta apropriada. Para instalar o tema apenas no utilizador actual, copie os ficheiros 'desktop', SVG e de antevisão para <filename
>killbots/themes</filename
> na pasta local em <userinput
><command
>qtpaths</command
> <option
>--paths GenericDataLocation </option
></userinput
>. Para disponibilizar o tema para todo o sistema, mova os ficheiros para <filename
>killbots/themes</filename
> na pasta de sistema em <userinput
><command
>qtpaths</command
> <option
>--paths GenericDataLocation </option
></userinput
>. Este caso poderá necessitar de privilégios de administração.</para>
    </sect2>
  </sect1>

  <sect1 id="creating-rulesets">
    <title
>Criar Tipos de Jogos Personalizados</title>

    <sect2>
      <title
>O Ficheiro 'Desktop' do Conjunto</title>
      <para
>A criação de novos tipos de jogos é incrivelmente simples para o &killbots;, especialmente quando se começa a partir de um conjunto de regras existente. Estes conjuntos são guardados como um único ficheiro 'desktop', onde os parâmetros e meta-dados são guardados como pares chave-valor simples.</para>
      <example>
        <title
>O Tipo de Jogo Predefinido do &killbots;</title>
        <programlisting width="80"
>[KillbotsRuleset]
Name=Killbots
Name[pt]=Robots assassinos
Author=Parker Coates
AuthorContact=parker.coates@kdemail.net
Description=&lt;qt&gt;&lt;p&gt;The default Killbots game type.&lt;/p&gt;&lt;p&gt;Includes a medium size grid, safe teleports, fast enemies and pushable junkheaps.&lt;/p&gt;&lt;/qt&gt;
Description[pt]=&lt;qt&gt;&lt;p&gt;O tipo de jogo predefinido do Killbots.&lt;/p&gt;&lt;p&gt;Inclui uma grelha média, tele-transportes seguros, inimigos rápidos e lixo que se pode empurrar.&lt;/p&gt;&lt;/qt&gt;
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</programlisting>
      </example>
      <para
>Lembre-se que todos os parâmetros de texto deverão ser introduzidos em Inglês. Como foi visto no exemplo acima, é possível adicionar novas traduções, repetindo para tal a chave e adicionando o código da língua entre parêntesis rectos. Repare também que pode indicar texto formatado no campo <varname
>Description</varname
>, envolvendo o valor entre marcas &lt;qt&gt;.</para>
      <para
>Um ficheiro de conjunto de regras deverá conter todos os seguintes parâmetros.</para>
      <variablelist>
        <varlistentry>
          <term
><varname
>Name</varname
></term>
          <listitem
><para
>o nome do conjunto de regras, como irá aparecer no selector de regras e na janela de recordes.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>Author</varname
></term>
          <listitem
><para
>O criador do conjunto de regras</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>AuthorContact</varname
></term>
          <listitem
><para
>A informação de contacto do criador. Normalmente é um endereço de e-mail.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>Description</varname
></term>
          <listitem
><para
>Uma descrição do conjunto de regras. Isto deverá dar uma ideia geral decente sobre o tipo de jogo, se bem que não necessita de apresentar o valor de cada parâmetro, dado que essa informação poderá ser vista na janela de Detalhes.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>Rows</varname
></term>
          <listitem
><para
>O número de linhas na grelha do jogo.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>Columns</varname
></term>
          <listitem
><para
>O número de colunas na grelha do jogo.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>EnemiesAtGameStart</varname
></term>
          <listitem
><para
>O número de jogadores normais a adicionar à grelha, no início da primeira ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>EnemiesAddedEachRound</varname
></term>
          <listitem
><para
>O número de jogadores normais a adicionar à grelha, no início de cada ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>FastEnemiesAtGameStart</varname
></term>
          <listitem
><para
>O número de jogadores rápidos a adicionar à grelha, no início da primeira ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>FastEnemiesAddedEachRound</varname
></term>
          <listitem
><para
>O número de jogadores rápidos a adicionar à grelha, no início de cada ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>EnergyEnabled</varname
></term>
          <listitem
><para
>Se for igual a <quote
><constant
>false</constant
></quote
>, o herói poderá ganhar ou gastar energia.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>EnergyAtGameStart</varname
></term>
          <listitem
><para
>A quantidade de energia atribuída ao herói no início da primeira ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>EnergyAddedEachRound</varname
></term>
          <listitem
><para
>A quantidade de energia atribuída ao herói no início de cada ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>MaxEnergyAtGameStart</varname
></term>
          <listitem
><para
>A capacidade máxima de energia do herói no início da primeira ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>MaxEnergyAddedEachRound</varname
></term>
          <listitem
><para
>A capacidade máxima de energia do herói no início de cada ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>SafeTeleportEnabled</varname
></term>
          <listitem
><para
>Se for igual a <quote
><constant
>false</constant
></quote
>, a acção de tele-transporte seguro será desactivada.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>CostOfSafeTeleport</varname
></term>
          <listitem
><para
>A quantidade de energia consumida num tele-transporte seguro.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>VaporizerEnabled</varname
></term>
          <listitem
><para
>Se for igual a <quote
><constant
>false</constant
></quote
>, a acção do vaporizador estará desactivada.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>CostOfVaporizer</varname
></term>
          <listitem
><para
>A quantidade de energia consumida na utilização do vaporizador.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>PushableJunkheaps</varname
></term>
          <listitem
><para
>O número de montes de lixo que se podem mover com um único empurrão. Os valores possíveis são <quote
><constant
>None</constant
></quote
>, <quote
><constant
>One</constant
></quote
> e <quote
><constant
>Many</constant
></quote
></para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>SquaskKillsEnabled</varname
></term>
          <listitem
><para
>Se for verdadeiro, o herói pode esmagar os inimigos se empurrar os montes de lixo para cima deles.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>JunkheapsAtGameStart</varname
></term>
          <listitem
><para
>O número de montes de lixo colocados na grelha, no início da primeira ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>JunkheapsAddedEachRound</varname
></term>
          <listitem
><para
>O número de montes de lixo adicionais colocados na grelha, no início de cada ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>PointsPerEnemyKilled</varname
></term>
          <listitem
><para
>O número de pontos ganhos por destruir um inimigo normal.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>PointsPerFastEnemyKilled</varname
></term>
          <listitem
><para
>O número de pontos ganhos por destruir um inimigo rápido.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>WaitKillPointBonus</varname
></term>
          <listitem
><para
>O número de pontos de bónus ganhos por destruir um inimigo enquanto se espera na ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>WaitKillEnergyBonus</varname
></term>
          <listitem
><para
>O número de unidades de energia ganhos por destruir um inimigo enquanto se espera na ronda.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>SquashKillPointBonus</varname
></term>
          <listitem
><para
>O número de pontos de bónus ganhos por esmagar um inimigo com um monte de lixo.</para
></listitem>
        </varlistentry>
        <varlistentry>
          <term
><varname
>SquashKillEnergyBonus</varname
></term>
          <listitem
><para
>O número de unidades de energia de bónus ganhas por esmagar um inimigo com um monte de lixo.</para
></listitem>
        </varlistentry>
      </variablelist>
    </sect2>

    <sect2>
      <title
>Instalar os Tipos de Jogos Personalizados</title>
      <para
>Para que o &killbots; detecte e use um novo tipo de jogo, o ficheiro deverá ser movido para uma pasta apropriada. Para instalar o conjunto de regras apenas no utilizador actual, copie o ficheiro para <filename
>killbots/rulesets</filename
> na pasta local em <userinput
><command
>qtpaths</command
> <option
>--paths GenericDataLocation </option
></userinput
>. Para disponibilizar o conjunto de regras para todo o sistema, mova o ficheiro para <filename
>killbots/rulesets</filename
> na pasta de sistema em <userinput
><command
>qtpaths</command
> <option
>--paths GenericDataLocation </option
></userinput
>. Lembre-se que este último caso necessita de privilégios de administração.</para>
    </sect2>

  </sect1>
</chapter>

<chapter id="credits">
  <title
>Créditos e Licença</title>

  <para
>&killbots;</para>
  <para
>Programa com 'copyright' 2007&ndash;2009 Parker Coates <email
>parker.coates@kdemail.net</email
></para>
  <para
>Documentação com 'copyright' &copy; 2008&ndash;2009 de Parker Coates <email
>parker.coates@kdemail.net</email
></para>

  <para
>Tradução de José Nuno Pires <email
>zepires@gmail.com</email
></para
> 
&underFDL; &underGPL; </chapter>

&documentation.index;

</book>

<!--
Local Variables:
mode: xml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:

vim:tabstop=2:shiftwidth=2:expandtab
kate: space-indent on; indent-width 2; tab-width 2; indent-mode none;
-->
