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

<book id="kbreakout" lang="&language;">
<bookinfo>
<title>The &kbreakout; Handbook</title>

<authorgroup>
<author>
<firstname>Fela</firstname>
<surname>Winkelmolen</surname>
<affiliation>
<address><email>fela.kde@gmail.com</email></address></affiliation>
</author>

<author>
<firstname>Stephanie</firstname>
<surname>Whiting</surname>
<affiliation>
<address><email>stephaniewhiting03@hotmail.com</email></address></affiliation>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>

<copyright>
<year>2008</year>
<holder>Fela Winkelmolen</holder>
</copyright>
    
<legalnotice>&FDLNotice;</legalnotice>

<date>2021-06-25</date>
<releaseinfo>KDE Gear 21.04</releaseinfo>

<abstract>
<para>
&kbreakout;, a Breakout-like game.</para>
</abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>kdegames</keyword>
<keyword>game</keyword>
<keyword>KBreakOut</keyword>
<keyword>Breakout</keyword>
<keyword>brick</keyword>
<keyword>bricks</keyword>
<keyword>ball</keyword>
</keywordset>
</bookinfo>

<chapter id="introduction">
<title>Introduction</title>

<para>
&kbreakout; is a Breakout-like game.
</para>

<screenshot>
<mediaobject>
<imageobject>
<imagedata fileref="gameboard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>&kbreakout; gameboard</phrase>
</textobject>
</mediaobject>
</screenshot>

<para>
The object of the game is to destroy as many bricks as possible without losing the ball.
</para>
</chapter>

<chapter id="how-to-play">
<title>How to Play</title>

<para>
The player is presented with a game field containing a number of bricks. A ball travels across the screen, bouncing off the top and side walls. When a brick is hit, the ball bounces away and the brick is destroyed. The player loses a life when the ball touches the bottom of the field. To prevent this from happening, the player has to use a movable bar to bounce the ball upward, situated at the bottom of the window. The purpose of the game is to progress through the levels destroying all bricks present in each, and trying to get a highscore.
</para>

<para>
Some bricks have a special behavior, or may let a gift fall down when hit. The gifts can be caught with the bar, their behavior can be either positive or negative. For further information on the different types of bricks and gifts see the next chapter.
</para>

<para>
To fire the ball press the spacebar, to move the bar use the mouse or the arrow keys. The ball will bounce in the direction of the side of the bar it bounced on hit, the more it bounces near the left end of the bar the more it will bounce toward the left, the same applies for the right side; if it bounces in the middle of the bar it will bounce straight toward the top.
</para>

<para>
If you enable the option <guilabel>Fire on mouse click</guilabel> in the settings dialog, you can click with the &LMB; to fire.
Enabling the option will make the game steal the mouse cursor, pause the game to get the cursor back.
</para>

</chapter>

<chapter id="rules-strategies-tips">
<title>Game Rules, Strategies and Tips</title>

<sect1 id="rules">
<title>Rules</title>
<itemizedlist>
<listitem><para>Passing a level awards 300 points to the player. A level is passed when all breakable and visible bricks are destroyed, or alternatively if the next level gift is caught. In the latter case an additional score for each remaining brick is awarded.</para></listitem>
<listitem><para>A score is awarded for every brick destroyed, the smaller the interval between one hit and the following the higher this score.</para></listitem>
<listitem><para>The gifts hidden in a given level are fixed, their position however is random.</para></listitem>
<listitem><para>30 points are awarded for every gift caught.</para></listitem>
<listitem><para>The player loses a life when the ball touches the bottom of the field and there are no other balls left in the game, or when the player catches a lose life gift. When losing a life, 1000 points are detracted from his score.</para></listitem>
<listitem><para>Additional lives can be gained by catching the add life gifts.</para></listitem>
<listitem><para>The game ends when the player loses the ball while not having any additional lives left, or when all levels have been won.</para></listitem>
</itemizedlist>
</sect1>

<sect1 id="brick-types">
<title>Brick Types</title>
<note>
  <para>
    Pictures for the bricks below are for the default theme of &kbreakout;.
  </para>
