Criar Tipos de Jogos Personalizados

O Arquivo 'Desktop' do Conjunto de Regras

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 arquivo 'desktop', onde os parâmetros e metadados são guardados como pares chave-valor simples.

Exemplo 4.2. O Tipo de Jogo Padrão do Killbots

[KillbotsRuleset]
Name=Killbots
Name[pt]=Robots assassinos
Author=Parker Coates
AuthorContact=parker.coates@kdemail.net
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[pt_BR]=<qt><p>O tipo de jogo padrão do Killbots.</p><p>Inclui uma grade média, tele-transportes seguros, inimigos rápidos e lixo 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

Lembre-se que todos os parâmetros de texto deverão ser inseridos em Inglês. Como foi visto no exemplo acima, é possível adicionar novas traduções, repetindo para isso a chave e adicionando o código da língua entre colchetes. Repare também que você pode indicar texto formatado no campo Description, envolvendo o valor entre marcas <qt>.

Um arquivo de conjunto de regras deverá conter todos os seguintes parâmetros.

Nome

O nome do conjunto de regras, como irá aparecer no seletor de regras e na janela de recordes.

Autor

O criador do conjunto de regras.

AuthorContact

A informação de contato do criador. Normalmente é um endereço de e-mail.

Descrição

Uma descrição do conjunto de regras. Isto deverá dar uma ideia geral decente sobre o tipo de jogo, se bem que você não precisa apresentar o valor de cada parâmetro, uma vez que essa informação poderá ser vista na janela de Detalhes.

Linhas

O número de linhas na grade do jogo.

Colunas

O número de colunas na grade do jogo.

EnemiesAtGameStart

O número de inimigos normais adicionados à grade, no início da primeira rodada.

EnemiesAddedEachRound

O número de inimigos normais adicionados à grade, no início de cada rodada.

FastEnemiesAtGameStart

O número de inimigos rápidos adicionados à grade, no início da primeira rodada.

FastEnemiesAddedEachRound

O número de inimigos rápidos adicionados à grade, no início de cada rodada.

EnergyEnabled

Se for igual a false, o herói poderá ganhar ou gastar energia.

EnergyAtGameStart

A quantidade de energia atribuída ao herói no início da primeira rodada.

EnergyAddedEachRound

A quantidade de energia atribuída ao herói no início de cada rodada.

MaxEnergyAtGameStart

A capacidade máxima de energia do herói no início da primeira rodada.

MaxEnergyAddedEachRound

A capacidade máxima de energia do herói no início de cada rodada.

SafeTeleportEnabled

Se for igual a false, a ação de tele-transporte seguro será desativada.

CostOfSafeTeleport

A quantidade de energia consumida num tele-transporte seguro.

VaporizerEnabled

Se for igual a false, a ação do vaporizador estará desativada.

CostOfVaporizer

A quantidade de energia consumida na utilização do vaporizador.

PushableJunkheaps

O número de montes de lixo que se podem mover com um único empurrão. Os valores possíveis são None, One e Many.

SquaskKillsEnabled

Se for verdadeiro, o herói pode esmagar os inimigos se empurrar os montes de lixo para cima deles.

JunkheapsAtGameStart

O número de montes de lixo colocados na grade, no início da primeira rodada.

JunkheapsAddedEachRound

O número de montes de lixo adicionais colocados na grade, no início de cada rodada.

PointsPerEnemyKilled

O número de pontos ganhos por destruir um inimigo normal.

PointsPerFastEnemyKilled

O número de pontos ganhos por destruir um inimigo rápido.

WaitKillPointBonus

O número de pontos de bônus ganhos por destruir um inimigo enquanto se espera na rodada.

WaitKillEnergyBonus

O número de unidades de energia ganhos por destruir um inimigo enquanto se espera na rodada.

SquashKillPointBonus

O número de pontos de bônus ganhos por esmagar um inimigo com um monte de lixo.

SquashKillEnergyBonus

O número de unidades de energia de bônus ganhas por esmagar um inimigo com um monte de lixo.

Instalar os Tipos de Jogos Personalizados

Para que o Killbots detecte e use um novo tipo de jogo, o arquivo deverá ser movido para uma pasta apropriada. Para instalar o conjunto de regras apenas no usuário atual, copie o arquivo para killbots/rulesets na pasta local em qtpaths --paths LocalizaçãoDeDadosGenérica. Para disponibilizar o conjunto de regras para todo o sistema, mova o arquivo para killbots/rulesets na pasta do sistema (do comando anterior, possivelmente /usr/share ou semelhante). Neste caso será necessário ter privilégios de administração.