<?xml version="1.0" ?> <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ <!ENTITY kappname "&kfouleggs;"> <!ENTITY package "tdegames"> <!ENTITY % addindex "IGNORE"> <!ENTITY % English "INCLUDE" > <!-- change language only here --> ]> <book lang="&language;"> <bookinfo> <title>The &kfouleggs; Handbook</title> <authorgroup> <author> &Philip.Rodrigues; &Philip.Rodrigues.mail; </author> <othercredit role="developer"> &Nicolas.Hadacek; &Nicolas.Hadacek.mail; <!-- Uncomment this when xslt is fixed <contrib>Developer</contrib> --> </othercredit> <othercredit role="reviewer"> &Lauri.Watts; &Lauri.Watts.mail; <!-- Uncomment this when xslt is fixed <contrib>Reviewer</contrib> --> </othercredit> <!-- TRANS:ROLES_OF_TRANSLATORS --> </authorgroup> <copyright> <year>2000-2003</year> <holder>&Philip.Rodrigues;</holder> </copyright> <legalnotice>&FDLNotice;</legalnotice> <date>2006-06-19</date> <releaseinfo>2.1.11</releaseinfo> <abstract><para>&kfouleggs; is a clone of the Japanese PuyoPuyo game for the Trinity Desktop Environment.</para></abstract> <keywordset> <keyword>KDE</keyword> <keyword>tdegames</keyword> <keyword>KFoulEggs</keyword> <keyword>PuyoPuyo</keyword> </keywordset> </bookinfo> <chapter id="introduction"> <title>Introduction</title> <para>&kfouleggs; is a clone of the Japanese PuyoPuyo game, with advanced features such as multiplayer games against human or <acronym>AI</acronym>. If you have played <application>Tetris</application>, or one of its many clones, you will find &kfouleggs; easy to learn.</para> </chapter> <chapter id="gameplay"> <title>Game Play</title> <sect1 id="starting-a-new-game"> <title>Starting a New Game</title> <para>When you start &kfouleggs;, just click on the <guibutton>Start </guibutton> button, or select <guimenuitem>New</guimenuitem> from the <guimenu>Game</guimenu> menu at any time to start a new game.</para> </sect1> <sect1 id="aim-of-the-game"> <title>Aim of the Game</title> <para>The aim of the game is to achieve the highest score possible by moving the falling tiles in such a way that tiles of the same color are adjacent, and disappear. The more tiles you remove, the higher your score.</para> </sect1> <sect1 id="playing-the-game"> <title>Playing the Game</title> <para>Use the <keycap>Left</keycap> and <keycap>Right</keycap> arrow keys to move the falling tile in the relevant direction, and the <keycap>Up</keycap> arrow and <keycap>Return</keycap> keys to rotate the tile left and right respectively. The <keycap>Shift</keycap> key drops the tile down one line, and the <keycap>Down</keycap> key drops the tile all the way down - use it as a way of saving time. </para> <para>All of these shortcuts can be customized by selecting <guimenuitem>Configure Shortcuts...</guimenuitem> from the <guimenu>Settings</guimenu> menu.</para> <para>If two or more tiles of the same color come to rest horizontally or vertically next to each other, they become <quote>glued</quote>. If four or more pieces of the same color come to be <quote>glued</quote>, they disappear, and any pieces above them fall down according to the law of gravity ;-). If this causes four or more pieces to become <quote>glued</quote>, then they will also disappear, and so on.</para> <para>Every time you remove 100 tiles, you advance to the next level, where the tiles fall faster, and the game is more difficult.</para> <para>The game ends when the central column fills with tiles, and no more can fall.</para> </sect1> <sect1 id="game-screen"> <title>The Game Screen</title> <para> <screenshot> <mediaobject> <imageobject> <imagedata fileref="gamescreen.png" format="PNG"/> </imageobject> <textobject> <phrase>&kfouleggs; in Action</phrase> </textobject> </mediaobject> </screenshot> A quick explanation of what each of the parts of the game screen are for... </para> <para> Along the left hand side, from top to bottom: <variablelist> <varlistentry> <term><guilabel>Score</guilabel></term> <listitem><para>Shows your current score.</para> </listitem> </varlistentry> <!-- If you can think of a better way to describe this below, please change it :-) --> <varlistentry> <term><guilabel>Puyos</guilabel></term> <listitem><para>Shows the number of removed sets of pieces.</para> </listitem> </varlistentry> <varlistentry> <term><guilabel>Level</guilabel></term> <listitem><para>Shows the number of the level you are currently on. The first, easiest level is level one, progressing to the last, hardest level, 20.</para> </listitem> </varlistentry> </variablelist> </para> <para> In the center is the area where the action takes place. The tiles fall through the rectangle (whose properties can be changed in <menuchoice><guimenu>>Settings</guimenu><guimenuitem>Configure KFoulEggs...</guimenuitem> </menuchoice>, see <xref linkend="game-config"/>) until reaching the bottom. The two small black rectangles under the main one are the tile's <quote>shadow</quote> which show where it will land. You can toggle the tile's shadow in <xref linkend="game-config"/>. </para> <para> On the right hand side, the <guilabel>Next Tile</guilabel> box shows what the next tile to fall will be, if you have enabled it in <xref linkend="game-config"/>. </para> </sect1> </chapter> <chapter id="preferences"> <title>&kfouleggs; Configuration and Default Shortcuts</title> <sect1 id="game-configuration"> <title>Configuring Gameplay</title> <para> The &kfouleggs; configuration is accessed from <menuchoice><guimenu>Settings</guimenu> <guimenuitem>Configure &kfouleggs;...</guimenuitem></menuchoice>. The options are as follows: </para> <sect2 id="game-config"> <title>Game Configuration</title> <variablelist> <varlistentry> <term><guilabel>Initial level:</guilabel></term> <listitem><para>Set the level which you will play at startup, from 1 (easiest) to 20 (hardest). Default is level one.</para> </listitem> </varlistentry> <varlistentry><term><guilabel>Direct drop down</guilabel></term> <listitem><para>If checked, pressing the <keysym>Down Arrow</keysym> will cause a tile to immediately fall to the bottom of the screen. If unchecked, pressing the <keysym>Down Arrow</keysym> only causes the piece to fall until the key is released.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="appearance-config"> <title>Appearance Configuration</title> <variablelist> <varlistentry> <term><guilabel>Enable animations</guilabel></term> <listitem><para>If checked, pieces are shown with an animation (a small rebound effect), when they touch the bottom.</para></listitem> </varlistentry> <varlistentry><term><guilabel>Show piece's shadow</guilabel></term> <listitem><para>If checked, a shadow is placed beneath the game board showing where the piece will fall.</para></listitem> </varlistentry> <varlistentry> <term><guilabel>Show next piece</guilabel></term> <listitem><para>If checked, shows the next tile that will fall onto the game board.</para></listitem> </varlistentry> <varlistentry><term><guilabel>Show detailed "removed lines" field</guilabel></term> <listitem><para>If checked, the <guilabel>Puyos</guilabel> counter on the left of the screen shows how many times each number of Puyos have been removed. If unchecked, just the total number removed is shown.</para> </listitem> </varlistentry> <varlistentry> <term><guilabel>Background</guilabel></term> <listitem><para>Select the color and the opacity for &kfouleggs; background. An opacity of zero makes the &kfouleggs; background completely transparent, and a setting of one makes the &kfouleggs; background completely opaque.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="colors-config"> <title>Colors Configuration</title> <para>Here you can select the colors used for the tiles in &kfouleggs;.</para> </sect2> <sect2 id="ai-config"> <title>A.I. Configuration</title> <para>Here you can configure the A.I. in &kfouleggs;.</para> </sect2> </sect1> <sect1 id="highscore-configuration"> <title>Configuring Highscores</title> <para> The configuration is accessed from <menuchoice><guimenu>Settings</guimenu> <guimenuitem>Configure Highscores...</guimenuitem></menuchoice>. The options are as follows: </para> <sect2 id="highscore-main-config"> <title>The <guilabel>Main</guilabel> Tab</title> <variablelist> <varlistentry> <term><guilabel>Nickname:</guilabel></term> <listitem><para>Displays your current nickname and allows you to change it.</para> </listitem> </varlistentry> <varlistentry> <term><guilabel>Comment</guilabel></term> <listitem><para>A comment about yourself. You choose...</para> </listitem> </varlistentry> <varlistentry> <term><guilabel>World-wide highscores enabled</guilabel></term> <listitem><para>If checked and if you are connected to the Internet, &kfouleggs; will send your score automatically at the end of the game to the highscore web server (kfouleggs.sf.net).</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="highscore-advanced-config"> <title>The <guilabel>Advanced</guilabel> Tab</title> <para>This tab displays your <guilabel>Registration Data</guilabel> on kfouleggs.sf.net:</para> <variablelist> <varlistentry> <term><guilabel>Nickname:</guilabel></term> <listitem><para>Displays your current nickname from the <guilabel>Main</guilabel> tab.</para> </listitem> </varlistentry> <varlistentry> <term><guilabel>Key:</guilabel></term> <listitem><para>This key was generated when you registered on kfouleggs.sf.net by selecting <guilabel>World-wide highscores enabled</guilabel> the first time. The registration key is used in conjunction with the nickname to identify uniquely users, but users cannot have the same nickname. Click on the <guibutton>Remove</guibutton> button to delete you from the world highscores list.</para> </listitem> </varlistentry> </variablelist> </sect2> </sect1> <sect1 id="default-keybindings"> <title>Default Shortcuts</title> <para>The default shortcuts for &kfouleggs; in all player modes are as follows:</para> <informaltable> <tgroup cols="2"> <tbody> <row> <entry>New</entry> <entry><keycombo action="simul">&Ctrl;<keysym>N</keysym></keycombo></entry> </row> <row> <entry>Pause</entry> <entry><keysym>P</keysym></entry> </row> <row> <entry>Quit</entry> <entry><keycombo action="simul">&Ctrl;<keysym>Q</keysym></keycombo></entry> </row> <row> <entry>Zoom In</entry> <entry><keycombo action="simul">&Ctrl;<keysym>+</keysym></keycombo></entry> </row> <row> <entry>Zoom Out</entry> <entry><keycombo action="simul">&Ctrl;<keysym>-</keysym></keycombo></entry> </row> <row> <entry>Show Highscores</entry> <entry><keycombo action="simul">&Ctrl;<keysym>H</keysym></keycombo></entry> </row> <row> <entry>Show Menubar</entry> <entry><keycombo action="simul">&Ctrl;<keysym>M</keysym></keycombo></entry> </row> <row> <entry>&kfouleggs; Handbook</entry> <entry><keysym>F1</keysym></entry> </row> <row> <entry>What's This?</entry> <entry><keycombo action="simul">&Shift;<keysym>F1</keysym></keycombo></entry> </row> </tbody> </tgroup> </informaltable> <para>The default shortcuts for &kfouleggs; in one-player mode are as follows:</para> <informaltable> <tgroup cols="2"> <tbody> <row> <entry>Rotate Left</entry> <entry><keysym>Up Arrow</keysym></entry> </row> <row> <entry>Rotate Right</entry> <entry><keysym>Return</keysym></entry> </row> <row> <entry>Move Left</entry> <entry><keysym>Left Arrow</keysym></entry> </row> <row> <entry>Move Right</entry> <entry><keysym>Right Arrow</keysym></entry> </row> <row> <entry>Move to Left Column</entry> <entry><keycombo action="simul">&Ctrl;<keysym>Left Arrow</keysym></keycombo></entry> </row> <row> <entry>Move to Right Column</entry> <entry><keycombo action="simul">&Ctrl;<keysym>Right Arrow</keysym></keycombo></entry> </row> <row> <entry>Drop Down</entry> <entry><keysym>Down Arrow</keysym></entry> </row> </tbody> </tgroup> </informaltable> </sect1> </chapter> <chapter id="multiplayer-play"> <title>Multiplayer Play</title> <sect1 id="general-multiplayer"> <title>General Information</title> <para>&kfouleggs; supports two local multiplayer types - Human vs. Human and Human vs. Computer. To play either of these, select it from the <guimenu>Multiplayer</guimenu> menu.</para> <sect2 id="local-multiplayer"> <title>Multiplayer Games</title> <para>In Human vs. Human or Human vs. Computer mode, two gameboards are shown, one for the first player and one for the second. Each has its own <guilabel>Score</guilabel>, <guilabel>Puyos</guilabel> and <guilabel>Level</guilabel> indicator. The keys for the first human player become, by default:</para> <informaltable> <tgroup cols="2"> <tbody> <row> <entry>Rotate Left</entry> <entry><keycap>E</keycap></entry> </row> <row> <entry>Rotate Right</entry> <entry>C</entry> </row> <row> <entry>Move Left</entry> <entry><keycap>F</keycap></entry> </row> <row> <entry>Move Right</entry> <entry><keycap>G</keycap></entry> </row> <row> <entry>Move to Left Column</entry> <entry><keycombo action="simul">&Shift;<keycap>F</keycap></keycombo></entry> </row> <row> <entry>Move to Right Column</entry> <entry><keycombo action="simul">&Shift;<keycap>G</keycap></keycombo></entry> </row> <row> <entry>Drop Down</entry> <entry><keycap>D</keycap></entry> </row> <row> <entry>Drop One Line</entry> <entry><keysym>Space</keysym></entry> </row> </tbody> </tgroup> </informaltable> <para>The keys for the second human player are the same as for the player in single player mode. </para> <para>To return to single player mode, select <guimenu>Multiplayer</guimenu> and <guimenuitem>Single Human</guimenuitem>.</para> </sect2> <!-- network gaming was disabled <sect2 id="network-games"> <title>Network Multiplayer Games</title> <para>Multiplayer network games are set up by selecting <menuchoice><guimenu>Multiplayer</guimenu> <guimenuitem>More...</guimenuitem></menuchoice></para> <para>Multiplayer games of &kfouleggs; use the model of a hosted game which other players join.</para> </sect2> <sect2 id="hosting-a-game"> <title>Hosting a game</title> <para>To host a game, select <guilabel>Create a network game</guilabel> in the Multiplayer option dialog, set the port you want to use, and click on the <guibutton>Next</guibutton> button.You then have the option of changing local players' settings, if there are more than one local players. Clicking the <guibutton>Finish</guibutton> button advances the dialog to the waiting for clients stage. When enough clients have joined, <guibutton>Start Game</guibutton> starts the multiplayer game.</para> </sect2> <sect2 id="joining-a-game"> <title>Joining a game</title> <para>To join a game, select <guimenuitem>Join a network game</guimenuitem> in the Multiplayers option dialog. Select the host (<guilabel>Server address</guilabel>) and <guilabel>Port</guilabel> you want to connect to.</para> <tip><para>Make sure that the port you set when joining a game is the same as the port that was set by the host of the game!</para></tip> <para>Clicking <guibutton>Next</guibutton> takes you to the <guilabel>Local players settings</guilabel> dialog (see above), and then <guibutton>Finish</guibutton> connects to the remote game. The game starts when the host chooses - the client has no choice.</para> </sect2> --> </sect1> </chapter> <chapter id="commands"> <title>Command Reference</title> <sect1 id="kfouleggs-mainwindow"> <title>The Main &kfouleggs; window</title> <sect2> <title>The <guimenu>Game</guimenu> Menu</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><action>Starts a new game.</action></para></listitem> </varlistentry> <varlistentry> <term><menuchoice> <shortcut> <keycombo><keycap>P</keycap></keycombo> </shortcut> <guimenu>Game</guimenu> <guimenuitem>Pause</guimenuitem> </menuchoice></term> <listitem><para><action>Pauses or resumes the game</action></para></listitem> </varlistentry> <varlistentry> <term><menuchoice> <shortcut> <keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo> </shortcut> <guimenu>Game</guimenu> <guimenuitem>Show Highscores</guimenuitem> </menuchoice></term> <listitem><para><action>Opens a dialog</action> that displays different high score tables. Clicking on the links below the tables downloads world-wide 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><action>Quits</action> &kfouleggs;</para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>The <guimenu>View</guimenu> Menu</title> <variablelist> <varlistentry> <term><menuchoice><shortcut><keycombo action="simul"> &Ctrl;<keycap>+</keycap></keycombo></shortcut> <guimenu>View</guimenu> <guimenuitem>Zoom In</guimenuitem> </menuchoice></term> <listitem><para><action>Enlarges the game board </action></para></listitem> </varlistentry> <varlistentry> <term><menuchoice><shortcut><keycombo action="simul"> &Ctrl;<keycap>-</keycap></keycombo></shortcut> <guimenu>View</guimenu> <guimenuitem>Zoom Out</guimenuitem> </menuchoice></term> <listitem><para><action>Reduces the game board size </action></para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>The <guimenu>Multiplayer</guimenu> Menu</title> <variablelist> <varlistentry> <term><menuchoice> <guimenu>Multiplayer</guimenu> <guimenuitem>Single Human</guimenuitem> </menuchoice></term> <listitem><para><action>Sets the multiplayer mode to single player</action></para></listitem> </varlistentry> <varlistentry> <term><menuchoice> <guimenu>Multiplayer</guimenu> <guimenuitem>Human vs Human</guimenuitem> </menuchoice></term> <listitem><para><action>Sets the multiplayer mode to two player with two human players.</action></para></listitem> </varlistentry> <varlistentry> <term><menuchoice> <guimenu>Multiplayer</guimenu> <guimenuitem>Human vs Computer</guimenuitem> </menuchoice></term> <listitem><para><action>Sets the multiplayer mode to two player with one human and one computer player.</action></para></listitem> </varlistentry> <varlistentry> <term><menuchoice> <guimenu>Multiplayer</guimenu> <guimenuitem>More...</guimenuitem> </menuchoice></term> <listitem><para><action>Displays the multiplayer settings dialog.</action></para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>The <guimenu>Settings</guimenu> Menu</title> <variablelist> <varlistentry> <term><menuchoice> <shortcut> <keycombo action="simul">&Ctrl;<keycap>M</keycap></keycombo> </shortcut> <guimenu>Settings</guimenu> <guimenuitem>Show Menubar</guimenuitem> </menuchoice></term> <listitem><para><action>Shows or hides the Menubar.</action>To return the menubar, right-click anywhere on the gameboard and select <guimenuitem>Show Menubar</guimenuitem>. </para></listitem> </varlistentry> <varlistentry> <term><menuchoice> <guimenu>Settings</guimenu> <guimenuitem>Configure Shortcuts...</guimenuitem> </menuchoice></term> <listitem><para><action>Displays a standard &kde; key bindings configuration dialog to change the keyboard shortcuts for &kfouleggs;.</action></para></listitem> </varlistentry> <varlistentry> <term><menuchoice> <guimenu>Settings</guimenu> <guimenuitem>Configure Notifications...</guimenuitem> </menuchoice></term> <listitem><para><action>Displays a standard &kde; notifications configuration dialog to change the audio and visual notifications for &kfouleggs;.</action></para></listitem> </varlistentry> <varlistentry> <term><menuchoice> <guimenu>Settings</guimenu> <guimenuitem>Configure Highscores...</guimenuitem> </menuchoice></term> <listitem><para><action>Displays</action> the <link linkend="highscore-configuration">high score configuration dialog</link>, in which you can change several settings that affect how &kfouleggs; treats highscores.</para></listitem> </varlistentry> <varlistentry> <term><menuchoice> <guimenu>Settings</guimenu> <guimenuitem>Configure &kfouleggs;...</guimenuitem> </menuchoice></term> <listitem><para><action>Displays</action> the <link linkend="game-config">&kfouleggs; configuration dialog</link>.</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="help"> <title>The <guimenuitem>Help</guimenuitem> Menu</title> &help.menu.documentation; </sect2> </sect1> </chapter> <chapter id="credits"> <title>Credits and License</title> <para>&kfouleggs;</para> <para>Program core engine copyright 1995 Eirik End.</para> <para>Program copyright 1996-2001 &Nicolas.Hadacek; &Nicolas.Hadacek.mail;.</para> <para>Documentation copyright 2000-2003 &Philip.Rodrigues; &Philip.Rodrigues.mail;.</para> <!-- TRANS:CREDIT_FOR_TRANSLATORS --> &underFDL; &underGPL; </chapter> <appendix id="installation"> <title>Installation</title> <sect1 id="getting-kfouleggs"> <title>How to obtain &kfouleggs;</title> &install.intro.documentation; <sect2 id="compilation"> <title>Compilation and Installation</title> &install.compile.documentation; <para>Should you run into problems please report them to the &kde; mailing list, or the program maintainer, &Nicolas.Hadacek;, at &Nicolas.Hadacek.mail;.</para> </sect2> </sect1> </appendix> &documentation.index; </book> <!-- Local Variables: mode: sgml sgml-omittag: nil sgml-shorttag: t sgml-indent-step:0 sgml-indent-data:f End: -->