</note>
<variablelist>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="PlainBrick1.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Plain Brick
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Plain Bricks
    </term>
    <listitem>
      <para>
	Simple bricks, while their appearance may vary they all behave the same way, they get destroyed when hit by the ball and may contain a gift.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="UnbreakableBrick.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Unbreakable Brick
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Unbreakable Brick
    </term>
    <listitem>
      <para>
	Never gets destroyed unless hit by a burning or unstoppable ball, or an exploding brick next to it gets hit. These bricks do not need to be destroyed to win the level.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="BreakableBrick.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Breakable Brick
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Breakable Brick
    </term>
    <listitem>
      <para>
	Unbreakable bricks can be turned into breakable bricks using <link linkend="gift-magic-wand">Magic Wand gift</link>.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="HiddenBrick.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Hidden Brick
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Hidden Brick
    </term>
    <listitem>
      <para>
	This brick is not initially shown to the player. When hit for the first time it becomes visible, and becomes a plain brick. If hit by a burning ball, or an exploding brick next to it gets hit it gets destroyed as soon as it appears. As long as it remains hidden it does not need to be destroyed to get to the next level.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="MultipleBrick3.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Multiple Brick
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Multiple Brick
    </term>
    <listitem>
      <para>
	Needs to be hit three times before getting destroyed, unless hit by a burning or unstoppable ball, or an exploding brick next to it gets destroyed.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="ExplodingBrick.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Exploding Brick
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Exploding Brick
    </term>
    <listitem>
      <para>
	When this brick gets hit also the bricks to the top, bottom, left and right of it will get destroyed, regardless of their type.
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect1>

<sect1 id="gifts">
<title>Gifts</title>
<note>
  <para>
    Pictures for the gifts below are for the default theme of &kbreakout;.
  </para>
</note>
<variablelist>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="Gift1000Points.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Gift 1000 Points
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Score Gifts
    </term>
    <listitem>
      <para>
	If caught they award the player the number of points written on the gift.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftAddLife.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Add Life Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Add Life Gift
    </term>
    <listitem>
      <para>
	Gives the player an additional life.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftLoseLife.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Lose Life Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Lose Life Gift
    </term>
    <listitem>
      <para>
	Makes the player lose all balls and resets the bar.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftEnlargeBar.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Enlarge Bar Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Enlarge Bar Gift
    </term>
    <listitem>
      <para>
	Enlarges the bar.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftShrinkBar.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Shrink Bar Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Shrink Bar Gift
    </term>
    <listitem>
      <para>
	Shrinks the bar.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftSplitBall.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Split Balls Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Split Balls Gift
    </term>
    <listitem>
      <para>
	Doubles the balls.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftAddBall.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Add Balls Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Add Balls Gift
    </term>
    <listitem>
      <para>
	Gives the player an extra ball attached to the bar, which can be fired whenever the player wants.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftStickyBar.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Sticky Bar Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Sticky Bar Gift
    </term>
    <listitem>
      <para>
	After catching this gift, every time a ball touches the bar it remains attached to it, allowing the player to fire again.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftMoreExplosion.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    More Exploding Bricks Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      More Exploding Bricks Gift
    </term>
    <listitem>
      <para>
	Makes all bricks to the top, bottom, right, and left of exploding bricks exploding bricks themselves. This also applies to hidden and unbreakable bricks.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftBurningBall.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Burning Ball Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Burning Ball Gift
    </term>
    <listitem>
      <para>
	Transforms all the balls into burning balls. When a burning ball hits a brick also the bricks to the top, bottom, left and right of it get destroyed. A burning ball destroys all types of bricks regardless of their types.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftUnstoppableBall.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Unstoppable Ball Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Unstoppable Ball Gift
    </term>
    <listitem>
      <para>
	Transforms all the balls into unstoppable balls. An unstoppable ball destroys all bricks it encounters on its path, regardless of their type, and never bounces against them.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftMagicEye.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Magic Eye Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Magic Eye Gift
    </term>
    <listitem>
      <para>
	Shows all hidden bricks.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term id="gift-magic-wand">
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftMagicWand.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Magic Wand Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Magic Wand Gift
    </term>
    <listitem>
      <para>
	Transforms all multiple and unbreakable bricks into simple bricks.
      </para>
    </listitem>
  </varlistentry>
    <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftIncreaseSpeed.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Increase Speed Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Increase Speed Gift
    </term>
    <listitem>
      <para>
	Increases the speed of the ball by 30% of the current speed.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftDecreaseSpeed.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Decrease Speed Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Decrease Speed Gift
    </term>
    <listitem>
      <para>
	Decreases the speed of the ball dividing the current speed by 1.3.
      </para>
    </listitem>
  </varlistentry>
    <varlistentry>
    <term>
      <inlinemediaobject>
	<imageobject>
	  <imagedata fileref="GiftNextLevel.png" format="PNG" />
	</imageobject>
	<textobject>
	  <phrase>
	    Next Level Gift
	  </phrase>
	</textobject>
      </inlinemediaobject>
      Next Level Gift
    </term>
    <listitem>
      <para>
	Opens the next level of the game immediately.
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect1>

