% LibreWands is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
% LibreWands is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
% You should have received a copy of the GNU General Public License along with LibreWands. If not, see https://www.gnu.org/licenses/.
\item[Jun] Initial planning. Announce on Diode Zone, Venera Social, Lemmy and the Trisquel forums. Get a Fediverse Blog page in circulation. Finally, announce on r/linux.
The controls used in this engine are based solely on the original Gameboy controls for simplicity and compatibility reasons, particularly with the Pinephone. Support for controllers is planned, but can currently be achieved through keybinding. Keyboard controls include the arrow keys, along with the \texttt{Z} and \texttt{X} buttons, as the primary and secondary buttons respectively. Instead of arrow keys, users of exotic keyboards such as on the Pinephone may use the \texttt{IJKL} keys instead of the arrow keys.
\section{Maps}
The best way to understand how maps work in this engine, is to look at the source code, as found in \texttt{engineMaps.h} and \texttt{engineMaps.c} respectively. Maps are stored in a struct array, and each map contains five types of tiles. Every tile has an \texttt{X} and \texttt{Y} coordinate, as well as a \texttt{T} and \texttt{C} attribute, which record the printable character representing the tile, and color code, respectively. See the five types of tiles in the \texttt{Map Editor} chapter in this book. Each tile then contains additional attributes, along with its type.
\subsection{Tile Types and Attributes}
It should be noted that all of these tiles contain an \texttt{active} attribute, that notes whether or not the tile is in use. This is only done in memory, and is to simplify memory management. These states \textit{should not} be saved to external files. For information on color codes, see the \texttt{Color Codes} section of this book.
\subsubsection{Basic Tiles}
Basic tiles are the funamental building blocks of any level. They'll certainly be used the most. They're used for anything that one cannot use another tile type for. They're usede for things such as walls and walkable tiles. These include one-way walls.
\begin{description}
\item[x] The X coordinate where it appears.
\item[y] The Y coordinate where it appears.
\item[t] The printable character that represents this tile.
\item[c] The color code of the tile.
\item[walk] Whether one can walk on this tile or not.
\end{description}
\subsubsection{Information Signs}
Information signs are used to give information to a player.
\begin{description}
\item[x] The X coordinate where it appears.
\item[y] The Y coordinate where it appears.
\item[t] The printable character that represents this tile.
\item[c] The color code of the tile.
\item[dialog] The information that should be displayed to the player.
\end{description}
\subsubsection{Object}
An item on the ground that a player can collect.
\begin{description}
\item[x] The X coordinate where it appears.
\item[y] The Y coordinate where it appears.
\item[t] The printable character that represents this tile.
\item[c] The color code of the tile.
\item[ID] The item ID number.
\end{description}
\subsubsection{Door}
A tile that, if steped on, transports the player to a new place.
\begin{description}
\item[x] The X coordinate where it appears.
\item[y] The Y coordinate where it appears.
\item[t] The printable character that represents this tile.
\item[c] The color code of the tile.
\item[ID] The map number that the player gets transported to.
\item[nx] The X coordinate that the player gets transported to.
\item[nx] The Y coordinate that the player gets transported to.
\end{description}
\subsubsection{Character}
A tile that represents a person. Every person is either passive or aggressive. They may walk or they may not. If they are aggressive, they'll battle the player using the monsters that they have in their inventory.
\begin{description}
\item[x] The X coordinate where it appears.
\item[y] The Y coordinate where it appears.
\item[t] The printable character that represents this tile.
\item[c] The color code of the tile.
\item[type] Whether this character is aggressive or not.
\item[move] Whether this character moves or not.
\item[name] The characters name.
\item[dialog1] What the character says when they are aggressive.
\item[dialog2] What the character says when they are passive.
\item[mon] The monsters that this character carries.
\end{description}
The monsters that a character carries are strored in a struct array with five elements. Each element includes the following attribues.
\begin{description}
\item[type] The ID number of the monster. 0 means there is no monster in this slot.
\item[level] The level of the monster in this slot.
The information in this chapter are merely suggestions. I've designed the engine to allow for as much creative freedom as possible. Feel free to break the rules, if it creates a more fun and/or interesting gaming experience.
The main concept of the game revolves around the idea of people carrying powerful monsters with them as they travel. They may choose to battle these monsters. The objective of this game is to collect all magic wands, which can be obtained from monster champions. To collect them all, is to become the best monster coach in the region. We focus mainly on early modern Southern European culture, including tarot cards, classical elements, rennaissance and baroque culture.