<sect1 id="strategies-and-tips">
<title>Strategies and Tips</title>
<itemizedlist>
<listitem><para>If possible, it is usually a good idea to send the ball above the bricks, doing so you will have a smaller chance of losing the ball. Sometimes you need to first make a small hole in the layer of brick to accomplish this. The smaller the hole, the smaller the chance the balls comes back down.</para></listitem>
<listitem><para>When catching the add ball gift it is wise to not fire it right away but to keep in instead, in case the other balls are lost. It is also advisable to not catch a sticky bar gift in such a case, as doing so would force you to fire all balls.</para></listitem>
<listitem><para>When receiving a next level gift you may not want to catch it if you know that there are add life gifts in the level.</para></listitem>
<listitem><para>In levels where there are a lot of hidden bricks there may be a way to win the level without having to destroy most of them.</para></listitem>
</itemizedlist>
</sect1>

</chapter>

<chapter id="interface-overview">
<title>Interface Overview</title>

<sect1 id="menu">
<title>Menu Items</title>

<variablelist>
<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
</shortcut>
<guimenu>Game</guimenu>
<guimenuitem>New</guimenuitem>
</menuchoice></term>
<listitem>
<para>
Starts a new game.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycap>P</keycap>
</shortcut>
<guimenu>Game</guimenu>
<guimenuitem>Pause</guimenuitem>
</menuchoice></term>
<listitem>
<para>
Pause and resume the current game.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo>
</shortcut>
<guimenu>Game</guimenu>
<guimenuitem>Show High Scores</guimenuitem></menuchoice></term>
<listitem>
<para>
Shows a dialog containing the High Scores.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
</shortcut>
<guimenu>Game</guimenu>
<guimenuitem>Quit</guimenuitem>
</menuchoice></term>
<listitem>
<para>
Quits the program.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;&Shift;<keycap>F</keycap></keycombo>
</shortcut>
<guimenu>View</guimenu>
<guimenuitem>Full Screen Mode</guimenuitem>
</menuchoice></term>
<listitem><para>
<action>Play the &kbreakout; game in full screen mode. Leaving this mode is only possible using the shortcut.</action>
</para></listitem>
</varlistentry>

</variablelist>

<para>
Additionally &kbreakout; has the common &kde; <guimenu>Settings</guimenu> and <guimenu>Help</guimenu>
menu items, for more information read the sections about the <ulink url="help:/fundamentals/menus.html#menus-settings"
>Settings Menu</ulink> and <ulink url="help:/fundamentals/menus.html#menus-help">Help Menu</ulink>
of the &kde; Fundamentals.
</para>

</sect1>

<sect1 id="keybindings">
<title id="keybindings-title">Shortcuts</title>

<para>The default shortcuts are:</para>

<table>
<title>Shortcuts</title>
<tgroup cols="2">
<tbody>
<row>
<entry>Fire</entry>
<entry>
&Space;
</entry>
</row>
<row>
<entry>Pause/Resume</entry>
<entry>
<keycap>P</keycap>
</entry>
</row>
<row>
<entry>Start a new game</entry>
<entry>
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
</entry>
</row>
<row>
<entry>Show High Scores</entry>
<entry>
<keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo>
</entry>
</row>
<row>
<entry>Quit</entry>
<entry>
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
</entry>
</row>
<row>
<entry>Full Screen Mode</entry>
<entry><keycombo action="simul">&Ctrl;&Shift;<keycap>F</keycap></keycombo></entry>
</row>
<row>
<entry>Help</entry>
<entry><keycap>F1</keycap></entry>
</row>
<row>
<entry>What's this?</entry>
<entry>
<keycombo action="simul">&Shift;<keycap>F1</keycap></keycombo>
</entry>
</row>
</tbody>
</tgroup>
</table>

</sect1>
</chapter>


<chapter id="credits">
<title>Credits and License</title>

<para>
&kbreakout;
</para>
<para>
Program copyright 2008 by Fela Winkelmolen <email>fela.kde@gmail.com</email>
</para>
<para>
Documentation copyright 2008 by Fela Winkelmolen <email>fela.kde@gmail.com</email>
</para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->

&underFDL;
&underGPL;

</chapter>

&documentation.index; 
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-always-quote-attributes:t
sgml-indent-step:0
sgml-indent-data:t
End:
-->

